@font-face{font-family:Google Sans;src:url(/assets/fonts/google-sans.woff2) format("woff2");font-weight:400 700;font-display:swap}@font-face{font-family:FM Mono;src:url(/assets/fonts/jetbrains-mono.woff2) format("woff2");font-weight:400 600;font-display:swap}:root{--paper: #F4F1E8;--ink: #1A1A1A;--ink-2: #55524B;--frame: #0A2463;--far-blue: #123A8C;--far-cyan: #5FD7E8;--far-white: #E8F1FF;--select: #FFD24A;--rule: #D9D3C3;--dialog: #C9C6BD;--white: #FFFFFF;--link: #123A8C;--sans: "Google Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "FM Mono", ui-monospace, Consolas, monospace;--wrap: 1240px;--gutter: 24px;--fk-h: 50px}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--paper: #10131C;--ink: #E8E6E0;--ink-2: #A9A59B;--frame: #7FA6FF;--far-blue: #0E2C6B;--rule: #2A2F3D;--dialog: #3A3D45;--white: #1A1E29;--link: #8FB4FF}}:root[data-theme=dark]{--paper: #10131C;--ink: #E8E6E0;--ink-2: #A9A59B;--frame: #7FA6FF;--far-blue: #0E2C6B;--rule: #2A2F3D;--dialog: #3A3D45;--white: #1A1E29;--link: #8FB4FF}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--sans);padding-bottom:calc(var(--fk-h) + env(safe-area-inset-bottom))}img{max-width:100%;height:auto}a{color:var(--link);text-underline-offset:3px}a:hover{color:var(--frame)}:focus-visible{outline:3px solid var(--select);outline-offset:2px}h1,h2,h3{color:var(--frame);line-height:1.15;letter-spacing:-.01em;overflow-wrap:break-word;hyphens:auto}h1{font-size:clamp(28px,3.6vw,46px);font-weight:700;margin:0 0 16px;letter-spacing:-.02em}h2{font-size:clamp(24px,3vw,32px);margin:40px 0 12px}h3{font-size:22px;font-weight:500;margin:28px 0 8px}p{margin:0 0 16px}code,kbd,pre,.mono{font-family:var(--mono)}:root{--mono-features: "liga" 0, "calt" 0}code,kbd,pre,.mono,.fkeys,.toc,.panel-title,.logo-mark,.footer-title,.farwin,.dialog{font-variant-ligatures:none;font-feature-settings:var(--mono-features)}:not(pre)>code{overflow-wrap:break-word}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}.skip{position:absolute;left:-9999px;top:8px;background:var(--select);color:var(--frame);padding:8px 12px;z-index:100}.skip:focus{left:8px}.muted{color:var(--ink-2);font-size:14px}kbd{font-size:.88em;padding:1px 7px;border:1px solid var(--frame);border-radius:5px;box-shadow:0 2px 0 var(--frame);background:var(--white);color:var(--ink);white-space:nowrap}.btn{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:10px 20px;font:500 17px/1.2 var(--sans);text-decoration:none;border:2px solid var(--frame);cursor:pointer;background:transparent;color:var(--frame)}.btn-primary{background:var(--select);color:#0a2463;font-weight:700;box-shadow:4px 4px 0 var(--frame)}.btn-primary:hover{color:#0a2463;transform:translate(1px,1px);box-shadow:3px 3px 0 var(--frame)}.btn small{font:400 14px var(--mono)}.site-header{border-bottom:1px solid var(--rule)}.header-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px}.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--frame)}.logo-mark{font:600 18px var(--mono);border:3px double var(--frame);padding:1px 8px}.logo-text{display:flex;flex-direction:column;line-height:1.15}.logo-text strong{font-size:18px}.logo-text small{font-size:13px;color:var(--ink-2)}.menu summary{display:none}.top-nav{display:flex;flex-wrap:wrap;gap:22px;font-size:16px}.top-nav a{color:var(--ink);text-decoration:none;padding:6px 0;border-bottom:3px solid transparent}.top-nav a[aria-current=page],.top-nav a.accent{color:var(--frame);font-weight:700;border-bottom-color:var(--select)}@media (max-width: 860px){.logo-text small{display:none}.menu{position:relative}.menu summary{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;border:2px solid var(--frame);color:var(--frame);cursor:pointer;list-style:none;font-weight:500}.menu summary::-webkit-details-marker{display:none}.menu summary{transition:background-color .2s ease,color .2s ease}.menu[open] summary{background:var(--select);color:#0a2463}.menu-icon{position:relative;display:block;width:18px;height:14px}.menu-icon:before,.menu-icon:after,.menu-icon{background:linear-gradient(currentColor,currentColor) center / 100% 2px no-repeat}.menu-icon:before,.menu-icon:after{content:"";position:absolute;left:0;width:100%;height:2px;background:currentColor;transition:transform .28s cubic-bezier(.6,-.3,.3,1.4),top .28s ease}.menu-icon:before{top:0}.menu-icon:after{top:12px}.menu-icon{transition:background-size .2s ease}.menu[open] .menu-icon{background-size:0 2px}.menu[open] .menu-icon:before{top:6px;transform:rotate(45deg)}.menu[open] .menu-icon:after{top:6px;transform:rotate(-45deg)}.menu:not([open]) .top-nav{display:none}.menu[open] .top-nav{animation:menu-in .22s ease-out;transform-origin:top right}@keyframes menu-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}.top-nav{position:absolute;right:0;top:calc(100% + 8px);z-index:30;flex-direction:column;gap:0;min-width:240px;background:var(--paper);border:4px double var(--frame);padding:8px}.top-nav a{padding:12px 10px;border-bottom:1px solid var(--rule)}}.panel{position:relative;border:4px double var(--frame);padding:30px 20px 16px;margin-top:14px}.panel>.panel-title{position:absolute;top:-14px;left:0;right:0;text-align:center;margin:0;font-size:16px;line-height:24px;letter-spacing:0}.panel>.panel-title span{background:var(--paper);padding:0 12px;font:600 16px var(--mono);color:var(--frame)}.rows{list-style:none;margin:0;padding:0}.rows a{display:flex;justify-content:space-between;gap:12px;padding:9px 8px;color:var(--ink);text-decoration:none;min-height:44px;align-items:center}.rows a:hover,.rows a.selected{background:var(--select);color:#0a2463}.rows .meta{font:14px var(--mono);color:var(--ink-2);white-space:nowrap}.rows a:hover .meta{color:#0a2463}.catalog{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(460px,100%),1fr));gap:44px 32px;margin-top:36px}.catalog .rows a{align-items:flex-start}.catalog .rows strong{display:block;font-weight:600;color:var(--frame)}.catalog .rows small{display:block;font-size:14px;color:var(--ink-2);line-height:1.45;margin-top:2px}.catalog .rows a:hover strong,.catalog .rows a:hover small{color:#0a2463}.catalog .rows .meta{padding-top:3px}.all-articles{margin-top:20px;font-size:15px}.more{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease}.more.open{grid-template-rows:1fr}.more-in{overflow:hidden}.more-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;margin-top:8px;border:0;border-top:1px dashed var(--rule);background:transparent;color:var(--frame);font:600 15px var(--mono);cursor:pointer}.more-btn:hover{background:var(--select);color:#0a2463}.more-btn b{font-size:11px;transition:transform .3s ease}.more-btn[aria-expanded=true] b{transform:rotate(180deg)}.panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:40px 32px}.farwin{background:var(--far-blue);padding:10px;box-shadow:8px 8px 0 var(--frame);color:var(--far-white)}.farwin-in{position:relative;border:4px double var(--far-cyan);padding:24px 14px 14px;font-family:var(--mono);font-size:15px}.farwin-title{position:absolute;top:-13px;left:0;right:0;text-align:center;margin:0;font-size:15px;font-weight:400}.farwin-title span{background:var(--far-blue);padding:0 10px;color:var(--far-cyan)}.farwin .hl{color:var(--select)}.farwin a{color:var(--far-white)}.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}.files{width:100%;border-collapse:collapse;min-width:640px}.files th{color:var(--select);text-align:left;font-weight:400;padding:4px 6px}.files td{padding:6px;vertical-align:top}.files tr.selected td{background:var(--select);color:#0a2463;font-weight:600}.files tr.selected a{color:#0a2463}.files .num{text-align:right;white-space:nowrap}.files .hash{font-size:12px;word-break:break-all;max-width:260px}@media (max-width: 680px){.files{min-width:0}.files thead{display:none}.files tr{display:block;padding:10px 6px;border-bottom:1px dashed rgba(95,215,232,.5)}.files td{display:inline;padding:0 8px 0 0}.files td:first-child{display:block;padding-bottom:4px;word-break:break-all}.files .hash{display:block;max-width:none;padding-top:4px;font-size:11px;opacity:.85}.files .hash:before{content:"SHA-256: "}.files tr.selected{background:var(--select);color:#0a2463}.files tr.selected td{background:transparent}}.dialog-wrap{background:var(--far-blue);padding:20px}.dialog{background:var(--dialog);color:var(--ink);border:4px double var(--ink);padding:16px 18px;box-shadow:8px 8px #00000073}.dialog-title{font:600 16px var(--mono);text-align:center;margin:0 0 8px;color:var(--ink)}.dialog p:last-child{margin-bottom:0}pre{background:var(--far-blue);color:var(--far-white);padding:16px 18px;overflow-x:auto;font-size:15px;line-height:1.6}:not(pre)>code{font-size:.9em;background:var(--white);border:1px solid var(--rule);padding:1px 5px}.table{overflow-x:auto;margin:0 0 20px}.table table{width:100%;border-collapse:collapse;font-size:16px}.table th{text-align:left;color:var(--frame);border-bottom:3px double var(--frame);padding:8px 10px}.table td{border-bottom:1px solid var(--rule);padding:8px 10px;vertical-align:top}.table td:first-child{font-family:var(--mono)}.table th:first-child:empty{border-bottom-color:transparent}@media (max-width: 680px){.table{overflow:visible}.table thead{display:none}.table tr{display:block;padding:10px 0;border-bottom:1px solid var(--rule)}.table td{display:block;border:0;padding:2px 0}.table td:first-child{font-weight:600;color:var(--frame);padding-bottom:4px}.table--multi td[data-label]:not(:first-child):before{content:attr(data-label) ": ";color:var(--ink-2);font-size:14px}}.hero{display:flex;flex-wrap:wrap;gap:48px;align-items:center;padding:56px 0 40px}.hero-copy{flex:999 1 520px;min-width:0}.hero-copy h1{font-size:clamp(32px,4.4vw,54px)}.hero-copy .lead{font-size:19px;max-width:620px}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:8px 0 12px}.hero-far{flex:1 1 420px;min-width:0}.hero-far .farwin-in{min-height:300px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.hero-far .pane{position:relative;border:4px double var(--far-cyan);padding:18px 10px 10px;font-size:14px}.hero-far .pane-title{position:absolute;top:-12px;left:0;right:0;text-align:center}.hero-far .pane-title span{background:var(--far-blue);padding:0 8px;color:var(--far-cyan)}.hero-far .line{display:flex;justify-content:space-between;gap:8px}.hero-far .line.selected{background:var(--far-cyan);color:#0a2463}.hero-far .cmd{grid-column:1 / -1;font-size:14px}.cursor{display:inline-block;width:.6em;background:var(--far-white);animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.band{background:var(--far-blue);color:var(--far-white);padding:48px 0;margin:48px 0}.band h2{color:var(--white);margin-top:0}.band a{color:#fff}:root[data-theme=dark] .band h2{color:#fff}.qa{list-style:none;margin:0;padding:0}.qa a{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid rgba(95,215,232,.4);text-decoration:none;min-height:44px}.qa li:last-child a{border-bottom:0}.cols{display:flex;flex-wrap:wrap;gap:40px}.cols>*{flex:1 1 360px;min-width:0}@media (max-width: 560px){:root{--gutter: 16px}body{font-size:16px}.hero{padding-top:28px;gap:28px}.hero-far .farwin-in{grid-template-columns:1fr}.hero-far .pane:first-child{display:none}.btn-primary{width:100%;justify-content:space-between}}.crumbs{font-size:14px;color:var(--ink-2);margin:32px 0 12px}.article-grid{display:flex;flex-wrap:wrap;gap:56px;align-items:flex-start;padding-bottom:56px}.article-body{flex:999 1 640px;min-width:0;max-width:760px}.article-body .lead{font-size:19px}.article-aside{flex:1 1 260px;min-width:0;position:sticky;top:16px;display:flex;flex-direction:column;gap:24px}.toc a{font-family:var(--mono);font-size:15px;border-left:3px solid transparent}.toc a.active{border-left-color:var(--frame);background:color-mix(in srgb,var(--select) 45%,transparent);color:var(--frame);font-weight:600}.toc a.active:hover{background:var(--select)}.toc-mobile{display:none;border:4px double var(--frame);margin:0 0 24px}.toc-mobile summary{cursor:pointer;padding:10px 14px;min-height:44px;display:flex;align-items:center;justify-content:space-between;font:600 16px var(--mono);color:var(--frame);list-style:none}.toc-mobile summary::-webkit-details-marker{display:none}.toc-mobile summary:after{content:"▼";font-size:12px}.toc-mobile[open] summary:after{content:"▲"}.toc-mobile .rows{padding:0 6px 8px}.pager{display:grid;grid-template-columns:1fr 1fr;gap:24px;border-top:3px double var(--frame);padding-top:18px;margin-top:40px}.pager a{display:flex;flex-direction:column;gap:2px;text-decoration:none}.pager .pager-next{grid-column:2;text-align:right}.pager small{color:var(--ink-2)}@media (max-width: 600px){.pager{grid-template-columns:1fr;gap:0;padding-top:0}.pager>span:empty{display:none}.pager a{padding:14px 0;min-height:44px}.pager a+a{border-top:1px solid color-mix(in srgb,var(--frame) 25%,transparent)}.pager .pager-next{grid-column:auto;text-align:left}}@media (max-width: 960px){.article-aside{position:static}.article-aside .toc-panel{display:none}.article-aside:not(:has(.ad-slot)){display:none}.toc-mobile{display:block}}.ad-slot{position:relative;border:1px dashed var(--ink-2);padding:22px;min-height:90px;display:flex;align-items:center;justify-content:center;color:var(--ink-2);font-size:14px;margin:24px 0}.ad-slot:before{content:"Реклама";position:absolute;top:-10px;left:16px;background:var(--paper);padding:0 6px;font:12px var(--mono)}.footer-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 32px;padding-top:22px;padding-bottom:22px}.site-footer{border-top:4px double var(--frame);font-size:15px}.footer-brand{display:flex;align-items:center;gap:12px;margin:0;color:var(--ink-2)}.footer-brand .logo-mark{font-size:15px;color:var(--frame)}.footer-links{display:flex;flex-wrap:wrap;gap:6px 22px}.footer-links a{color:var(--ink);text-decoration:none}.footer-links a:hover{color:var(--frame);text-decoration:underline}.legal{display:flex;flex-wrap:wrap;gap:16px}.fkeys{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));background:#0a2463;font:clamp(13px,1.1vw,17px) var(--mono);padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -3px #5fd7e8,0 -8px 18px #0a246340}.fkeys a{display:flex;align-items:center;gap:4px;min-height:var(--fk-h);padding:0 5px;text-decoration:none}.fk-num{color:#e8f1ff;padding:0 2px}.fk-label{flex:1;background:#5fd7e8;color:#0a2463;padding:5px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fkeys a[aria-current=page] .fk-label,.fkeys a:hover .fk-label{background:#ffd24a}@media (max-width: 1100px){:root{--fk-row: 42px;--fk-h: calc(var(--fk-row) * 2)}.fkeys{grid-template-columns:repeat(5,minmax(0,1fr));font-size:14px}.fk-label{padding:3px 6px}.fkeys a{min-height:var(--fk-row);padding:0 3px}}@media (max-width: 480px){.fkeys{font-size:clamp(10px,3.3vw,13px)}.fkeys a{padding:0 2px}.fk-num{display:none}.fk-label{padding:3px 1px;text-align:center;letter-spacing:-.02em}}.cc{position:fixed;left:0;right:0;bottom:calc(var(--fk-h) + env(safe-area-inset-bottom));z-index:50;padding:12px;display:flex;justify-content:center;pointer-events:none}.cc[hidden]{display:none}.cc-dialog{pointer-events:auto;width:min(720px,100%);max-height:calc(100vh - var(--fk-h) - 40px);overflow-y:auto;background:var(--dialog);color:var(--ink);border:4px double var(--ink);box-shadow:8px 8px #00000073;padding:16px 18px}.cc-title{font:600 16px var(--mono);text-align:center;margin:0 0 8px}.cc-text{font-size:15px;line-height:1.5;margin:0 0 6px}.cc-links{font-size:14px;margin:0 0 12px}.cc-links a{color:var(--frame)}.cc-actions{display:flex;flex-wrap:wrap;gap:10px}.cc-actions .btn{font-size:16px;padding:8px 16px}.cc-actions .btn-ghost{border-color:var(--ink);color:var(--ink)}.cc-settings{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.cc-cat{display:flex;gap:10px;align-items:flex-start;font-size:15px;cursor:pointer}.cc-cat input{width:20px;height:20px;margin-top:3px;accent-color:#0A2463;flex:none}.cc-cat small{display:block;color:var(--ink-2);font-size:14px}.cc--settings .cc-text,.cc--settings .cc-links{display:none}@media (max-width: 560px){.cc-actions .btn{flex:1 1 auto;justify-content:center}}@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}.panel,.farwin{animation:draw .45s ease-out both}@keyframes draw{0%{clip-path:inset(-24px 100% 100% -8px)}to{clip-path:inset(-24px -8px -8px -8px)}}}@media (prefers-reduced-motion: reduce){.menu-icon,.menu-icon:before,.menu-icon:after{transition:none}.menu[open] .top-nav,.cursor{animation:none}*{scroll-behavior:auto!important}}.trust{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:4px double var(--frame)}.trust li{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;font-size:15px;line-height:1.45;color:var(--ink-2)}.trust li+li{border-left:1px solid var(--rule)}.trust b{flex:none;display:grid;place-items:center;width:26px;height:26px;background:var(--select);color:#0a2463;font:700 15px var(--mono)}.trust strong{display:block;color:var(--frame);font-size:16px}@media (max-width: 760px){.trust{grid-template-columns:1fr}.trust li+li{border-left:0;border-top:1px solid var(--rule)}}.dl-info{max-width:860px;margin-top:16px}.dl-info section+section{margin-top:8px}.trainer{margin-top:24px}.trainer-win .farwin-in{min-height:340px;display:flex;flex-direction:column}.tr-screen{flex:1;display:flex;flex-direction:column;justify-content:center;gap:16px;padding:12px 8px;color:var(--far-white)}.tr-screen[hidden]{display:none}.tr-big{font:600 22px var(--mono);margin:0;text-align:center;color:var(--far-white)}.tr-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px 24px}.tr-mode{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--far-cyan);cursor:pointer}.tr-mode input{width:18px;height:18px;accent-color:#FFD24A}.tr-note{margin:0;text-align:center;font-size:14px;color:var(--far-cyan)}.tr-status{display:flex;justify-content:space-between;gap:12px;font:15px var(--mono);color:var(--far-cyan)}.tr-status b{color:#ffd24a}.tr-timer{height:6px;background:#5fd7e833}.tr-timer i{display:block;height:100%;background:var(--far-cyan);transform-origin:left}.tr-task{margin:8px 0 0;text-align:center;font:600 clamp(20px,3vw,28px)/1.3 var(--sans);color:#fff}.tr-pressed{margin:0;text-align:center;font:600 18px var(--mono);color:var(--far-cyan);min-height:1.6em}.tr-pressed.ok{color:#7cfc9a}.tr-pressed.bad{color:#ffd24a}.trainer.tr-ok .farwin{box-shadow:0 0 0 4px #7cfc9a}.trainer.tr-bad .farwin{box-shadow:0 0 0 4px #ffd24a}.tr-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:520px;width:100%;margin:0 auto}.tr-choices[hidden]{display:none}.tr-choice{min-height:48px;border:2px solid var(--far-cyan);background:transparent;color:var(--far-white);font:600 17px var(--mono);cursor:pointer}.tr-choice:hover,.tr-choice:focus-visible{background:#5fd7e8;color:#0a2463}.tr-skip{align-self:center;border:0;background:none;color:var(--far-cyan);font:14px var(--sans);text-decoration:underline;cursor:pointer}.tr-rank{margin:0;text-align:center;font:700 clamp(28px,4vw,40px) var(--sans);color:#ffd24a}.tr-missed{max-width:560px;margin:0 auto}.tr-missed ul{margin:6px 0 0;padding-left:20px;color:var(--far-white);font-size:15px}.tr-missed kbd{color:var(--ink)}.hk-trainer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin:24px 0;padding:16px 20px;border:4px double var(--frame)}.hk-trainer p{margin:0}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.search-form{display:flex;gap:10px;max-width:760px;margin:8px 0 12px}.search-form input{flex:1 1 auto;min-width:0;min-height:48px;padding:8px 14px;font:400 18px/1.3 var(--sans);color:var(--ink);background:var(--white);border:2px solid var(--frame);border-radius:0}.search-results{list-style:none;padding:0;margin:20px 0 0;max-width:820px}.search-results li{padding:14px 0;border-bottom:1px solid var(--rule)}.search-results p{margin:6px 0 0}mark{background:var(--select);color:#0a2463;padding:0 2px}@media (max-width: 560px){.search-form{flex-direction:column}}@media print{.fkeys,.cc,.site-header .menu,.ad-slot,.article-aside{display:none!important}body{padding:0;background:#fff}}
