.hero{max-width:var(--measure);margin:0 auto;padding:48px var(--gutter) 0}.hero__eyebrow{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:12px;color:var(--text-dim);margin-bottom:24px}.hero__dot{color:var(--accent)}.hero__sub{font-size:clamp(17px,2vw,20px);line-height:1.5;color:var(--text-dim);max-width:56ch;margin:26px 0 0;text-wrap:pretty}.hero__actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin:38px 0 0}.hero__platforms{font-family:var(--font-mono);font-size:12px;color:var(--text-quiet)}.shot-frame{margin-top:clamp(40px,6vw,64px);border:1px solid var(--border);border-bottom:none;border-radius:12px 12px 0 0;background:var(--surface);padding:10px 10px 0}.shot-frame__bar{display:flex;align-items:center;gap:6px;padding:6px 8px 12px}.shot-frame__dot{width:9px;height:9px;border-radius:50%;background:var(--border-strong)}.shot-frame__title{font-family:var(--font-mono);font-size:11px;color:var(--text-quiet);margin-left:10px}.stats{display:flex;flex-wrap:wrap;border:1px solid var(--border);border-radius:0 0 12px 12px;background:var(--surface);box-shadow:var(--lift)}.stats__cell{flex:1 1 140px;padding:20px 24px;border-right:1px solid var(--border-soft)}.stats__cell:last-child{border-right:none}.stats__figure{font-family:var(--font-mono);font-size:22px;color:var(--text)}.stats__label{font-size:12px;color:var(--text-quiet);margin-top:4px}.carousel{margin-top:clamp(40px,6vw,64px)}.carousel__viewport{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px}.carousel__viewport::-webkit-scrollbar{display:none}.carousel__slide{flex:0 0 100%;scroll-snap-align:center;min-width:0}.carousel__frame{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:10px}.carousel__frame img{display:block;width:100%;height:auto;border-radius:7px;background:repeating-linear-gradient(135deg,#161b22 0 8px,#12161c 8px 16px)}.carousel__caption{font-size:14px;color:var(--text-dimmer);margin-top:12px;text-align:center;min-height:1.55em}.carousel__controls{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:16px}.carousel__btn{background:transparent;border:1px solid var(--border-strong);color:var(--text);border-radius:6px;width:34px;height:34px;font-size:15px;line-height:1;cursor:pointer;font-family:var(--font-sans)}.carousel__btn:hover:not(:disabled){border-color:var(--border-hover)}.carousel__btn:disabled{opacity:.35;cursor:default}.carousel__dots{display:flex;gap:8px}.carousel__dot{width:7px;height:7px;border-radius:50%;border:none;padding:0;background:var(--border-strong);cursor:pointer}.carousel__dot[aria-current=true]{background:var(--accent)}@media(prefers-reduced-motion:reduce){.carousel__viewport{scroll-behavior:auto}}.compare{margin-top:44px;border:1px solid var(--border);border-radius:12px;overflow:hidden}.compare__scroll{overflow-x:auto}.compare__grid{min-width:820px}.compare__row{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;border-top:1px solid var(--border-faint);background:var(--bg)}.compare__row--head{background:var(--surface);border-top:none}.compare__row--head>div{padding:16px 22px;font-size:13px;color:var(--text-dim)}.compare__row>div{padding:15px 22px;font-size:14px;color:var(--text-faint)}.compare__label{color:var(--text)!important}.compare__ours{color:var(--text)!important;background:var(--surface-hl)}.compare__row--head .compare__ours{color:var(--accent)!important;font-weight:600}.bars{display:flex;flex-direction:column;gap:20px;margin-top:36px;max-width:820px}.bar__head{display:flex;justify-content:space-between;align-items:baseline;font-size:14px;margin-bottom:8px}.bar__name{color:var(--text-dim)}.bar__value{font-family:var(--font-mono);color:var(--text-faint)}.bar__track{height:14px;border-radius:3px;background:var(--border-faint)}.bar__fill{height:100%;border-radius:3px;background:var(--border-strong)}.bar--ours .bar__name{color:var(--text);font-weight:600}.bar--ours .bar__value{color:var(--accent)}.bar--ours .bar__fill{background:var(--accent);min-width:6px}.note{font-size:13px;color:var(--text-quiet);max-width:60ch;margin-top:20px}.feature-row{display:flex;flex-wrap:wrap;gap:clamp(28px,5vw,64px);align-items:flex-start;margin-top:56px;padding-top:48px;border-top:1px solid var(--border-soft)}.feature-row__text{flex:1 1 320px}.feature-row__media{flex:1 1 380px}.feature-list{display:flex;flex-direction:column;gap:22px}.feature__title{font-size:15px;font-weight:600;color:var(--text)}.feature__body{font-size:14px;color:var(--text-dimmer);margin-top:5px}.hairline-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1px;background:var(--border-soft);border:1px solid var(--border-soft);border-radius:10px;overflow:hidden;margin-top:28px}.hairline-grid--steps{border-radius:12px;margin-top:44px}.hairline-grid__cell{background:var(--bg);padding:26px 24px}.hairline-grid--steps .hairline-grid__cell{padding:28px 26px}.step__number{font-family:var(--font-mono);font-size:11px;color:var(--accent);margin-bottom:12px}.step__title{font-size:16px;font-weight:600;color:var(--text)}.band{margin-top:96px;background:var(--surface);border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft)}.band__inner{max-width:var(--measure);margin:0 auto;padding:88px var(--gutter)}.band__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:44px;margin-top:52px}.band__tech{font-family:var(--font-mono);font-size:11px;color:var(--text-quiet);margin-bottom:14px}.band h3{font-size:19px;line-height:1.3;margin:0 0 10px}.band p{font-size:14px;color:var(--text-dimmer);margin:0}.platforms{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:52px}.platform{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:28px}.platform__name{font-size:18px;font-weight:600}.platform__req{font-family:var(--font-mono);font-size:12px;color:var(--text-quiet);margin-top:6px}.platform__links{display:flex;flex-direction:column;gap:9px;margin-top:22px}.platform__links .btn{text-align:center;font-size:14px;padding:10px 14px;border-radius:6px}.platform__size{font-family:var(--font-mono);color:inherit;opacity:.75}.info-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-top:20px}.info-card{border:1px solid var(--border);border-radius:12px;padding:28px}.info-card__title{font-size:15px;font-weight:600;margin-bottom:10px}.info-card p{font-size:14px;color:var(--text-dimmer);margin:0 0 14px}.defs{display:flex;flex-direction:column;gap:16px;margin-top:48px}.def{display:flex;flex-wrap:wrap;gap:6px 20px;font-size:15px}.def__key{font-family:var(--font-mono);font-size:12.5px;color:var(--text-quiet);padding-top:3px;flex:0 0 auto;min-width:170px}.def__value{color:var(--text-muted);flex:1 1 300px}.table{margin-top:48px;border:1px solid var(--border);border-radius:12px;overflow:hidden}.table__scroll{overflow-x:auto}.table__grid{min-width:640px}.table__row{display:grid;grid-template-columns:1fr 1.4fr .7fr;border-top:1px solid var(--border-faint);font-size:14px}.table__row--head{background:var(--surface);border-top:none;font-size:13px;color:var(--text-dim)}.table__row--head>div{padding:14px 20px}.table__row>div{padding:16px 20px;color:var(--text-dimmer)}.table__row>div:first-child{color:var(--text)}.closing{max-width:var(--measure);margin:0 auto;padding:88px var(--gutter) 96px;text-align:center}.closing h2{font-size:clamp(28px,4vw,40px);line-height:1.1;letter-spacing:-.03em;max-width:none}.closing p{font-size:17px;color:var(--text-dim);max-width:48ch;margin:18px auto 0}.closing__actions{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;margin-top:34px}#consent{position:fixed;left:var(--gutter);right:var(--gutter);bottom:var(--gutter);z-index:90;max-width:560px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px 22px;box-shadow:var(--lift);font-size:14px;color:var(--text-dimmer)}#consent p{margin:0 0 16px}#consent .consent__actions{display:flex;gap:10px;flex-wrap:wrap}#consent .btn{font-size:13px;padding:8px 16px;border-radius:6px}.memtable{margin-top:36px;max-width:820px;border:1px solid var(--border);border-radius:12px;overflow:hidden}.memtable__row{display:grid;grid-template-columns:1fr auto auto;border-top:1px solid var(--border-faint);font-size:14px}.memtable__row>div{padding:15px 22px;color:var(--text-faint)}.memtable__row>div:not(:first-child){text-align:right;min-width:8rem}.memtable__row--head{background:var(--surface);border-top:none;font-size:13px}.memtable__row--head>div{color:var(--text-dim)}.memtable__row--ours{background:var(--surface-hl)}.memtable__row--ours>div{color:var(--text)}.memtable__row--ours>div:first-child{font-weight:600}.memtable__row--ours .num{color:var(--accent)}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.block-sep{margin-top:64px;padding-top:48px;border-top:1px solid var(--border-soft)}.block-sep--tight{margin-top:56px;padding-top:48px;border-top:1px solid var(--border-soft)}.h3--wide{font-size:clamp(22px,3vw,28px);letter-spacing:-.025em;max-width:22ch}.h2--wide{max-width:26ch}.lead--doc{font-size:18px}.lead--doc-narrow{font-size:18px;max-width:56ch}.lead--chart{max-width:58ch;margin-top:14px;font-size:16px}.lead--chart-wide{max-width:62ch;margin-top:14px;font-size:16px}.lead--hint{margin-top:36px;font-size:15px}.mt-6{margin-top:6px}.mt-14{margin-top:14px}.mt-22{margin-top:22px}.mt-44{margin-top:44px}.mt-52{margin-top:52px}.mb-8{margin-bottom:8px}.mb-14{margin-bottom:14px}.mb-20{margin-bottom:20px}.doc-wrap{max-width:var(--measure-doc);padding-top:56px;padding-bottom:96px}.doc-wrap--error{max-width:var(--measure-doc);padding-top:96px;padding-bottom:120px}.page-wrap{padding-top:56px;padding-bottom:96px}.linkrow{display:flex;flex-wrap:wrap;gap:22px;font-size:14px}.linkrow--large{display:flex;flex-wrap:wrap;gap:22px;margin-top:12px;font-size:15px}.link-strong{font-size:14px;font-weight:500}.bar__fill{width:var(--bar-width, 0%)}.rule--first{margin-top:56px}.h3--doc{font-size:clamp(22px,3vw,26px);margin-bottom:16px}.bar-w-34{width:3.4%}.bar-w-1000{width:100%}

/*!mobile-layer*/
/* Мобильный слой. Полная версия с обоснованием каждого правила —
   scripts/mobile-layer.css в репозитории проекта. */
.info-cards    { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)) }
.platforms     { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)) }
.hairline-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)) }
.band__cols    { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)) }
.site-footer nav { grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)) }

.def__value, .doc-body, .info-card p, .table__row > div, .compare__row > div { overflow-wrap: anywhere }

@media (max-width: 760px) {
  .site-header__inner { padding: 9px var(--gutter); gap: 9px 16px }
  .site-nav { gap: 20px }
}

@media (max-width: 420px) {
  .site-header__inner { padding: 7px var(--gutter); gap: 7px 12px }
  .header-actions { gap: 10px }
  .header-actions .btn--small { padding: 7px 11px }
  .site-nav { gap: 16px }
}

:root { --header-h: 60px }
@media (max-width: 760px) { :root { --header-h: 92px } }
[id] { scroll-margin-top: calc(var(--header-h) + 12px) }

@media (max-width: 760px), (pointer: coarse) {

  .lang-switch { overflow: visible }
  .lang-switch > :first-child { border-radius: 4px 0 0 4px }
  .lang-switch > :last-child  { border-radius: 0 4px 4px 0 }

  .lang-switch a { position: relative }
  .lang-switch a::after { content: ""; position: absolute; inset: -12px 0 -3px }

  .header-actions .btn { position: relative }

  .header-actions .btn::after { content: ""; position: absolute; inset: -9px 0 0 }

  .wordmark { position: relative }
  .wordmark::after { content: ""; position: absolute; inset: -12px 0 -3px }

  .site-nav a { padding: 6px 0 }

  .site-footer__group { gap: 2px }
  .site-footer__group a { min-height: 44px; display: inline-flex; align-items: center }

  #consent .btn { min-height: 44px; display: inline-flex; align-items: center; padding: 8px 20px }

  .platform__links .btn { padding: 11px 14px }

  .linkrow a, .linkrow--large a { min-height: 40px; display: inline-flex; align-items: center }
}

@media (max-width: 760px), (max-height: 520px) and (pointer: coarse) {
  .lang-switch          { font-size: 12px }
  .step__number         { font-size: 12px }
  .band__tech           { font-size: 12px }
  .site-footer__inner   { font-size: 13px }
  .eyebrow,
  .hero__eyebrow,
  .hero__platforms,
  .platform__req,
  .meta-line,
  .stats__label         { font-size: 13px }
  .code                 { font-size: 13px }
}

@media (max-width: 760px), (max-height: 520px) and (pointer: coarse) {
  .section            { padding-top: 56px }
  .hero               { padding-top: 32px }
  .band               { margin-top: 64px }
  .band__inner        { padding-top: 56px; padding-bottom: 56px }
  .band__cols         { gap: 32px; margin-top: 36px }
  .closing            { padding-top: 56px; padding-bottom: 64px }
  .site-footer        { margin-top: 64px }
  .site-footer__inner { padding-top: 32px; padding-bottom: 28px }
  .feature-row        { margin-top: 40px; padding-top: 36px }
  .rule               { margin-top: 36px; padding-top: 28px }
  .rule--first        { margin-top: 40px }
  .block-sep          { margin-top: 44px; padding-top: 36px }
  .block-sep--tight   { margin-top: 40px; padding-top: 32px }
  .doc-wrap           { padding-top: 36px; padding-bottom: 64px }
  .doc-wrap--error    { padding-top: 56px; padding-bottom: 72px }
  .page-wrap          { padding-top: 36px; padding-bottom: 64px }
  .platforms          { margin-top: 32px; gap: 16px }
  .platform           { padding: 24px 22px }
  .info-card          { padding: 24px 22px }
  .defs               { margin-top: 32px }
  .table, .memtable   { margin-top: 32px }

  .stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px;
           background: var(--border-soft); overflow: hidden }
  .stats__cell { border-right: none; background: var(--surface) }
  .hairline-grid--steps { margin-top: 32px }
  .meta-line          { margin-top: 32px; padding-top: 20px }
}

@media (max-width: 420px) {
  .section     { padding-top: 44px }
  .band        { margin-top: 52px }
  .band__inner { padding-top: 44px; padding-bottom: 44px }
  .closing     { padding-top: 44px; padding-bottom: 52px }
  .site-footer { margin-top: 52px }
}

@media (max-width: 620px) {
  .memtable__row { grid-template-columns: minmax(0, 1fr) auto auto }
  .memtable__row > div { padding: 13px 12px }
  .memtable__row > div:not(:first-child) { min-width: 0; padding-left: 14px }
}

@media (max-width: 359px) {
  html[lang="ru"] .site-nav {
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent);
    mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent);
    scroll-snap-type: x proximity;
  }
  html[lang="ru"] .site-nav a { scroll-snap-align: start }
}

@media (max-width: 900px) {

  .compare__grid { min-width: 0 }

  .compare__row  { grid-template-columns: minmax(112px, 1.3fr) repeat(3, minmax(128px, 1fr)) }
}

@media (max-width: 760px) {
  .compare__row--head > div { padding: 14px 14px }
  .compare__row > div       { padding: 13px 14px }

  .table__grid { min-width: 0 }
  .table__row  { grid-template-columns: minmax(104px, 1fr) minmax(150px, 1.4fr) minmax(84px, .7fr) }
  .table__row--head > div { padding: 13px 14px }
  .table__row > div       { padding: 14px 14px }
}

@media (max-width: 559px) {

  .compare__row > div                { order: 3 }
  .compare__row > div:first-child    { order: 1 }
  .compare__row > div.compare__ours  { order: 2 }

  .compare__row > div:first-child { position: sticky; left: 0; z-index: 1; background: inherit }
}

.compare__row > div, .table__row > div, .memtable__row > div { min-width: 0 }

@media (max-width: 559px) {
  .compare__scroll {
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 24px), transparent);
    mask-image: linear-gradient(to right, #000 calc(100% - 24px), transparent);
  }
}

@media (max-width: 377px) {
  .table__scroll {
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 24px), transparent);
    mask-image: linear-gradient(to right, #000 calc(100% - 24px), transparent);
  }
}

@media (max-width: 760px) {
  .code { overflow-wrap: anywhere; padding: 13px 14px }
}

#consent { bottom: max(var(--gutter), env(safe-area-inset-bottom, 0px)) }

@media (max-height: 700px), (max-width: 380px) {
  #consent { left: 10px; right: 10px; bottom: max(10px, env(safe-area-inset-bottom, 0px));
             padding: 13px 15px; font-size: 13px; line-height: 1.45 }
  #consent p { margin: 0 0 10px }
}

@media (max-height: 460px) and (pointer: coarse) {
  #consent { padding: 10px 14px; font-size: 12.5px }
  #consent p { margin: 0 0 8px }
  #consent .btn { min-height: 40px; padding: 6px 16px }
}


/*!shots-layer*/
/* Слой снимков: выравнивание карусели и её органы листания под палец.
   Полная версия — scripts/shots-layer.css в репозитории проекта. */
.feature-row__media > .carousel {
  margin-top: 0;
}

.carousel[data-carousel-inert] .carousel__controls,
.carousel[data-carousel-inert] .carousel__caption {
  display: none;
}

.carousel__caption {
  margin-bottom: 0;
}

.carousel__btn[aria-disabled="true"] {
  opacity: 0.35;
  cursor: default;
}

@media (max-width: 760px), (pointer: coarse) {
  .carousel__btn {
    width: 44px;
    height: 44px;
    font-size: 17px;
  }
  .carousel__controls {
    gap: 18px;
    margin-top: 14px;
  }

  .carousel__dot,
  .carousel__dot[aria-current="true"] {
    box-sizing: content-box;
    width: 8px;
    height: 8px;
    padding: 13px 8px;
    background-clip: content-box;
  }

  .carousel__dots {
    gap: 8px;
  }

  .carousel__dot:focus-visible {
    border-radius: 12px;
  }
}

@media (max-width: 760px) {
  .carousel__caption {
    font-size: 13px;
    margin-top: 10px;
  }
}
