/* ===== Торг — site styles (modern minimal) ===== */
:root{
  --ink:#26292b; --ink-soft:#65696a; --ink-faint:#9a9b95;
  --paper:#f7f4ec; --paper-2:#f1ece0; --card:#fbf9f3;
  --line:rgba(38,41,43,.16); --line-soft:rgba(38,41,43,.10);
  --maxw:1240px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:"Spectral",Georgia,serif; font-size:18px; line-height:1.72; font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img{display:block; max-width:100%;}
a{color:inherit;}
h1,h2,h3{font-family:"Spectral",Georgia,serif; font-weight:300; line-height:1.07; margin:0; letter-spacing:-.01em;}
.wrap{width:100%; max-width:var(--maxw); margin:0 auto; padding:0 30px;}
[data-lang="ru"] .en{display:none !important;}
[data-lang="en"] .ru{display:none !important;}
.mono{font-family:"JetBrains Mono",ui-monospace,monospace; font-weight:400; font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--ink-soft);}
.hair{height:1px; background:var(--line); border:0; margin:0;}
.skip{position:absolute; left:-9999px;}
.skip:focus{left:16px; top:12px; z-index:100; background:var(--ink); color:var(--paper); padding:10px 16px;}

/* ---------- header ---------- */
.site-header{position:sticky; top:0; z-index:40; background:color-mix(in srgb,var(--paper) 85%,transparent); backdrop-filter:blur(12px); border-bottom:1px solid var(--line-soft);}
.bar{display:flex; align-items:center; gap:18px; height:74px;}
.logo{color:var(--ink); display:flex; align-items:center; text-decoration:none; flex:0 0 auto;}
.logo svg{height:34px; width:auto; display:block;}
.nav{margin-left:auto; display:flex; align-items:center;}
.nav-links{display:flex; gap:34px; align-items:center;}
.nav-links a{text-decoration:none; font-family:"JetBrains Mono",monospace; font-size:.71rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); position:relative; padding:6px 0; white-space:nowrap; transition:color .2s;}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--ink);}
.nav-links a::after{content:""; position:absolute; left:0; right:100%; bottom:0; height:1px; background:var(--ink); transition:right .25s;}
.nav-links a:hover::after,.nav-links a[aria-current="page"]::after{right:0;}

/* language switch — always visible */
.lang{flex:0 0 auto; display:flex; align-items:center; border:1px solid var(--line); overflow:hidden;}
.lang button{display:flex; align-items:center; gap:7px; border:0; background:transparent; cursor:pointer; font-family:"JetBrains Mono",monospace; font-size:.68rem; letter-spacing:.12em; color:var(--ink-soft); padding:8px 11px; transition:background .2s,color .2s;}
.lang button:first-child{border-right:1px solid var(--line);}
.lang button[aria-pressed="true"]{background:var(--ink); color:var(--paper);}
.flag{width:21px; height:14px; display:block; border-radius:2px; box-shadow:0 0 0 1px rgba(0,0,0,.14) inset; flex:0 0 auto;}

.nav-toggle{display:none;}

@media (max-width:920px){
  .nav-links{gap:30px;}
}
@media (max-width:820px){
  .bar{gap:12px;}
  .lang{margin-left:auto;}
  .nav-toggle{display:flex; flex-direction:column; gap:5px; justify-content:center; width:44px; height:44px; border:1px solid var(--line); background:transparent; cursor:pointer; padding:0 11px; flex:0 0 auto;}
  .nav-toggle span{height:1.5px; background:var(--ink); transition:transform .25s,opacity .2s;}
  body.nav-open .nav-toggle span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
  body.nav-open .nav-toggle span:nth-child(2){opacity:0;}
  body.nav-open .nav-toggle span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
  .nav{position:fixed; inset:74px 0 auto 0; margin:0; display:block; background:var(--paper); border-bottom:1px solid var(--line); box-shadow:0 26px 50px -34px rgba(0,0,0,.5); padding:6px 30px 26px; transform:translateY(-12px); opacity:0; pointer-events:none; transition:transform .25s,opacity .25s;}
  body.nav-open .nav{transform:none; opacity:1; pointer-events:auto;}
  .nav-links{flex-direction:column; align-items:stretch; gap:0;}
  .nav-links a{padding:19px 2px; border-bottom:1px solid var(--line-soft); font-size:.82rem;}
  .nav-links a::after{display:none;}
}

/* ---------- generic section heading ---------- */
.section{padding:clamp(72px,12vw,150px) 0;}
.shead{display:grid; gap:16px; grid-template-columns:1fr; margin-bottom:clamp(44px,7vw,84px);}
@media(min-width:780px){.shead{grid-template-columns:auto 1fr; align-items:end; gap:14px 60px;}}
.shead .idx{font-family:"JetBrains Mono",monospace; font-size:.72rem; letter-spacing:.2em; color:var(--ink-faint); padding-bottom:10px; align-self:start;}
.shead h2{font-size:clamp(2.1rem,5vw,3.5rem); font-weight:300; max-width:18ch;}
.shead .lede{grid-column:1/-1; color:var(--ink-soft); max-width:54ch; font-weight:300; font-size:1.06rem;}
@media(min-width:780px){.shead .lede{grid-column:2;}}

/* ---------- footer ---------- */
.site-footer{background:var(--ink); color:#e7e4da; margin-top:0;}
.foot{display:grid; gap:38px; grid-template-columns:1fr; padding:70px 0 40px;}
@media(min-width:720px){.foot{grid-template-columns:1.4fr 1fr; align-items:start;}}
.foot-mark{display:flex; align-items:center; gap:18px;}
.foot-mark svg{height:44px; width:auto; color:#e7e4da; flex:0 0 auto;}
.foot-slogan{font-weight:300; font-size:1.1rem; max-width:30ch; line-height:1.5; color:#f4f1e8; margin:0;}
.foot-links{display:flex; flex-direction:column; gap:14px; justify-self:start;}
@media(min-width:720px){.foot-links{justify-self:end; text-align:right;}}
.foot-links a{color:#cdcabf; text-decoration:none; font-family:"JetBrains Mono",monospace; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; transition:color .2s;}
.foot-links a:hover{color:#fff;}
.foot-copy{border-top:1px solid rgba(255,255,255,.12); padding:20px 0;}
.foot-copy .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;}
.foot-copy .mono{color:#8f8c82;}

/* ---------- shared buttons / links ---------- */
.txtlink{display:inline-flex; align-items:center; gap:12px; text-decoration:none; font-family:"JetBrains Mono",monospace; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink); border-bottom:1px solid var(--line); padding-bottom:8px; transition:gap .25s,border-color .2s;}
.txtlink:hover{gap:18px; border-color:var(--ink);}
.txtlink .arrow{transition:transform .3s;}
.txtlink.back .arrow{transition:transform .3s;}
.txtlink.back:hover .arrow{transform:translateX(-6px);}

/* ==========================================================
   ARTICLE / TOWER PAGES
   ========================================================== */
.tower{padding-bottom:clamp(70px,10vw,120px);}
.page-hero{padding:clamp(40px,7vw,80px) 30px clamp(34px,5vw,52px); max-width:var(--maxw); margin:0 auto;}
.crumb{margin-bottom:clamp(30px,5vw,46px);}
.page-kicker{font-family:"JetBrains Mono",monospace; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-faint); display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center;}
.page-kicker .dot{width:4px; height:4px; border-radius:50%; background:var(--ink-faint);}
.page-hero h1{font-size:clamp(2.6rem,7vw,5rem); font-weight:300; margin:18px 0 0; max-width:16ch;}
.page-hero .lead{font-size:clamp(1.15rem,2.4vw,1.5rem); font-weight:300; color:var(--ink-soft); max-width:50ch; margin:26px 0 0; line-height:1.5;}

/* meta strip */
.meta{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); max-width:var(--maxw); margin:clamp(30px,5vw,46px) auto 0; }
@media(min-width:680px){.meta{grid-template-columns:repeat(4,1fr);}}
.meta .wrap{padding:0;}
.meta-item{background:var(--paper); padding:22px 24px;}
.meta-item dt{font-family:"JetBrains Mono",monospace; font-size:.64rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-faint); margin:0 0 8px;}
.meta-item dd{margin:0; font-size:1.18rem; font-weight:300;}

/* figures */
.figure{max-width:var(--maxw); margin:clamp(40px,6vw,72px) auto; padding:0 30px;}
.figure img{width:100%; height:auto; display:block; background:var(--paper-2);}
.figure.tall img{max-height:84vh; object-fit:contain; background:var(--paper-2);}
.figure figcaption{margin-top:14px; font-family:"JetBrains Mono",monospace; font-size:.66rem; letter-spacing:.1em; color:var(--ink-faint); line-height:1.6; max-width:70ch;}
.figure.bw img{filter:saturate(0);}

/* prose */
.prose{max-width:720px; margin:0 auto; padding:0 30px;}
.prose + .prose{padding-top:0;}
.prose p{margin:0 0 1.5em; font-weight:400; color:#34383a; font-size:1.13rem; line-height:1.78;}
.prose p:last-child{margin-bottom:0;}
.prose .drop::first-letter{font-size:3.4em; line-height:.82; float:left; font-weight:300; padding:6px 12px 0 0; color:var(--ink);}
.prose h2{font-size:clamp(1.6rem,3.4vw,2.2rem); font-weight:300; margin:clamp(40px,6vw,64px) 0 .6em; max-width:22ch;}
.prose blockquote{margin:clamp(36px,5vw,52px) 0; padding-left:28px; border-left:2px solid var(--ink); font-size:clamp(1.4rem,3vw,1.9rem); font-weight:300; line-height:1.35; font-style:italic; color:var(--ink);}

/* factbox */
.factbox{max-width:var(--maxw); margin:clamp(56px,8vw,96px) auto 0; padding:0 30px;}
.factbox .inner{border-top:1px solid var(--line);}
.factbox h2{font-size:1.4rem; font-weight:300; padding-top:30px; margin:0 0 8px;}
.factbox .grid{display:grid; grid-template-columns:1fr; }
@media(min-width:640px){.factbox .grid{grid-template-columns:1fr 1fr;}}
.factbox dl{display:flex; flex-direction:column; gap:6px; padding:26px 0; border-bottom:1px solid var(--line);}
@media(min-width:640px){.factbox dl:nth-child(odd){padding-right:40px; border-right:1px solid var(--line);} .factbox dl:nth-child(even){padding-left:40px;}}
.factbox dt{font-family:"JetBrains Mono",monospace; font-size:.64rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-faint);}
.factbox dd{margin:0; font-size:1.15rem; font-weight:300;}

/* pager */
.pager{max-width:var(--maxw); margin:clamp(60px,9vw,110px) auto 0; padding:0 30px;}
.pager a{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px; text-decoration:none; color:inherit; border-top:1px solid var(--ink); padding-top:30px; transition:opacity .2s;}
.pager .pk{font-family:"JetBrains Mono",monospace; font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-faint);}
.pager .pt{font-size:clamp(1.8rem,4vw,2.6rem); font-weight:300;}
.pager .arrow{font-size:1.6rem; transition:transform .3s;}
.pager a:hover .arrow{transform:translateX(8px);}

/* ==========================================================
   LICENSES PAGE
   ========================================================== */
.lic-hero{padding:clamp(48px,8vw,92px) 30px clamp(30px,4vw,44px); max-width:var(--maxw); margin:0 auto;}
.lic-hero h1{font-size:clamp(2.4rem,6vw,4rem); font-weight:300; margin:16px 0 0;}
.lic-hero .lead{font-size:clamp(1.1rem,2.2vw,1.35rem); font-weight:300; color:var(--ink-soft); max-width:60ch; margin:22px 0 0; line-height:1.55;}
.lic-list{max-width:var(--maxw); margin:clamp(30px,5vw,50px) auto 0; padding:0 30px clamp(70px,10vw,120px);}
.lic{display:grid; grid-template-columns:1fr; gap:24px 44px; padding:clamp(30px,4vw,44px) 0; border-top:1px solid var(--line);}
.lic:last-child{border-bottom:1px solid var(--line);}
@media(min-width:760px){.lic{grid-template-columns:300px 1fr;}}
.lic-thumb{aspect-ratio:4/3; overflow:hidden; background:var(--paper-2);}
.lic-thumb img{width:100%; height:100%; object-fit:cover;}
.lic-body h2{font-size:clamp(1.4rem,2.6vw,1.8rem); font-weight:300; margin:0 0 4px;}
.lic-body .src{font-family:"JetBrains Mono",monospace; font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:20px;}
.lic-row{display:grid; grid-template-columns:auto 1fr; gap:6px 20px; padding:11px 0; border-top:1px solid var(--line-soft); align-items:baseline;}
.lic-row dt{font-family:"JetBrains Mono",monospace; font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint);}
.lic-row dd{margin:0; font-weight:400; font-size:1.02rem; color:#34383a;}
.lic-row dd a{color:var(--ink); text-underline-offset:3px;}
.lic-badge{display:inline-block; font-family:"JetBrains Mono",monospace; font-size:.66rem; letter-spacing:.08em; border:1px solid var(--line); padding:5px 10px; margin-top:2px;}
.lic-note{max-width:var(--maxw); margin:0 auto; padding:0 30px clamp(70px,10vw,110px);}
.lic-note .inner{background:var(--paper-2); border:1px solid var(--line); padding:clamp(26px,4vw,40px); display:grid; gap:14px;}
.lic-note .mono{color:var(--ink-faint);}
.lic-note p{margin:0; font-weight:300; color:#34383a; max-width:74ch; line-height:1.7;}
