@font-face{font-family:Schibsted Grotesk;font-style:normal;font-display:swap;font-weight:400 900;src:url(/fonts/schibsted-grotesk-latin-wght-normal.woff2)format("woff2");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}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-display:swap;font-weight:400 900;src:url(/fonts/schibsted-grotesk-latin-ext-wght-normal.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,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:Schibsted Grotesk;font-style:italic;font-display:swap;font-weight:400 900;src:url(/fonts/schibsted-grotesk-latin-wght-italic.woff2)format("woff2");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}@font-face{font-family:Schibsted Grotesk;font-style:italic;font-display:swap;font-weight:400 900;src:url(/fonts/schibsted-grotesk-latin-ext-wght-italic.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-latin-wght-normal.woff2)format("woff2");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}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-latin-ext-wght-normal.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,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}:root{--ground:#fff;--ink:#0f1419;--ink-hover:#262c33;--sec:#5b6673;--mute:#6b7480;--rule:#e3e6ea;--wash:#f4f5f7;--code:#16181d;--ev:#0b7a6f;--sans:"Schibsted Grotesk", system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--pad:clamp(16px, 3.4vw, 48px);--max:1440px;--ease:cubic-bezier(.16, 1, .3, 1);--fade:.18s;--tap:36px;color-scheme:light}@media (width<=760px),(pointer:coarse){:root{--tap:44px}}@media (prefers-reduced-motion:reduce){:root{--fade:0s}}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html{background:var(--ground);color:var(--ink);font-family:var(--sans);-webkit-text-size-adjust:100%;text-rendering:optimizelegibility;scrollbar-color:#c3c9d0 transparent;caret-color:var(--ink);font-size:17px;line-height:1.5}body{flex-direction:column;min-height:100vh;display:flex}main{flex:1}img,svg{max-width:100%;display:block}img{height:auto}::selection{background:var(--ink);color:#fff}a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1.5px}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:var(--ground)}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:4px}main:focus{outline:none}[hidden]{display:none!important}.mono,code,kbd,samp,time,.num{font-family:var(--mono);font-variant-numeric:tabular-nums}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.wrap{width:100%;max-width:var(--max);padding-inline:var(--pad);margin-inline:auto}.skip{left:var(--pad);z-index:10;background:var(--ink);color:#fff;border-radius:8px;padding:10px 16px;font-weight:600;position:absolute;top:8px;transform:translateY(-160%)}.skip:focus-visible{outline-color:var(--ink);transform:none}:root{--bar-h:57px}html{scroll-padding-top:calc(var(--bar-h) + 12px)}.bar{z-index:40;background:var(--ground);border-bottom:1px solid var(--rule);position:sticky;top:0}.bar .wrap{justify-content:space-between;align-items:center;gap:24px;min-height:56px;display:flex}.host{font-family:var(--mono);white-space:nowrap;align-items:center;font-size:16px;font-weight:500;text-decoration:none;display:inline-flex}.host .av{width:28px;height:28px;transition:width var(--fade) var(--ease), margin var(--fade) var(--ease), opacity var(--fade) var(--ease);border-radius:50%;flex:none;margin-right:10px}html:has([data-photo]):not(.photo-away) .host .av{opacity:0;width:0;margin-right:0}.host span{color:var(--sec)}.nav{align-items:center;gap:clamp(14px,2.2vw,30px);font-size:16px;font-weight:500;display:flex}.nav a{min-height:56px;color:var(--sec);align-items:center;text-decoration:none;display:flex}.nav a:hover{color:var(--ink)}.nav a[aria-current]{color:var(--ink);box-shadow:inset 0 -3px 0 var(--ink)}.nav a.contact{min-height:var(--tap);color:var(--ink);border:1px solid var(--ink);box-shadow:none;border-radius:8px;padding:0 16px}.nav a.contact:hover,.nav a.contact[aria-current]{background:var(--ink);color:#fff}.bar-acts{align-items:center;gap:12px;display:flex}:root{--pf-font:var(--sans);--pf-text:var(--ink);--pf-text-secondary:var(--sec);--pf-text-muted:var(--sec);--pf-background:var(--ground);--pf-border:var(--rule);--pf-border-focus:var(--ink);--pf-hover:var(--wash);--pf-mark:var(--ink);--pf-outline-focus:var(--ink);--pf-border-radius:8px;--pf-input-height:var(--tap);--pf-result-title-font-size:16px;--pf-result-excerpt-font-size:14px;--pf-modal-max-width:640px}@media (width<=1100px){.bar-acts :is(.pf-trigger-text,.pf-trigger-shortcut){display:none!important}.bar-acts .pf-trigger-btn{box-sizing:border-box!important;width:var(--tap)!important;height:var(--tap)!important;justify-content:center!important;padding:0!important}}@media (width<=400px){.host{font-size:14px}}@media (width<=860px){.bar .wrap{flex-direction:column;align-items:stretch;gap:0;padding-inline:0}.host{padding:14px var(--pad) 4px}.nav{padding:0 var(--pad);scrollbar-width:none;gap:18px;overflow-x:auto}.nav a{flex:none;min-height:48px}:root{--bar-h:91px}.host{padding-right:150px}html.photo-away .host .av,html:not(:has([data-photo])) .host .av{width:24px;margin-right:8px}.host .av{height:24px}.nav .bar-acts{top:8px;right:var(--pad);gap:6px;position:absolute}.nav a.contact{padding:0 12px}}@media (width<=359px){.host span{display:none}}.foot{border-top:1px solid var(--ink);margin-top:96px}.foot .wrap{flex-wrap:wrap;justify-content:space-between;gap:16px 40px;padding-block:28px 40px;display:flex}.foot p{color:var(--sec);max-width:46ch;font-size:15px}.foot p b{color:var(--ink);font-weight:600}.foot ul{flex-wrap:wrap;gap:4px 24px;font-size:15px;font-weight:500;list-style:none;display:flex}.foot .ua{vertical-align:-1px;border-radius:2px;width:21px;height:14px;margin-right:8px;display:inline-block}.foot a{min-height:var(--tap);color:var(--sec);align-items:center;text-decoration:none;display:inline-flex}.foot a:hover{color:var(--ink);text-decoration:underline}a[href^=http]:not([href^="https://antonbabenko.com"],[href^="https://www.antonbabenko.com"],.btn,.card,[data-post]):after,a[href^=http]:not([href^="https://antonbabenko.com"],[href^="https://www.antonbabenko.com"]).card .tt:after{content:"";content:"" / " (external site)";vertical-align:.02em;opacity:.7;background:currentColor;flex:none;width:.62em;height:.62em;margin-left:.28em;display:inline-block;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10' fill='none' stroke='black' stroke-width='1.6'%3E%3Cpath d='M3 1h6v6M9 1L1.5 8.5'/%3E%3C/svg%3E") 50%/contain no-repeat}.verified{background:var(--ev);color:#fff;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 12px 3px 8px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.verified svg{flex:none;width:16px;height:16px}.verified:hover{background:#096b61}.sw{background:var(--c,var(--ink));border-radius:3px;flex:none;width:20px;height:5px;display:inline-block}.ty{text-align:center;min-width:66px;font-family:var(--mono);border:1px solid var(--rule);color:var(--sec);border-radius:6px;flex:none;padding:0 6px;font-size:13px;font-weight:500;line-height:22px;display:inline-block}.ty.release{border-color:var(--ink);background:var(--ink);color:#fff;font-weight:700}.ty.archived{border-style:dashed;border-color:var(--mute)}.pj{font-family:var(--mono);border:1px solid var(--ink);color:var(--ink);white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:0 7px;font-size:12px;font-weight:500;line-height:22px;text-decoration:none;display:inline-flex}.pj .sw{width:14px;height:4px}a.pj:hover{background:var(--wash)}.tk{border:1px solid var(--rule);font-family:var(--mono);color:var(--sec);white-space:nowrap;border-radius:6px;font-size:12px;line-height:22px;display:inline-flex}.tk>*{padding:3px 8px;line-height:16px}.tk>*+*{border-left:1px solid var(--rule)}.btn{min-height:var(--tap);border:1px solid var(--rule);background:var(--ground);border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:15px;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--ink)}.btn.solid{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}.btn.solid:hover{background:var(--ink-hover)}.btn svg{flex:none;width:14px;height:14px}.page-head{border-bottom:1px solid var(--ink);padding-block:40px 28px}.crumbs{font-family:var(--mono);color:var(--sec);margin-bottom:18px;font-size:13px}.crumbs ol{flex-wrap:wrap;gap:4px 0;list-style:none;display:flex}.crumbs li+li:before{content:"/";color:var(--mute);margin:0 8px}.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.page-head h1,.display{letter-spacing:-.03em;font-size:clamp(2.25rem,1.5rem + 2.6vw,3.25rem);font-weight:800;line-height:1.05}.lede{max-width:60ch;margin-top:14px;font-size:clamp(1.125rem,1rem + .5vw,1.3rem);line-height:1.45}.lede.sec{color:var(--sec)}.section{padding-top:44px}.section>h2,.h2{letter-spacing:-.015em;margin-bottom:14px;font-size:1.5rem;font-weight:700;line-height:1.2}.section>h2 small,.h2 small{font-family:var(--mono);color:var(--sec);letter-spacing:0;margin-left:10px;font-size:13px;font-weight:500}.reg{border-top:1px solid var(--rule);list-style:none}.reg li{border-bottom:1px solid var(--rule)}.reg div.row{grid-template-columns:112px minmax(0,1fr);gap:4px 16px;padding:14px 0;display:grid;position:relative}.reg a.tt{text-decoration:none}.reg a.tt:before{content:"";position:absolute;inset:0}.reg a.tt:focus-visible{outline:none}.reg a.tt:focus-visible:before{outline:2px solid var(--ink);outline-offset:-2px;border-radius:6px}.reg .s a{z-index:1;position:relative}.reg .rec{white-space:nowrap;color:var(--ink);text-decoration-color:var(--mute)}.reg .d{font-family:var(--mono);color:var(--sec);font-variant-numeric:tabular-nums;font-size:15px;line-height:28px}.reg .t{letter-spacing:-.01em;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:1.15rem;font-weight:600;line-height:28px;display:flex}.reg .s{color:var(--sec);flex-wrap:wrap;grid-column:2;align-items:center;gap:6px 10px;font-size:15px;line-height:1.5;display:flex}.reg .tt{overflow-wrap:anywhere}.reg div.row:hover .tt{text-underline-offset:5px;text-decoration:underline 1.5px}@media (width<=640px){.reg div.row{grid-template-columns:minmax(0,1fr)}.reg .d{font-size:13px;line-height:20px}.reg .s{grid-column:1}}.split{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:48px;display:grid}@media (width<=960px){.split{grid-template-columns:1fr;gap:0}}.facts{border:1px solid var(--ink);border-radius:12px;margin-top:44px;padding:20px 22px}.facts h2{margin-bottom:10px;font-size:15px;font-weight:700}.facts dl{grid-template-columns:auto 1fr;gap:10px 16px;font-size:15px;display:grid}.facts dt{color:var(--sec)}.facts dd{overflow-wrap:anywhere;font-weight:500}.facts dd a{text-decoration:underline;text-decoration-color:var(--mute)}.facts dd a:hover{text-decoration-color:var(--ink)}.copy{max-width:68ch}.copy p,.copy ul,.copy ol{margin-top:14px;font-size:1.0625rem;line-height:1.65}.copy ul,.copy ol{padding-left:1.3em}.copy li+li{margin-top:6px}.copy a{text-decoration-color:var(--mute)}.copy a:hover{text-decoration-color:var(--ink)}.copy h2{letter-spacing:-.015em;margin-top:44px;font-size:1.5rem;font-weight:700}.copy h3{margin-top:28px;font-size:1.15rem;font-weight:700}.prose{overflow-wrap:break-word;max-width:68ch;font-size:1.125rem;line-height:1.7}.prose a,.prose strong{overflow-wrap:anywhere}.prose>*+*{margin-top:1.1em}.prose h2{letter-spacing:-.02em;margin-top:2em;font-size:clamp(1.45rem,1.2rem + 1.1vw,2.2rem);font-weight:700;line-height:1.2}.prose h3{letter-spacing:-.01em;margin-top:1.8em;font-size:clamp(1.25rem,1.1rem + .6vw,1.76rem);font-weight:700;line-height:1.25}.prose h4{letter-spacing:-.01em;margin-top:1.6em;font-size:clamp(1.15rem,1.05rem + .35vw,1.41rem);font-weight:700;line-height:1.3}.prose h5,.prose h6{margin-top:1.4em;font-size:1.125rem;font-weight:700}.prose h2+*,.prose h3+*,.prose h4+*{margin-top:.6em}.prose a{text-decoration-color:var(--mute)}.prose a:hover{text-decoration-color:var(--ink)}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.35em}.prose li::marker{color:var(--sec)}.prose blockquote{border-left:1px solid var(--ink);color:var(--sec);padding-left:1.1em}.prose hr{border:0;border-top:1px solid var(--rule);margin-block:2.2em}.prose img{border:1px solid var(--rule);border-radius:8px}.prose figcaption{color:var(--sec);margin-top:8px;font-size:.9rem;display:block}.prose iframe{border:0;border-radius:8px;max-width:100%}.prose :not(pre)>code{background:var(--wash);border:1px solid var(--rule);overflow-wrap:anywhere;border-radius:5px;padding:.08em .35em;font-size:.86em}.prose table{border-collapse:collapse;width:100%;font-size:.95rem;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--rule);vertical-align:top;padding:8px 10px}.prose th{border-bottom-color:var(--ink);font-weight:700}.prose .expressive-code{margin-block:1.5em}@media print{.bar,.foot,.skip,.no-print,.controls,.author .links{display:none!important}html{font-size:12pt}a{text-decoration:underline}.prose a[href^=http]:after{content:" (" attr(href) ")";color:var(--sec);overflow-wrap:anywhere;font-size:.85em}.page-head,.yg,.reg li{break-inside:avoid}.prose pre{white-space:pre-wrap}}
