:root{
  --paper:#f3f4ef; --ink:#15181c; --mute:#5d646c; --line:#d5d8d0;
  --accent:#0b57d0; --chip:#e7eae2;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root{--paper:#111417;--ink:#e8ebe6;--mute:#98a0a8;--line:#2a3036;--accent:#7aa7ff;--chip:#1b2025}
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.6 var(--sans)}
a{color:var(--accent);text-underline-offset:3px}
a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
.wrap{max-width:1040px;margin:0 auto;padding:0 20px}
header.top{border-bottom:1px solid var(--line)}
header.top .wrap{display:flex;gap:24px;align-items:center;justify-content:space-between;padding-top:16px;padding-bottom:16px}
.mark{font:600 15px var(--mono);letter-spacing:.02em;color:var(--ink);text-decoration:none}
nav a{font:15px var(--mono);margin-left:20px;color:var(--mute);text-decoration:none;padding-bottom:2px}
nav a[aria-current=page]{color:var(--ink);border-bottom:2px solid var(--accent)}
nav a:hover{color:var(--ink)}
.hero{padding-top:72px;padding-bottom:48px}
.hero h1{font-size:clamp(56px,11vw,128px);line-height:.92;margin:0;letter-spacing:-.04em;font-weight:700}
.hero h1.sm{font-size:clamp(40px,8vw,88px)}
.hero .role{font:clamp(16px,2.2vw,20px) var(--mono);color:var(--accent);margin:20px 0 0}
.contacts.flat{margin:0}
.lead{max-width:62ch;font-size:19px;margin:28px 0 0}
.contacts{display:flex;flex-wrap:wrap;gap:12px 28px;margin:32px 0 0;padding:0;list-style:none;font-family:var(--mono);font-size:15px}
.contacts span{color:var(--mute);margin-right:8px}
section{padding:40px 0;border-top:1px solid var(--line)}
section>.wrap{display:grid;grid-template-columns:200px 1fr;gap:12px 48px}
h2{font:600 14px var(--mono);color:var(--mute);margin:6px 0 0;letter-spacing:.04em}
h3{font-size:20px;margin:0 0 6px}
p{margin:0 0 14px;max-width:68ch}
dl.skills{margin:0}
dl.skills div{display:grid;grid-template-columns:150px 1fr;gap:4px 20px;padding:12px 0;border-bottom:1px solid var(--line)}
dl.skills div:first-child{padding-top:0}
dl.skills dt{font:600 14px var(--mono);color:var(--mute);padding-top:3px}
dl.skills dd{margin:0}
.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.chips li{font:14px var(--mono);background:var(--chip);padding:3px 10px;border-radius:4px}
.item{padding:0 0 26px}
.item+.item{padding-top:26px;border-top:1px solid var(--line)}
.item .meta{font:14px var(--mono);color:var(--mute);margin:0 0 6px}
ol.flow{list-style:none;counter-reset:s;margin:18px 0 0;padding:0;display:grid;gap:10px;max-width:68ch}
ol.flow li{counter-increment:s;display:grid;grid-template-columns:40px 1fr;align-items:baseline}
ol.flow li::before{content:counter(s,decimal-leading-zero);font:600 14px var(--mono);color:var(--accent)}
code{font:.9em var(--mono);background:var(--chip);padding:1px 6px;border-radius:3px}
footer{border-top:1px solid var(--line);padding:28px 0 56px;color:var(--mute);font:14px var(--mono)}
@media (max-width:720px){
  .hero{padding-top:44px;padding-bottom:32px}
  section>.wrap{grid-template-columns:1fr;gap:14px}
  dl.skills div{grid-template-columns:1fr}
  nav a{margin-left:14px}
}
@media (prefers-reduced-motion:no-preference){a{transition:color .15s}}
