@font-face{font-family:archivo black;src:url(/assets/fonts/archivo-black-v23-latin-regular.woff2)format("woff2");font-weight:900;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD}@font-face{font-family:ibm plex sans;src:url(/assets/fonts/ibm-plex-sans-v23-latin-regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD}@font-face{font-family:ibm plex sans;src:url(/assets/fonts/ibm-plex-sans-v23-cyrillic-regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:ibm plex sans;src:url(/assets/fonts/ibm-plex-sans-v23-latin-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD}@font-face{font-family:ibm plex sans;src:url(/assets/fonts/ibm-plex-sans-v23-cyrillic-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap;unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:ibm plex mono;src:url(/assets/fonts/ibm-plex-mono-v20-latin-regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD}@font-face{font-family:ibm plex mono;src:url(/assets/fonts/ibm-plex-mono-v20-cyrillic-regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:ibm plex mono;src:url(/assets/fonts/ibm-plex-mono-v20-latin-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD}@font-face{font-family:ibm plex mono;src:url(/assets/fonts/ibm-plex-mono-v20-cyrillic-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap;unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}:root{--paper:#F7F7F2;--ink:#1A2E28;--muted:#5A6A62;--rule:#D9DED6;--marker:#FFE066;--maxw:1020px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:ibm plex sans,-apple-system,segoe ui,sans-serif;font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}.mono{font-family:ibm plex mono,ui-monospace,monospace;font-size:.78rem;letter-spacing:.04em}a{color:var(--ink)}a:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.mark{background:linear-gradient(transparent 8%,var(--marker) 8%,var(--marker) 92%,transparent 92%);padding:0 .12em;box-decoration-break:clone;-webkit-box-decoration-break:clone}main>section,main>article,.topbar,.footer{max-width:var(--maxw);margin-inline:auto;padding-inline:24px}.eyebrow{color:var(--muted);font-weight:500;margin-bottom:2rem;border-top:1px solid var(--ink);padding-top:.75rem}.topbar{display:flex;justify-content:space-between;align-items:baseline;padding-top:22px;padding-bottom:22px}.topbar .mono{font-weight:500}.topbar nav{display:flex;gap:1.5rem}.topbar nav a{text-decoration:none}.topbar nav a:hover{background:var(--marker)}.hero{padding-top:9vh;padding-bottom:5rem}.hero h1{font-family:archivo black,ibm plex sans,sans-serif;font-weight:900;font-size:clamp(2.1rem,5.6vw,4.1rem);line-height:1.06;letter-spacing:-.015em;text-transform:none;max-width:18ch;margin-bottom:1.75rem}.lede{font-size:clamp(1.02rem,1.6vw,1.2rem);max-width:58ch;color:var(--ink);margin-bottom:2rem}.factrow{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem 0;color:var(--muted);margin-bottom:2.5rem}.factrow li{white-space:nowrap}.factrow li:not(:last-child)::after{content:"·";margin-inline:.9em;color:var(--rule)}.cta{display:flex;flex-wrap:wrap;gap:.75rem}.btn{font-family:ibm plex mono,monospace;font-size:.82rem;font-weight:500;letter-spacing:.03em;text-decoration:none;border:1.5px solid var(--ink);padding:.7em 1.3em;transition:background .15s ease}.btn:hover{background:var(--marker)}.btn-solid{background:var(--ink);color:var(--paper)}.btn-solid:hover{background:var(--ink);box-shadow:4px 4px 0 var(--marker)}.plan{padding-bottom:5rem}.gantt{position:relative}.gantt-years{display:flex;justify-content:space-between;color:var(--muted);border-bottom:1px solid var(--rule);padding-bottom:.4rem;margin-bottom:1.1rem}.gantt-row{margin-bottom:.9rem}.gantt-bar{position:relative;margin-left:var(--start);width:var(--width);min-width:4px;height:14px;background:var(--ink);animation:grow .9s cubic-bezier(.2,.7,.2,1)both;transform-origin:left center}.gantt-row:nth-child(3) .gantt-bar{animation-delay:.12s}.gantt-row:nth-child(4) .gantt-bar{animation-delay:.24s}.gantt-row:nth-child(5) .gantt-bar{animation-delay:.36s}.gantt-row:nth-child(6) .gantt-bar{animation-delay:.48s}.gantt-bar-ai{background:var(--marker)}@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}@media(prefers-reduced-motion:reduce){.gantt-bar{animation:none}html{scroll-behavior:auto}}.gantt-label{position:absolute;top:50%;transform:translateY(-50%);white-space:nowrap;color:var(--muted);font-weight:500;left:calc(100% + 10px)}.gantt-row:nth-child(4) .gantt-label,.gantt-row:nth-child(5) .gantt-label,.gantt-row:nth-child(6) .gantt-label{left:auto;right:calc(100% + 10px)}.work{padding-bottom:5rem}.case{display:grid;grid-template-columns:minmax(0,5fr)minmax(0,7fr);gap:1rem 3rem;padding-block:1.6rem;border-bottom:1px solid var(--rule)}.case:last-child{border-bottom:none}.case h2{font-size:1.15rem;font-weight:600;line-height:1.35}.case p{color:var(--ink);max-width:62ch}.ai{padding-bottom:5rem}.ai-grid{display:grid;grid-template-columns:minmax(0,7fr)minmax(0,5fr);gap:2rem 4rem}.ai h2{font-size:1.15rem;font-weight:600;margin-bottom:1rem}.list{list-style:none}.list li{padding-left:1.4rem;position:relative;margin-bottom:.9rem;max-width:60ch}.list li::before{content:"—";position:absolute;left:0;color:var(--muted)}.list-quiet li{color:var(--muted)}.aside{border-left:3px solid var(--marker);padding-left:1rem;font-weight:600;max-width:40ch}.creds{padding-bottom:5rem}.credlist{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.7rem 2rem;color:var(--muted);font-weight:500}.credlist li::before{content:"▪ ";color:var(--ink)}.skip-link{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--paper);padding:.6rem 1rem;z-index:100}.skip-link:focus{left:0}.contact{padding-bottom:5rem}.contact h2{font-family:archivo black,ibm plex sans,sans-serif;font-weight:900;font-size:clamp(1.5rem,3.4vw,2.4rem);line-height:1.15;max-width:22ch;margin-bottom:2rem}.footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;color:var(--muted);border-top:1px solid var(--rule);padding-block:1.5rem 2.5rem}@media(max-width:760px){.case,.ai-grid{grid-template-columns:1fr}.case h2{margin-bottom:.25rem}.hero{padding-top:5vh}.gantt-label{font-size:.68rem}.gantt-row{margin-bottom:1.7rem}.gantt-label,.gantt-row:nth-child(5) .gantt-label,.gantt-row:nth-child(6) .gantt-label{left:0;right:auto;top:auto;bottom:calc(100% + 3px);transform:none}}.topbar .brand{text-decoration:none;font-weight:500}.langs{margin-left:1.2rem;padding-left:1.2rem;border-left:1px solid var(--rule)}.langs a{text-decoration:none;margin-right:.6rem;color:var(--muted)}.langs a:last-child{margin-right:0}.langs a.lang-active{color:var(--ink);background:var(--marker)}.writing-teaser,.postlist{padding-bottom:5rem}.postlist{padding-top:6vh}.teaser-row{display:grid;grid-template-columns:110px 1fr;gap:1.5rem;padding-block:1rem;border-bottom:1px solid var(--rule);text-decoration:none}.teaser-row:hover .teaser-title{background:var(--marker)}.teaser-date{color:var(--muted);padding-top:.2rem}.teaser-title{font-weight:600}.teaser-block{display:flex;flex-direction:column;gap:.25rem}.teaser-desc{color:var(--muted);font-size:.95rem}.more-link{margin-top:1.2rem}.more-link a{text-decoration:none;border-bottom:2px solid var(--marker)}.post{padding-top:6vh;padding-bottom:4rem;max-width:760px}.post .eyebrow a{text-decoration:none;color:var(--muted)}.post .eyebrow a:hover{background:var(--marker);color:var(--ink)}.post-title{font-family:archivo black,ibm plex sans,sans-serif;font-weight:900;font-size:clamp(1.7rem,4vw,2.7rem);line-height:1.12;letter-spacing:-.01em;margin-bottom:1.2rem;max-width:24ch}.prose{max-width:66ch}.prose p{margin-bottom:1.1rem}.prose h2{font-size:1.15rem;font-weight:600;margin:2rem 0 .8rem;padding-top:.8rem;border-top:1px solid var(--ink)}.prose ul,.prose ol{margin:0 0 1.1rem 1.4rem}.prose li{margin-bottom:.5rem}.prose a{background:linear-gradient(transparent 70%,var(--marker) 70%);text-decoration:none}.prose blockquote{border-left:3px solid var(--marker);padding-left:1rem;color:var(--muted);margin-bottom:1.1rem}.prose code{font-family:ibm plex mono,monospace;font-size:.88em;background:#edeee8;padding:.1em .35em}.post-foot{margin-top:3rem;border-top:1px solid var(--rule);padding-top:1.5rem}.post-foot .aside{margin-bottom:1.2rem}.subscribe{margin-top:2.5rem}.subscribe-form{display:flex;gap:.75rem;flex-wrap:wrap}.subscribe-form input[type=email]{font-family:ibm plex mono,monospace;font-size:.9rem;border:1.5px solid var(--ink);background:0 0;padding:.7em 1em;min-width:260px}.subscribe-form input[type=email]:focus-visible{outline:3px solid var(--marker)}@media(max-width:760px){.teaser-row{grid-template-columns:1fr;gap:.2rem}.langs{display:block;margin:.5rem 0 0;padding-left:0;border-left:none}}.langs a{margin-right:0}.langs a+a{border-left:1px solid var(--rule);padding-left:.6rem;margin-left:.6rem}.footer a{color:var(--muted)}.footer a:hover{background:var(--marker);color:var(--ink)}