@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/onest-cyrillic-ext-wght-normal.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:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/onest-cyrillic-wght-normal.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/onest-latin-ext-wght-normal.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:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/onest-latin-wght-normal.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:#fff;--surface:#fff;--ink:#0a2463;--ink-2:#3a4a78;--ink-3:#6b779d;--line:#e1eaf4;--line-strong:#9fc6e6;--mint:#3e92cc;--mint-deep:#2a6e9e;--mint-soft:#eaf3fa;--amber:#d8315b;--amber-deep:#ad2148;--amber-soft:#fbe7ed;--red:#dc2626;--red-deep:#b91c1c;--red-soft:#fce9e9;--green:#16a34a;--green-soft:#e8f7ee;--blue:#0a2463;--blue-deep:#0a2463;--blue-soft:#e7ebf6;--font-sans:"Onest Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, "Liberation Mono", monospace;--radius:14px;--radius-sm:9px;--maxw:1080px;--shadow-card:0 1px 2px #0a24630d, 0 8px 28px #0a24630f}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{font-family:var(--font-sans);color:var(--ink-2);background-color:var(--bg);-webkit-text-size-adjust:100%;margin:0;font-size:17px;line-height:1.6}img,svg{max-width:100%;height:auto;display:block}h1,h2{color:var(--ink);text-wrap:balance;margin:0 0 .5em;line-height:1.2}p{margin:0 0 1em}.lede,.card p{text-wrap:pretty}a{color:var(--mint-deep);text-underline-offset:3px}a:hover{color:var(--mint)}.container{max-width:var(--maxw);margin:0 auto;padding:0 20px}.skip-link{z-index:100;background:var(--ink);color:#fff;border-radius:10px;padding:12px 20px;font-weight:600;text-decoration:none;position:fixed;top:14px;left:14px;transform:translateY(calc(-100% - 20px));box-shadow:0 8px 28px #0a246340}.skip-link:hover{color:#fff}.skip-link:focus,.skip-link:focus-visible{transform:translateY(0)}a,.btn,.card{transition:color .2s,background-color .2s,border-color .2s,box-shadow .2s,transform .2s}.tile{background:var(--mint);border-radius:3px;flex:none;width:14px;height:14px;display:inline-block;transform:rotate(45deg)}.site-header{z-index:50;backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#fffffff0;position:sticky;top:0}.header-bar{flex-wrap:wrap;align-items:center;gap:10px 16px;min-height:64px;padding:8px 0;display:flex}.logo{letter-spacing:.01em;color:var(--ink);align-items:center;gap:12px;font-size:21px;font-weight:700;text-decoration:none;display:inline-flex}.logo:hover{color:var(--ink)}.site-nav{gap:22px;margin-left:8px;display:flex}.site-nav a{color:var(--ink-2);white-space:nowrap;border-bottom:2px solid #0000;padding:6px 2px;font-size:15px;text-decoration:none}.site-nav a:hover{color:var(--mint-deep);border-bottom-color:var(--mint)}.site-nav a[aria-current=page]{color:var(--mint-deep);border-bottom-color:var(--mint);font-weight:600}.header-actions{align-items:center;gap:14px;margin-left:auto;display:flex}.btn{white-space:nowrap;border:1.5px solid #0000;border-radius:10px;padding:14px 22px;font-size:16px;font-weight:600;line-height:1;text-decoration:none;display:inline-block}.btn-primary{background:var(--amber);color:#fff;box-shadow:0 2px 10px #d8315b47}.btn-primary:hover{background:var(--amber-deep);color:#fff;box-shadow:0 4px 16px #d8315b61}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(1px)}.btn-small{padding:9px 16px;font-size:14px}.section{padding:72px 0 8px}.section h2{letter-spacing:-.015em;font-size:clamp(26px,4vw,38px);font-weight:800}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:24px 24px 18px}.card:hover{border-color:var(--line-strong);transform:translateY(-2px);box-shadow:0 2px 4px #0a24630f,0 14px 36px #0a24631a}.card p{color:var(--ink-2);margin-bottom:8px;font-size:15.5px}.site-footer{background:var(--ink);color:#8c99ab;border-top:1px solid #2a3648;padding:26px 0 34px;font-size:14.5px}.footer-bar{flex-wrap:wrap;align-items:center;gap:12px 28px;display:flex}.site-footer a{color:#c8d2e0}.site-footer a:hover{color:#fff}@media (width>=1080px){.section{padding-top:88px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}a,.btn,.card,.skip-link{transition:none}.btn:hover,.btn:active,.card:hover{transform:none}}@media print{.site-header{display:none}body{background:#fff}}.blog-hero{border-bottom:1px solid var(--line);padding:56px 0 28px}.blog-hero h1{margin-bottom:10px;font-size:40px}.blog-hero .lede{max-width:620px;margin:0}.blog-rss{color:var(--ink-3);margin:10px 0 0;font-size:14px}.blog-rss a{color:var(--ink-3)}.blog-rss a:hover{color:var(--mint-deep)}.blog-list{gap:18px;padding:40px 0 64px;display:grid}.blog-list .card{padding:22px 24px}.blog-list .card h2{margin-bottom:6px;font-size:20px}.blog-list .card h2 a{color:inherit;text-decoration:none}.blog-list .card h2 a:hover{color:var(--mint-deep)}.blog-list .card-date{color:var(--ink-3);margin-bottom:8px;font-size:13.5px;display:block}.article{max-width:720px;margin:0 auto;padding:44px 0 64px}.article-breadcrumb{color:var(--ink-3);margin-bottom:18px;font-size:13.5px}.article-breadcrumb a{color:var(--ink-3)}.article-breadcrumb a:hover{color:var(--mint-deep)}.article-header h1{margin-bottom:14px;font-size:34px}.article-meta{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:28px;font-size:14px;display:flex}.article-meta time{color:var(--ink-2)}.article-astra{background:var(--mint-soft);color:var(--mint-deep);border-radius:999px;align-items:center;padding:3px 10px;font-size:13px;font-weight:600;display:inline-flex}.article-tldr{background:var(--mint-soft);border:1px solid var(--line-strong);border-radius:var(--radius);margin-bottom:32px;padding:18px 22px}.article-tldr p{color:var(--ink);margin:0;font-size:16.5px}.article-tldr .tldr-label{letter-spacing:.06em;text-transform:uppercase;color:var(--mint-deep);margin-bottom:6px;font-size:12.5px;font-weight:700;display:block}.article-body h2{margin-top:2em;padding-top:.2em;font-size:25px}.article-body p,.article-body li{font-size:17px}.article-body ul,.article-body ol{margin-bottom:1em;padding-left:1.3em}.article-body li{margin-bottom:.35em}.article-body a{text-decoration-line:underline;text-decoration-color:var(--line-strong)}.article-body a:hover{text-decoration-color:currentColor}.article-body blockquote{border-left:3px solid var(--line-strong);color:var(--ink-2);margin:1.4em 0;padding:4px 18px}.article-body code{font-family:var(--font-mono);background:var(--mint-soft);color:var(--ink);border-radius:5px;padding:.15em .4em;font-size:.88em}.article-body pre{background:var(--ink);color:#e8edf4;border-radius:var(--radius-sm);margin:1.4em 0;padding:16px 18px;overflow-x:auto}.article-body pre code{color:inherit;background:0 0;padding:0;font-size:.86em}.article-body table{border-collapse:collapse;width:100%;margin:1.4em 0;font-size:15px}.article-body th,.article-body td{border:1px solid var(--line);text-align:left;padding:8px 12px}.article-body th{color:var(--ink);background:var(--mint-soft)}.article-body td:first-child,.article-body th:first-child{white-space:nowrap;width:1%}.article-body img{border-radius:var(--radius-sm)}.article-author{border-top:1px solid var(--line);color:var(--ink-3);margin-top:40px;padding-top:18px;font-size:14.5px}.product-footer{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin-top:32px;padding:20px 22px}.product-footer p{color:var(--ink-2);margin:0;font-size:15px}