:root{--bg:oklch(0.994 0.001 106.423);--text:oklch(0.243 0.008 95.372);--text-secondary:oklch(0.498 0.008 106.679);--hover-bg:oklch(0.243 0.008 95.372/0.045);--underline:oklch(0.243 0.008 95.372/0.28);--control-border:oklch(0.243 0.008 95.372/0.12);--control-active-bg:oklch(0.243 0.008 95.372/0.06);--status-warning-bg:oklch(0.881 0.18 94.02);--status-warning-ink:oklch(0.178 0 0);--lanit-blue:oklch(0.68 0.15 237);--ease-out:cubic-bezier(0.23,1,0.32,1);--ease-in-out:cubic-bezier(0.77,0,0.175,1)}:root[data-theme=dark]{--bg:oklch(0.2 0.002 106.576);--text:oklch(0.949 0.003 106.45);--text-secondary:oklch(0.77 0.009 98.935);--hover-bg:oklch(0.949 0.003 106.45/0.055);--underline:oklch(0.949 0.003 106.45/0.3);--control-border:oklch(0.949 0.003 106.45/0.14);--control-active-bg:oklch(0.949 0.003 106.45/0.08)}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text-secondary);font-family:var(--font-inter),-apple-system,"Segoe UI",sans-serif;font-size:16px;line-height:1.7;letter-spacing:-.011em;-webkit-font-smoothing:antialiased}.page{position:relative;max-width:610px;margin:0 auto;padding:128px 24px 80px}@media (max-width:640px){.page{padding-top:64px}}[data-lang=en] .page [lang=ru],[data-lang=ru] .page [lang=en]{display:none}h1,h2{font-size:16px;font-weight:500;line-height:1.7;color:var(--text)}.home-name{padding-top:1.7em}header{margin-bottom:40px}section{margin-bottom:44px}section p+p{margin-top:20px}.page section p{text-wrap:pretty}.status-emphasis{color:var(--text);font-weight:500;text-decoration:underline;-webkit-text-decoration-color:var(--underline);text-decoration-color:var(--underline);text-underline-offset:3px;text-decoration-thickness:1px}.harness-preview{width:min(1120px,calc(100vw - 32px));margin-top:36px;-webkit-margin-start:50%;margin-inline-start:50%;transform:translateX(-50%)}.harness-preview__image{display:block;width:100%;height:auto;border-radius:12px;outline:1px solid oklch(0 0 0/.1)}.harness-preview__image--dark,:root[data-theme=dark] .harness-preview__image--light{display:none}:root[data-theme=dark] .harness-preview__image--dark{display:block;outline-color:oklch(1 0 0/.1)}h2{margin-bottom:16px}a{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--underline);text-decoration-color:var(--underline);text-underline-offset:3px;text-decoration-thickness:1px;transition:-webkit-text-decoration-color .15s ease;transition:text-decoration-color .15s ease;transition:text-decoration-color .15s ease,-webkit-text-decoration-color .15s ease}@media (hover:hover) and (pointer:fine){a:hover{-webkit-text-decoration-color:var(--text);text-decoration-color:var(--text)}}a:focus-visible{outline:2px solid var(--text);outline-offset:3px;border-radius:2px}.lanit-link{display:inline-flex;align-items:center;gap:.22em;vertical-align:-.05em}.lanit-link__mark{width:16px;height:14px;flex:none;background:var(--lanit-blue);-webkit-mask:url(/images/lanit-mark.svg) center/contain no-repeat;mask:url(/images/lanit-mark.svg) center/contain no-repeat}.back{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);text-decoration:none;margin-bottom:32px;transition:color .15s ease}.back__arrow{color:var(--text);font-size:18px;font-weight:700;line-height:1}@media (hover:hover) and (pointer:fine){.back:hover{color:var(--text);text-decoration:none}}.projects{list-style:none;margin:0 -12px 0 -20px}.project{display:block;position:relative;padding:10px 12px 10px 20px;border-radius:8px;text-decoration:none;transition:background-color .15s ease}.project[data-project-hop-active=true]{background-color:var(--hover-bg)}.project-hopper{position:absolute;z-index:1;top:0;left:0;width:4px;height:4px;border-radius:50%;background-color:var(--text-secondary);opacity:0;pointer-events:none;will-change:transform,opacity}@media (hover:hover) and (pointer:fine){.project:hover{background-color:var(--hover-bg)}}.project__name{display:block;color:var(--text);font-weight:500}.project__heading{display:flex;align-items:center;gap:8px}.project__status{flex-shrink:0;padding:4px 6px;border:1px solid var(--status-warning-ink);border-radius:2px;background:repeating-linear-gradient(135deg,var(--status-warning-ink) 0 2px,var(--status-warning-bg) 2px 4px) top /100% 2px no-repeat,repeating-linear-gradient(135deg,var(--status-warning-ink) 0 2px,var(--status-warning-bg) 2px 4px) bottom /100% 2px no-repeat,var(--status-warning-bg);color:var(--status-warning-ink);font-size:9px;font-weight:700;line-height:1}.project__note{display:block;color:var(--text-secondary)}.stack{display:grid;grid-template-columns:max-content 1fr;grid-column-gap:24px;column-gap:24px;grid-row-gap:10px;row-gap:10px;margin-top:20px}.stack dt{color:var(--text);font-weight:500}.stack dd{color:var(--text-secondary);text-wrap:pretty}@media (max-width:520px){.stack{display:block}.stack dd+dt{margin-top:16px}}.contacts{list-style:none;display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:20px}.contacts a{display:grid;text-decoration:none}.contact__name{color:var(--text)}.contact__value{color:var(--text-secondary);font-size:14px}.footer{display:flex;align-items:center;justify-content:space-between;margin-top:72px}.footer__note{font-size:14px}.theme-switch{display:flex;gap:2px;padding:2px;border:1px solid var(--control-border);border-radius:999px}.theme-switch button{display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:999px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:color .15s ease,background-color .15s ease}@media (hover:hover) and (pointer:fine){.theme-switch button:hover{color:var(--text)}}.theme-switch button[aria-pressed=true]{background:var(--control-active-bg);color:var(--text)}.theme-switch button:focus-visible{outline:2px solid var(--text);outline-offset:2px}.reveal{animation:reveal .6s var(--ease-out) both;animation-delay:calc(var(--i) * 70ms)}@keyframes reveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.project:before{content:"";position:absolute;top:21px;left:6px;width:4px;height:4px;border-radius:50%;background-color:var(--text-secondary);opacity:.45;transform:translateY(-50%);pointer-events:none}.project-hopper{display:none}.reveal{animation:reveal-fade .3s ease both;animation-delay:0s}@keyframes reveal-fade{0%{opacity:0}to{opacity:1}}}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.p.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_fcbcbf{font-family:Inter,Inter Fallback;font-style:normal}.__variable_fcbcbf{--font-inter:"Inter","Inter Fallback"}