@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/hanken-grotesk-cyrillic-ext-wght-normal.D_UHSL_T.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/hanken-grotesk-vietnamese-wght-normal.CHiFlh_0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/hanken-grotesk-latin-ext-wght-normal.Dg-wlmqe.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/hanken-grotesk-latin-wght-normal.CaVRRdDk.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#f1f2f0;--ink:#1b2330;--muted:#4a5565;--rule:#c5cad2;--accent:#2347c5;--accent-ink:#fff;--font:"Hanken Grotesk Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--gutter:clamp(1rem, 4vw, 2.5rem);color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--bg:#141a22;--ink:#e4e8ee;--muted:#a3adbb;--rule:#2f3846;--accent:#9db4ff;--accent-ink:#141a22}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:4.5rem}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--bg);color:var(--ink);font:400 1.0625rem/1.6 var(--font);font-optical-sizing:auto;margin:0}a{color:var(--accent);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:2px}.sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{left:var(--gutter);background:var(--ink);color:var(--bg);z-index:10;padding:.5rem .9rem;position:absolute;top:-4rem}.skip:focus{top:.5rem}.top,main,.foot-bar{max-width:72rem;padding-inline:var(--gutter);margin-inline:auto}.top{border-bottom:1px solid var(--rule);max-width:none;padding-block:1.1rem;padding-inline:max(var(--gutter), calc((100% - 72rem) / 2 + var(--gutter)));flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 2rem;display:flex}.mark{color:var(--ink);letter-spacing:-.01em;font-weight:700;text-decoration:none}.top ul{flex-wrap:wrap;gap:.25rem 1.4rem;margin:0;padding:0;font-size:.95rem;list-style:none;display:flex}.top ul a{color:var(--muted);padding-block:.35rem;text-decoration:none;display:inline-block}.top ul a:hover{color:var(--ink);text-decoration:underline}.top .lang{color:var(--ink);font-weight:600}h1,h2,h3,h4{letter-spacing:-.015em;text-wrap:balance;margin:0;font-weight:650;line-height:1.15}p{max-width:62ch;margin:0 0 1em}.hero{padding-block:clamp(3rem,9vw,7rem) clamp(2.5rem,6vw,4.5rem)}.hero h1{letter-spacing:-.03em;max-width:19em;font-size:clamp(2.1rem,5.6vw,4.1rem);font-weight:700;line-height:1.04}.lead{color:var(--muted);max-width:46ch;margin-top:1.6rem;font-size:clamp(1.1rem,1.6vw,1.3rem)}.actions{flex-wrap:wrap;align-items:center;gap:1rem 1.6rem;margin-top:2rem;display:flex}.btn{background:var(--accent);color:var(--accent-ink);border-radius:3px;padding:.8rem 1.4rem;font-weight:650;text-decoration:none}.btn:hover{text-decoration:underline}.textlink{font-weight:600}.margin{border-top:1px solid var(--ink);grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:0;margin:clamp(2.5rem,6vw,4rem) 0 0;display:grid}.margin>div{padding:1rem 1rem .2rem 0}.margin>div+div{border-left:1px solid var(--rule);padding-left:1rem}.margin dt{color:var(--muted);font-size:.9rem}.margin dd{margin:.2rem 0 0;font-weight:650;line-height:1.3}@media (width<=36rem){.margin{grid-template-columns:1fr}.margin>div+div{border-left:0;border-top:1px solid var(--rule);padding-left:0}.margin>div{padding-block:.8rem}}.sec{border-top:1px solid var(--rule);grid-template-columns:minmax(9rem,1fr) minmax(0,3fr);gap:1rem clamp(1.5rem,5vw,4rem);padding-block:clamp(2.5rem,6vw,4.5rem);display:grid}.label h2{font-size:1.35rem;position:sticky;top:1.5rem}@media (width<=48rem){.sec{grid-template-columns:1fr}.label h2{position:static}}.body>:last-child{margin-bottom:0}.intro{max-width:52ch;font-size:1.2rem}.big{margin-bottom:1rem;font-size:clamp(1.4rem,3vw,1.9rem)}.body h4{color:var(--muted);margin:2rem 0 .6rem;font-size:1rem;font-weight:650}.foot{color:var(--muted);margin-top:2rem}.steps{margin:2rem 0 0;padding:0;list-style:none}.steps li{border-top:1px solid var(--rule);grid-template-columns:minmax(0,1fr);gap:.35rem;padding:1.1rem 0;display:grid}.steps li:last-child{border-bottom:1px solid var(--rule)}.steps h3{font-size:1.15rem}.steps p{color:var(--muted);margin:0}.plain{margin:0;padding:0;list-style:none}.plain li{padding:.45rem 0 .45rem 1.1rem;position:relative}.plain li:before{content:"";background:var(--accent);width:.5rem;height:2px;position:absolute;top:1.15em;left:0}.plain.inline{flex-wrap:wrap;gap:.2rem 1.8rem;display:flex}.plain.inline li{padding-left:0}.plain.inline li:before{display:none}.spec{margin:0}.spec>div{border-top:1px solid var(--rule);grid-template-columns:minmax(7rem,11rem) minmax(0,1fr);gap:.2rem 1.5rem;padding:.7rem 0;display:grid}.spec>div:last-child{border-bottom:1px solid var(--rule)}.spec dt{color:var(--muted)}.spec dd{margin:0}@media (width<=36rem){.spec>div{grid-template-columns:1fr}}.job{margin-top:2rem}.job h3{font-size:1.3rem}.role{color:var(--muted);margin:.2rem 0 .7rem;font-weight:550}.repos{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:2rem;margin:2rem 0 0;padding:0;list-style:none;display:grid}.repos li{border-top:2px solid var(--ink);padding-top:1rem}.repos h3{overflow-wrap:anywhere;margin-bottom:.5rem;font-size:1.15rem}.repos p{color:var(--muted)}.mail{letter-spacing:-.02em;overflow-wrap:anywhere;margin:1.5rem 0 1rem;font-size:clamp(1.3rem,4.2vw,2.2rem);font-weight:650}.foot-bar{border-top:1px solid var(--rule);color:var(--muted);max-width:none;padding-block:2rem 3rem;padding-inline:max(var(--gutter), calc((100% - 72rem) / 2 + var(--gutter)));font-size:.95rem}.foot-bar p{margin:0}.contact{gap:1.1rem;max-width:36rem;margin-top:1.5rem;display:grid}.contact p{gap:.35rem;margin:0;display:grid}.contact label{font-weight:600}.contact input,.contact textarea{font:inherit;color:var(--ink);border:1px solid var(--muted);background:0 0;border-radius:3px;width:100%;padding:.6rem .75rem}.contact textarea{resize:vertical}.contact input:focus-visible,.contact textarea:focus-visible{outline-offset:1px}.contact .notice{color:var(--muted);font-size:.95rem;display:block}.contact .btn{cursor:pointer;font:inherit;border:0;justify-self:start;font-weight:650}.hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.simple{max-width:48rem;padding-block:clamp(2.5rem,6vw,4.5rem)}.simple h1{margin:0 0 1.5rem;font-size:clamp(2rem,4vw,2.75rem);line-height:1.1}.simple h2{margin:2rem 0 .4rem;font-size:1.1rem}.simple p{max-width:65ch}.mark-role{color:var(--muted);font-weight:400}
