/* Документы и страница 404 (scripts/build_legal.py). Токены — как в style.css. */
@font-face{font-family:Onest;src:url('/assets/onest-latin.woff2') format('woff2');font-weight:100 900;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F,U+20A0-20CF,U+2190-21FF}
@font-face{font-family:Onest;src:url('/assets/onest-cyrillic.woff2') format('woff2');font-weight:100 900;font-display:swap;unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
:root{--ink:#242628;--paper:#f1f2f0;--muted:#5c6163;--line:#cccfcc;--surface:#e6e8e5;--gutter:clamp(18px,4.3vw,80px);--ease:cubic-bezier(.2,.8,.2,1)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 Onest,Arial,sans-serif;min-height:100svh;display:flex;flex-direction:column}
a{color:inherit}
img{display:block;max-width:100%;height:auto}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--paper);padding:8px 14px;z-index:9}.skip:focus{left:8px}
.d-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px var(--gutter);border-bottom:1px solid var(--line)}
.d-logo img{width:150px;height:auto}
.d-nav{display:flex;align-items:center;gap:6px;font-size:14px}
.d-nav a{text-decoration:none;padding:10px 12px;border-radius:3px}
.d-nav a:hover{background:var(--surface)}
.d-nav .d-book{background:var(--ink);color:var(--paper);padding:12px 18px;margin-left:8px;font-weight:500}
.d-nav .d-book:hover{background:#3a3e40}
main{flex:1}
/* Документ */
.doc{padding:clamp(36px,6vw,80px) var(--gutter) 80px}
.doc-crumb{font-size:13px;color:var(--muted);margin:0 0 28px}.doc-crumb a{text-decoration:none}.doc-crumb a:hover{text-decoration:underline}
.doc h1{font-size:clamp(34px,5vw,64px);line-height:1.04;letter-spacing:-.045em;font-weight:400;margin:0 0 18px;max-width:900px}
.doc-lead{font-size:clamp(17px,1.6vw,20px);color:var(--muted);max-width:640px;margin:0 0 8px}
.doc-date{font-size:13px;color:var(--muted);margin:0 0 48px}
.doc-grid{display:grid;grid-template-columns:minmax(200px,260px) minmax(0,720px);gap:clamp(32px,6vw,96px);align-items:start}
.doc-toc{position:sticky;top:24px;font-size:14px;border-top:1px solid var(--ink);padding-top:14px}
.doc-toc p{margin:0 0 10px;font-weight:500}
.doc-toc ol{list-style:none;margin:0;padding:0;counter-reset:t}
.doc-toc li{counter-increment:t;margin:0}
.doc-toc a{display:flex;gap:10px;padding:6px 0;text-decoration:none;color:var(--muted);line-height:1.35}
.doc-toc a:before{content:counter(t);min-width:18px;color:#8a8f90}
.doc-toc a:hover{color:var(--ink)}
.doc-body{grid-column:2;max-width:720px}
.doc-grid:not(:has(.doc-toc)) .doc-body{grid-column:1/-1}
.doc-body h2{font-size:22px;font-weight:500;letter-spacing:-.02em;line-height:1.3;margin:44px 0 14px;scroll-margin-top:24px}
.doc-body h2:first-child{margin-top:0}
.doc-body p{margin:0 0 14px}
.doc-body ul{margin:0 0 16px;padding:0;list-style:none}
.doc-body li{position:relative;padding-left:22px;margin:0 0 8px}
.doc-body li:before{content:'';position:absolute;left:4px;top:.72em;width:6px;height:6px;background:var(--ink);border-radius:50%}
.doc-body a{text-underline-offset:3px}
.doc-req{margin-top:56px;padding:26px 28px;background:var(--surface);border-radius:6px}
.doc-req h2{margin:0 0 16px!important;font-size:18px}
.doc-req dl{margin:0;display:grid;gap:10px}
.doc-req div{display:grid;grid-template-columns:180px 1fr;gap:16px}
.doc-req dt{color:var(--muted)}.doc-req dd{margin:0}
/* Подвал */
.d-footer{background:var(--ink);color:#c9cec8;padding:32px var(--gutter);font-size:13px}
.d-footer nav{display:flex;flex-wrap:wrap;gap:8px 24px;margin-bottom:16px}
.d-footer a{text-decoration:none}.d-footer a:hover,.d-footer a[aria-current]{color:var(--paper);text-decoration:underline;text-underline-offset:4px}
.d-footer p{margin:0;color:#9aa19a}
/* 404 */
.nf{padding:clamp(40px,7vw,96px) var(--gutter) 80px}
.nf-hero{display:grid;grid-template-columns:auto minmax(0,560px);gap:clamp(28px,6vw,90px);align-items:center;margin-bottom:clamp(48px,7vw,88px)}
.nf-code{margin:0;font-size:clamp(120px,22vw,300px);line-height:.8;letter-spacing:-.07em;font-weight:300;color:transparent;-webkit-text-stroke:1.5px var(--ink);user-select:none}
.nf-code span{display:inline-block;color:var(--ink);-webkit-text-stroke:0;animation:nf-sway 6s var(--ease) infinite}
@keyframes nf-sway{0%,100%{transform:translateY(0)}50%{transform:translateY(-.06em)}}
.nf h1{font-size:clamp(32px,4vw,52px);line-height:1.05;letter-spacing:-.04em;font-weight:400;margin:0 0 16px}
.nf-copy>p{color:var(--muted);font-size:18px;margin:0 0 28px}
.nf-actions{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center}
.nf-btn{display:inline-flex;gap:14px;align-items:center;min-height:54px;padding:14px 24px;background:var(--ink);color:var(--paper);text-decoration:none;border-radius:4px;font-weight:500}
.nf-btn:hover{background:#3a3e40}
.nf-link{text-underline-offset:4px}
.nf-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.nf-card{position:relative;display:flex;flex-direction:column;text-decoration:none;background:var(--surface);border-radius:6px;overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.nf-card img{aspect-ratio:4/3;object-fit:cover;width:100%;transition:transform .6s var(--ease)}
.nf-card span{display:flex;flex-direction:column;gap:2px;padding:16px 46px 18px 18px}
.nf-card b{font-weight:500}.nf-card small{color:var(--muted);font-size:14px}
.nf-card i{position:absolute;right:18px;bottom:18px;font-style:normal;transition:transform .35s var(--ease)}
.nf-card:hover{transform:translateY(-3px);box-shadow:0 14px 34px #0000001a}
.nf-card:hover img{transform:scale(1.04)}.nf-card:hover i{transform:translateX(4px)}
@media (max-width:900px){.doc-grid{grid-template-columns:1fr}.doc-toc{position:static}.doc-body{grid-column:1}.nf-hero{grid-template-columns:1fr}.nf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.d-nav a:not(.d-book){display:none}.d-logo img{width:120px}.doc-req div{grid-template-columns:1fr;gap:2px}.nf-grid{grid-template-columns:1fr}.nf-card{flex-direction:row;align-items:center}.nf-card img{width:96px;aspect-ratio:1}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
