@font-face{font-family:"PT Serif";font-style:normal;font-weight:400;src:url(/fonts/pt-serif-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap}
@font-face{font-family:"PT Serif";font-style:normal;font-weight:400;src:url(/fonts/pt-serif-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap}
@font-face{font-family:"PT Serif";font-style:normal;font-weight:700;src:url(/fonts/pt-serif-cyrillic-700-normal.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap}
@font-face{font-family:"PT Serif";font-style:normal;font-weight:700;src:url(/fonts/pt-serif-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap}
@font-face{font-family:"PT Serif";font-style:italic;font-weight:400;src:url(/fonts/pt-serif-cyrillic-400-italic.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap}
@font-face{font-family:"PT Serif";font-style:italic;font-weight:400;src:url(/fonts/pt-serif-latin-400-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap}
@font-face{font-family:"MW Mono";src:url(/fonts/share-tech-mono-cyr.woff2) format("woff2");font-display:swap}
@font-face{font-family:"MW Serif";font-style:italic;src:url(/fonts/playfair-italic-lat.woff2) format("woff2");unicode-range:U+0000-00FF,U+2013-2026,U+20AC,U+2212;font-display:swap}
@font-face{font-family:"MW Serif";font-style:italic;src:url(/fonts/playfair-italic-cyr.woff2) format("woff2");unicode-range:U+0400-045F,U+0401,U+0451;font-display:swap}

:root{
  --black:#101010;--white:#FAFAFA;--green:#C2D218;
  --line:#2A2A2A;--line-2:#3A3A3A;--tile:#1E1E1E;
  --text-2:#D4D4D4;--text-3:#A8A8A8;
  --mono:"MW Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --serif-it:"MW Serif","PT Serif",Georgia,serif;
  --serif:"PT Serif",Georgia,serif;
  --wrap:1280px;--gut:16px;
  /* шкала размеров: все заголовки и тексты берут значения отсюда */
  --t-display:clamp(40px,7.2vw,96px);   /* h1 главной и ленты, заголовки разделов */
  --t-title:clamp(52px,7.6vw,104px);    /* названия спецпроектов */
  --t-h2:clamp(32px,4.4vw,56px);        /* заголовок поста, «Календарь релизов» */
  --t-h3:clamp(22px,2.4vw,28px);        /* заголовки постов в ленте */
  --t-lead:19px;                        /* подводки и анонсы */
  --t-body:17px;                        /* второстепенный текст */
  --t-small:15px;
  --t-label:13px;                       /* моноширинные подписи, плашки, даты */
  --t-micro:12px;
}
@media (min-width:640px){:root{--gut:24px;--t-lead:21px}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--black);color:var(--white);font-family:var(--serif);font-size:18px;line-height:1.55;overflow-x:hidden}
a{color:inherit}
a:focus-visible,button:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.mono{font-family:var(--mono)}
.caps{text-transform:uppercase;letter-spacing:.08em}
.it{font-family:var(--serif-it);font-style:italic;font-weight:400}
.green{color:var(--green)}
.skip{position:absolute;left:-9999px;top:0;background:var(--green);color:var(--black);padding:12px 16px;z-index:10;font-family:var(--mono)}
.skip:focus{left:8px;top:8px}

/* header */
.hdr{position:sticky;top:0;z-index:20;background:rgba(16,16,16,.94);border-bottom:1px solid var(--line)}
@supports (backdrop-filter:blur(1px)){.hdr{background:rgba(16,16,16,.8);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}}
[id]{scroll-margin-top:80px}
.hdr .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding-top:12px;padding-bottom:12px}
.brand{display:flex;align-items:center;gap:12px;min-height:44px;text-decoration:none;font-family:var(--mono);font-size:20px;letter-spacing:.04em}
.sign{display:block;width:22px;aspect-ratio:137/176;background:var(--green);-webkit-mask:url(/sign.png) center/contain no-repeat;mask:url(/sign.png) center/contain no-repeat}
.nav{display:flex;flex-wrap:wrap;margin:0 -12px;font-family:var(--mono);font-size:14px}
.nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;text-decoration:none;text-transform:uppercase;letter-spacing:.06em}
.nav a:hover{color:var(--green)}
@media (max-width:519px){.hdr .brand-word{display:none}.hdr .wrap{flex-wrap:nowrap}.nav{flex-wrap:nowrap;font-size:var(--t-micro);margin:0 -8px 0 0}.nav a{padding:0 8px;letter-spacing:.04em;white-space:nowrap}}
@media (max-width:359px){.nav{font-size:11px;margin-right:-6px}.nav a{padding:0 6px;letter-spacing:.02em}}

/* hero */
.hero{padding-top:56px;padding-bottom:48px}
@media (min-width:900px){.hero{padding-top:96px;padding-bottom:72px}}
.pill{display:inline-block;font-family:var(--mono);font-size:var(--t-label);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--green);color:var(--green);padding:6px 12px;border-radius:999px}
.hero h1{margin:28px 0 0;font-weight:400;font-size:var(--t-display);line-height:1.02;letter-spacing:-.01em;max-width:1100px}
.hero h1 .mono{text-transform:uppercase;display:block}
.hero h1 .it{display:block}
.hero-foot{display:flex;flex-wrap:wrap;gap:32px 48px;margin-top:32px;align-items:flex-end;justify-content:space-between}
.lede{margin:0;max-width:620px;font-size:var(--t-lead);line-height:1.5;color:var(--text-2)}
.counters{display:flex;gap:32px;font-family:var(--mono);margin:0;padding:0;list-style:none}
.counters b{display:block;font-weight:400;font-size:40px;line-height:1}
@media (min-width:640px){.counters b{font-size:48px}}
.counters span{display:block;font-size:var(--t-label);color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;margin-top:8px}

/* projects */
.projects{border-top:1px solid var(--line)}
.proj{display:flex;flex-wrap:wrap;gap:40px 48px;padding:56px 0;border-bottom:1px solid var(--line)}
@media (min-width:900px){.proj{padding:72px 0}.proj.flip{flex-direction:row-reverse}}
.proj-text,.proj-vis{flex:1 1 420px;min-width:0}
.proj-text{display:flex;flex-direction:column;gap:20px}
.meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;font-family:var(--mono);font-size:var(--t-label);text-transform:uppercase;letter-spacing:.08em}
.meta .num{font-size:20px}
.meta .dim{color:var(--text-3)}
.tag{padding:4px 10px;background:var(--green);color:var(--black)}
.tag.soon{background:none;border:1px solid var(--green);color:var(--green);padding:3px 10px}
.proj h2{margin:0;font-family:var(--serif-it);font-style:italic;font-weight:400;font-size:var(--t-title);line-height:.95}
.proj h2 a{text-decoration:none}
.proj h2 a:hover{color:var(--green)}
.proj p{margin:0;max-width:560px}
.proj .p1{font-size:var(--t-lead);line-height:1.5;color:var(--text-2)}
.proj .p2{font-size:var(--t-body);color:var(--text-3)}
.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;text-decoration:none;font-family:var(--mono);font-size:15px;text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--line-2);transition:background .15s,color .15s,border-color .15s}
.btn:hover{border-color:var(--white)}
.btn.solid{background:var(--white);color:var(--black);border-color:var(--white)}
.btn.solid:hover{background:var(--green);border-color:var(--green)}
.btn.acc{background:var(--green);color:var(--black);border-color:var(--green)}
.btn.acc:hover{background:var(--white);border-color:var(--white)}
.btn:active{transform:translateY(1px)}

.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin:0}
.stats div{background:var(--black);padding:22px;display:flex;flex-direction:column;gap:10px}
@media (min-width:640px){.stats div{padding:28px}}
.stats dt{order:2;font-family:var(--mono);font-size:var(--t-micro);text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);line-height:1.4}
.stats dd{order:1;margin:0;font-family:var(--mono);font-size:clamp(48px,7vw,72px);line-height:1}
.stats div:first-child dd{color:var(--green)}

.owners{border:1px solid var(--line);padding:24px;display:flex;flex-direction:column;gap:24px}
@media (min-width:640px){.owners{padding:32px}}
.owners .lbl{font-family:var(--mono);font-size:var(--t-label);text-transform:uppercase;letter-spacing:.1em;color:var(--text-3)}
.row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.chip{font-family:var(--mono);font-size:var(--t-label);padding:8px 12px;border:1px solid var(--line-2);white-space:nowrap}
.chip.own{font-size:17px;padding:10px 14px;border-color:var(--white)}
.chip.own.g{border-color:var(--green);color:var(--green)}
.chip.sub{background:var(--tile);border-color:var(--tile);color:var(--text-2)}
.chip.free{border-style:dashed;border-color:var(--text-3)}
.wire{flex:1 1 24px;min-width:24px;height:1px;background:var(--line-2)}
.nobody{border-top:1px dashed var(--line-2);padding-top:20px}
.nobody .it{font-size:26px;margin-right:8px}

.next{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:36px 0;font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-3)}
.next .num{font-size:20px;margin-right:16px}
.next .plus{font-size:28px;color:var(--line-2)}

/* tools */
.tools{padding-top:72px;padding-bottom:72px}
@media (min-width:900px){.tools{padding-top:96px;padding-bottom:96px}}
.sect{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);margin:0 0 24px}
.tool{display:flex;flex-wrap:wrap;border:1px solid var(--line)}
.tool-main{flex:2 1 420px;min-width:0;padding:28px;display:flex;flex-direction:column;gap:20px}
@media (min-width:640px){.tool-main{padding:40px}}
.tool h3{margin:0;font-weight:400;font-size:var(--t-h2);line-height:1.05}
.tool h3 .mono{text-transform:uppercase}
.tool p{margin:0;max-width:560px;font-size:var(--t-lead);line-height:1.5;color:var(--text-2)}
.tool-side{flex:1 1 280px;min-width:0;background:var(--green);color:var(--black);padding:28px;display:flex;flex-direction:column;justify-content:space-between;gap:28px;font-family:var(--mono)}
@media (min-width:640px){.tool-side{padding:40px}}
.tool-side small{font-size:var(--t-label);text-transform:uppercase;letter-spacing:.1em}
.tool-side strong{font-weight:400;font-size:clamp(26px,3vw,40px);line-height:1.1;overflow-wrap:anywhere}

/* footer */
.ftr{border-top:1px solid var(--line)}
.ftr-main{display:flex;flex-wrap:wrap;gap:40px 48px;justify-content:space-between;padding-top:64px;padding-bottom:48px}
.ftr-about{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;gap:18px}
.ftr-about .brand{font-size:26px;min-height:0}
.ftr-about .sign{width:28px}
.ftr-about p{margin:0;max-width:520px;color:var(--text-2)}
.ftr-about .fine{font-size:var(--t-small);color:var(--text-3)}
.ftr-links{flex:0 1 340px;width:100%;font-family:var(--mono);font-size:16px;letter-spacing:.04em;margin:0;padding:0;list-style:none}
.ftr-links a{display:flex;justify-content:space-between;align-items:center;min-height:52px;border-bottom:1px solid var(--line);text-decoration:none}
.ftr-links a:hover{color:var(--green)}
.ftr-links .up{text-transform:uppercase}
.ast{font-size:.7em;vertical-align:super;line-height:0;margin-left:1px;color:var(--text-3)}
.legal{margin:0 auto;font-size:var(--t-label);line-height:1.5;color:var(--text-3);padding-bottom:28px}
.copy{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);padding-bottom:12px}
.bar{height:6px;background:var(--green)}

/* nav: optional item hides on narrow phones */
@media (max-width:519px){.nav .nav-opt{display:none}}

/* latest posts on home */
.latest{padding-top:72px}
@media (min-width:900px){.latest{padding-top:96px}}
.latest-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 24px;margin-bottom:8px}
.latest-head .sect{margin:0;font-weight:400}
.latest-all{display:inline-flex;align-items:center;min-height:44px;font-family:var(--mono);font-size:var(--t-label);text-transform:uppercase;letter-spacing:.06em;text-decoration:none;color:var(--green)}
.latest-all:hover{color:var(--white)}
.latest-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.latest-list:empty{min-height:240px}
.latest-list a{display:flex;flex-wrap:wrap;gap:4px 24px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--line);text-decoration:none}
.latest-list a:hover span{color:var(--green)}
.latest-list time{flex:0 0 150px;font-family:var(--mono);font-size:var(--t-label);text-transform:uppercase;letter-spacing:.08em;color:var(--text-3)}
.latest-list span{flex:1 1 320px;min-width:0;font-size:var(--t-lead);line-height:1.35}

/* ===== /news ===== */
.news-hero{padding-top:56px;padding-bottom:32px}
@media (min-width:900px){.news-hero{padding-top:88px;padding-bottom:40px}}
.news-hero h1{margin:28px 0 0;font-weight:400;font-size:var(--t-display);line-height:1.02;letter-spacing:-.01em}
.news-hero h1 .mono{text-transform:uppercase}
.news-hero .lede{margin-top:32px}
.news-hero .btns{margin-top:28px}

.tools-bar{display:flex;flex-direction:column;gap:16px;padding-bottom:28px;border-bottom:1px solid var(--line)}
.search{display:flex;max-width:640px;border:1px solid var(--line-2)}
.search:focus-within{border-color:var(--green)}
.search label{position:absolute;left:-9999px}
.search input{flex:1 1 auto;min-width:0;min-height:48px;padding:0 16px;background:transparent;border:0;color:var(--white);font-family:var(--serif);font-size:17px}
.search input::placeholder{color:var(--text-3)}
.search input:focus{outline:none}
.search button{min-height:48px;padding:0 20px;border:0;border-left:1px solid var(--line-2);background:var(--white);color:var(--black);font-family:var(--mono);font-size:14px;text-transform:uppercase;letter-spacing:.06em;cursor:pointer}
.search button:hover{background:var(--green)}
.arcs{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin:0 calc(var(--gut) * -1);padding-left:var(--gut);padding-right:var(--gut);scrollbar-width:thin}
@media (min-width:900px){.arcs{flex-wrap:wrap;overflow:visible;margin:0;padding-left:0;padding-right:0}}
.arcs a{flex:0 0 auto;display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1px solid var(--line-2);font-family:var(--mono);font-size:var(--t-label);letter-spacing:.04em;text-decoration:none;white-space:nowrap}
.arcs a:hover{border-color:var(--white)}
.arcs a[aria-current]{background:var(--green);border-color:var(--green);color:var(--black)}
.arcs a small{font-size:11px;color:var(--text-3);margin-left:8px}
.arcs a[aria-current] small{color:var(--black)}
.status{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;font-family:var(--mono);font-size:var(--t-label);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3)}
.status a{color:var(--green);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}

.feed{padding-bottom:56px}
.day{display:flex;flex-wrap:wrap;gap:0 48px;border-bottom:1px solid var(--line)}
.day h2{flex:0 0 180px;margin:0;padding:28px 0 0;font-family:var(--mono);font-weight:400;font-size:var(--t-label);text-transform:uppercase;letter-spacing:.08em;color:var(--green)}
.day ol{flex:1 1 560px;min-width:0;list-style:none;margin:0;padding:0}
.post{padding:28px 0;border-top:1px solid var(--line)}
.day ol .post:first-child{border-top:0}
@media (max-width:899px){.day h2{flex-basis:100%;padding-top:24px}.day ol .post:first-child{padding-top:16px}}
.post time{display:block;font-family:var(--mono);font-size:var(--t-label);letter-spacing:.08em;color:var(--text-3);margin-bottom:8px}
.post h3{margin:0;font-family:var(--serif);font-weight:700;font-size:var(--t-h3);line-height:1.25}
.post h3.long{font-weight:400;font-size:var(--t-lead);line-height:1.4}
.post h3 a{text-decoration:none}
.post h3 a:hover{color:var(--green)}
.post p{margin:12px 0 0;max-width:720px;font-size:var(--t-body);color:var(--text-2)}
.post-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:16px}
.post-foot .arc{display:inline-flex;align-items:center;min-height:32px;padding:0 10px;background:var(--tile);font-family:var(--mono);font-size:var(--t-micro);letter-spacing:.04em;text-decoration:none;color:var(--text-2)}
.post-foot .arc:hover{color:var(--green)}
.post-foot .read{margin-left:auto;display:inline-flex;align-items:center;min-height:44px;font-family:var(--mono);font-size:var(--t-label);text-transform:uppercase;letter-spacing:.06em;text-decoration:none;color:var(--green)}
.post-foot .read:hover{color:var(--white)}
.more{display:flex;justify-content:center;padding-top:40px}
.empty{padding:64px 0;font-size:var(--t-lead);color:var(--text-2)}
.news-hero h1.arc-h1{max-width:1100px}

/* ===== /news/<номер> ===== */
.post-page{padding-top:40px;padding-bottom:40px;max-width:900px}
@media (min-width:900px){.post-page{padding-top:64px}}
.crumbs{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.crumbs a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;color:var(--green)}
.crumbs a:hover{color:var(--white)}
.post-date{display:block;margin-top:12px;font-family:var(--mono);font-size:var(--t-label);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}
.post-page h1{margin:12px 0 0;font-family:var(--serif);font-weight:700;font-size:var(--t-h2);line-height:1.1;letter-spacing:-.005em}
.post-page h1.long{font-weight:400;font-size:clamp(26px,3.2vw,36px);line-height:1.3}
.post-teaser{margin-top:28px}
.post-teaser p{margin:0 0 16px;font-size:var(--t-lead);line-height:1.6;color:var(--text-2)}
.post-teaser p:first-child{font-weight:700;color:var(--white)}
.post-cta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:28px;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.post-cta-note{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.04em;color:var(--text-3)}
.post-cta-note a{color:var(--text-2)}
.post-page .post-foot{margin-top:24px}
.post-names{margin-top:32px}
.post-names .sect{margin:0 0 12px;font-weight:400}
.post-names ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.post-names a{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1px solid var(--line-2);font-family:var(--mono);font-size:var(--t-label);letter-spacing:.02em;text-decoration:none}
.post-names a:hover{border-color:var(--green);color:var(--green)}
.post-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:48px;background:var(--line);border:1px solid var(--line)}
.post-nav>*{background:var(--black)}
.post-nav a{display:flex;flex-direction:column;gap:8px;padding:20px;text-decoration:none;min-height:96px}
.post-nav a.nav-next{text-align:right}
.post-nav a:hover span{color:var(--green)}
.post-nav small{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}
.post-nav span{font-size:var(--t-body);line-height:1.35}
@media (max-width:639px){.post-nav{grid-template-columns:minmax(0,1fr)}.post-nav a.nav-next{text-align:left}.post-nav>span:empty{display:none}}
.related{padding-bottom:72px}
.related .latest-head{margin-top:16px}
.related-wrap{max-width:900px}

/* home: media-first */
.hero-btns{margin-top:28px}
.latest{padding-top:0;padding-bottom:72px}
@media (min-width:900px){.latest{padding-bottom:96px}}
.proj-intro{padding:72px 0 8px;border-bottom:1px solid var(--line)}
@media (min-width:900px){.proj-intro{padding-top:96px}}
.proj-intro .pill{margin:0}
.proj-intro h2{margin:28px 0 0;font-weight:400;font-size:var(--t-display);line-height:1.02;letter-spacing:-.01em;max-width:1100px}
.proj-intro h2 .mono{text-transform:uppercase;display:block}
.proj-intro h2 .it{display:block}
.proj-intro .lede{margin:32px 0 56px}
@media (max-width:639px){.counters{gap:20px;flex-wrap:wrap}.counters b{font-size:34px}}

/* 404 */
.page-404{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:24px;padding:24px 16px;text-align:center;font-family:var(--mono)}
.page-404 b{font-weight:400;font-size:clamp(72px,18vw,160px);line-height:1;color:var(--green)}
.page-404 p{margin:0;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3)}
.page-404 a{display:inline-flex;align-items:center;min-height:48px;padding:0 22px;background:var(--white);color:var(--black);text-decoration:none;text-transform:uppercase;letter-spacing:.06em}
.page-404 a:hover{background:var(--green)}
