:root{
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
  --pg:#F5F4EF; --ink:#1C1C1A; --mut:#6B6B63; --ln:#D8D7CE; --paper:#FFFDF8;
  --c-proto:#2E6FA8; --c-data:#3E8F63; --c-sales:#CC5B2A;
  --c-roles:#7B52A3; --c-vis:#C79418; --c-trust:#A82E52;
  --d-proto:#1A3E5E; --d-data:#204E36; --d-sales:#733013;
  --d-roles:#452C5E; --d-vis:#70520A; --d-trust:#5E182E;
  --c:#8A8A80; --cd:#4A4A44;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:20px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--pg);color:var(--ink);
  font-family:'PT Sans','Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:#0E4A77}
a:focus-visible,button:focus-visible{outline:2px solid var(--c-sales);outline-offset:2px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;z-index:99;background:var(--ink);color:#fff;padding:9px 14px}

.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.site-top{border-bottom:2px solid var(--ink);background:var(--pg)}
.site-top .wrap{display:flex;justify-content:space-between;align-items:center;
  gap:14px;flex-wrap:wrap;padding-top:17px;padding-bottom:15px}
.brand{font-size:19px;font-weight:700;letter-spacing:-.015em;text-decoration:none;color:var(--ink)}
.brand span{color:var(--mut);font-weight:400;font-size:13.5px;margin-left:9px;letter-spacing:0}
.site-top nav{display:flex;gap:17px;font-size:13.5px;flex-wrap:wrap}
.site-top nav a{color:var(--mut);text-decoration:none}
.site-top nav a:hover,.site-top nav a[aria-current]{color:var(--ink)}

main{padding:26px 0 56px}
h1{font-size:30px;line-height:1.16;letter-spacing:-.022em;margin:0 0 6px}
h2{font-size:20px;letter-spacing:-.01em;margin:34px 0 12px}
h3{font-size:16px;margin:24px 0 9px}
p{margin:0 0 14px;max-width:68ch}
.lead{font-size:16.5px;max-width:58ch}
.sub{color:#56564E;font-size:14px;max-width:62ch}

.crumbs{font-size:13px;color:var(--mut);margin:0 0 16px}
.crumbs a{color:var(--mut)}

.bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:18px 0 14px}
.bar button,.btn{font:inherit;font-size:13px;background:var(--paper);color:var(--ink);
  border:1.5px solid var(--ink);border-radius:2px;padding:7px 12px;cursor:pointer;
  box-shadow:2px 2px 0 var(--ink);text-decoration:none;display:inline-block}
.bar button:hover,.btn:hover{background:#F0EEE6}
.bar button:active,.btn:active{transform:translate(2px,2px);box-shadow:none}
.bar button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.bar .hint{font-size:12.5px;color:var(--mut)}

/* таблица терминов */
.table-area{position:relative;margin-bottom:22px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px;
  position:relative;z-index:2;list-style:none;margin:0;padding:0}
.edges{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:visible}
.el{position:relative;display:flex;flex-direction:column;justify-content:space-between;
  background:color-mix(in srgb, var(--c) 9%, var(--paper));
  border:2.5px solid var(--c);border-radius:2px;padding:8px 9px 10px;min-height:98px;
  box-shadow:3px 3px 0 var(--cd);text-decoration:none;color:inherit;
  transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease}
.el .n{display:block;font-size:10.5px;color:var(--cd);opacity:.8;
  font-family:'JetBrains Mono','SF Mono',Menlo,Consolas,monospace}
.el .tx{display:block}
.el .s{display:block;font-size:17px;font-weight:700;line-height:1.1;letter-spacing:-.02em;
  margin:6px 0 3px;color:var(--cd);overflow-wrap:break-word;hyphens:auto}
.el .s.m{font-size:15.5px}
.el .s.sm{font-size:13.5px;line-height:1.2}
.el .l{display:block;font-size:11px;line-height:1.3;color:#5E5E56;overflow-wrap:anywhere}
.el:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--cd)}
.el.own::after{content:"";position:absolute;top:-2px;right:-2px;
  border-width:0 13px 13px 0;border-style:solid;
  border-color:transparent var(--c) transparent transparent}
.table-area.focused .el{opacity:.22;box-shadow:2px 2px 0 var(--ln)}
.table-area.focused .el.sel{opacity:1;background:var(--cd);border-color:var(--ink);
  box-shadow:5px 5px 0 var(--ink);transform:translate(-2px,-2px)}
.table-area.focused .el.sel .s{color:#fff}
.table-area.focused .el.sel .n,.table-area.focused .el.sel .l{color:rgba(255,255,255,.8)}
.table-area.focused .el.rel{opacity:1;box-shadow:4px 4px 0 var(--cd)}

.legend{display:flex;flex-wrap:wrap;gap:15px;font-size:12.5px;color:var(--mut);margin:0 0 30px}
.legend i{display:inline-block;width:11px;height:11px;border:1.5px solid var(--ink);
  margin-right:6px;vertical-align:-1px}

/* карточка-подсказка на главной */
.peek{border:2px solid var(--ink);border-radius:2px;background:var(--paper);
  padding:20px 22px;box-shadow:6px 6px 0 var(--c)}
.peek .hd{display:flex;align-items:baseline;gap:11px;flex-wrap:wrap;margin-bottom:3px}
.peek h2{font-size:25px;margin:0;letter-spacing:-.022em}
.peek .cat{font-size:11.5px;padding:3px 9px;border:1.5px solid var(--ink);
  background:var(--c);color:#fff;border-radius:2px;white-space:nowrap}
.peek .full{font-size:13px;color:var(--mut);margin-bottom:12px}
.peek .def{margin:0 0 14px;max-width:62ch}
.peek .more{font-size:13.5px}

/* страница термина */
.term-head{border-bottom:2.5px solid var(--c);padding-bottom:14px;margin-bottom:20px}
.term-head .cat{display:inline-block;font-size:11.5px;padding:3px 9px;
  border:1.5px solid var(--ink);background:var(--c);color:#fff;border-radius:2px;
  text-decoration:none;margin-bottom:11px}
.term-head .full{color:var(--mut);font-size:14.5px;margin:3px 0 0}
.def-box{background:var(--paper);border:2px solid var(--ink);border-left-width:7px;
  border-left-color:var(--c);border-radius:2px;padding:16px 19px;margin:0 0 24px;
  font-size:17px;line-height:1.62}
.def-box p{margin:0;max-width:62ch}
.body p{max-width:66ch}
.own-note{font-size:13.5px;color:var(--mut);border-left:2px solid var(--c);
  padding-left:13px;margin:22px 0 0;max-width:62ch}

table.spec{border-collapse:collapse;width:100%;max-width:760px;font-size:14px;
  background:var(--paper);margin:0 0 10px}
table.spec caption{text-align:left;font-size:13px;color:var(--mut);padding:0 0 8px}
table.spec th,table.spec td{border:1px solid var(--ln);padding:9px 11px;
  text-align:left;vertical-align:top}
table.spec th{width:200px;font-weight:400;color:var(--mut);background:#FAF9F4}
table.spec tr:nth-child(even) td{background:#FCFBF6}

.rel-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.rel-list a{display:block;border:1.5px solid var(--ln);border-left:4px solid var(--rc);
  border-radius:2px;padding:7px 12px;text-decoration:none;color:var(--ink);font-size:14px;
  background:var(--paper)}
.rel-list a:hover{border-color:var(--ink);border-left-color:var(--rc)}
.rel-list span{display:block;font-size:11.5px;color:var(--mut)}

.pager{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
  border-top:1.5px solid var(--ln);margin-top:34px;padding-top:16px;font-size:14px}
.pager a{text-decoration:none}
.pager .lbl{display:block;font-size:11.5px;color:var(--mut)}

/* указатели */
.alpha{columns:3;column-gap:34px;list-style:none;margin:0;padding:0}
.alpha li{break-inside:avoid;padding:7px 0;border-bottom:1px solid #E2E1D8;font-size:15px}
.alpha a{text-decoration:none;color:#0E4A77;font-weight:600}
.alpha a:hover{text-decoration:underline}
.alpha em{font-style:normal;color:#56564E;font-size:12.5px;display:block;
  font-weight:400;margin-top:1px}
.catblock{border:2px solid var(--ink);border-radius:2px;margin:26px 0 0;
  background:var(--paper);box-shadow:6px 6px 0 var(--c);overflow:hidden}
.catblock .cap{background:var(--c);color:#fff;padding:13px 20px 14px}
.catblock h2{margin:0;font-size:20px;letter-spacing:-.015em;color:#fff}
.catblock .cap .cnt{font-size:12.5px;opacity:.9;display:block;margin-top:2px}
.catblock .about{color:#3A3A34;font-size:14.5px;max-width:64ch;
  margin:0;padding:15px 20px 4px;border-bottom:1px solid #EBEAE1}
.catblock .inner{padding:12px 20px 18px}
.catblock .alpha{columns:3;column-gap:30px}
@media (max-width:860px){.catblock .alpha{columns:2}}
@media (max-width:640px){.catblock .alpha{columns:1}
  .catblock{box-shadow:4px 4px 0 var(--c)}}

table.sources{border-collapse:collapse;width:100%;font-size:13.5px;background:var(--paper)}
table.sources th,table.sources td{border:1px solid var(--ln);padding:8px 10px;
  text-align:left;vertical-align:top}
table.sources thead th{background:var(--ink);color:var(--paper);font-weight:600;
  position:sticky;top:0}
table.sources tr:nth-child(even) td{background:#FCFBF6}
table.sources .own td:first-child{border-left:4px solid var(--c-sales)}
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:12px}

.site-foot{border-top:2px solid var(--ink);padding:22px 0 40px;font-size:13px;color:var(--mut)}
.site-foot .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.site-foot a{color:var(--mut)}
.site-foot p{margin:0 0 7px;max-width:56ch}

.nf{text-align:center;padding:50px 0 30px}
.nf .big{font-size:76px;font-weight:700;letter-spacing:-.04em;line-height:1;margin:0 0 10px;
  color:var(--c-sales)}

@media (max-width:860px){ .alpha{columns:2} }
@media (max-width:640px){
  .wrap{padding:0 14px}
  h1{font-size:24px}
  .alpha{columns:1}
  .grid{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px}
  .el{min-height:86px;padding:7px 7px 8px}
  .el .s{font-size:15px}
  .site-top nav{gap:13px;font-size:13px}
  table.spec th{width:auto}
  table.spec,table.spec tbody,table.spec tr,table.spec th,table.spec td{display:block;width:auto}
  table.spec th{border-bottom:0;background:none;padding-bottom:0;font-size:12px}
  table.spec td{border-top:0}
}
@media (prefers-reduced-motion:reduce){ .el{transition:none} }
@media print{
  .site-top nav,.bar,.edges,.pager{display:none}
  body{background:#fff}
  .el{box-shadow:none}
}

/* расширенная статья термина */
ol.crit,ul.crit{max-width:66ch;padding-left:22px;line-height:1.6}ol.crit li,ul.crit li{margin:0 0 9px}
table.levels td:first-child{white-space:nowrap}
.note{font-size:13.5px;color:var(--mut);max-width:66ch}
main h3{font-size:17px;margin:18px 0 6px}
