@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/plex-sans-400.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/plex-sans-600.woff2") format("woff2")}
:root{color-scheme:dark;--bg:#131414;--text:#f1f2f1;--muted:#b2b5b9;--accent:#a6d99b;--line:#343638;font-family:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);font-synthesis:none}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,summary,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer;background:none;border:0}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}p,h1,h2,h3{margin:0}button:disabled{opacity:.35;cursor:default}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;top:12px;left:12px;z-index:20;background:var(--accent);color:#131414;padding:12px;transform:translateY(-180%)}.skip:focus{transform:none}.site{width:min(100%,1440px);margin:auto;padding:42px 64px 24px}.hero{position:relative;min-height:405px;padding:28px 0 35px}.hero-copy{position:relative;z-index:1;width:66%}h1{font-size:clamp(2.5rem,4.4vw,4rem);line-height:1.07;letter-spacing:-.038em;font-weight:600}.intro{max-width:690px;margin-top:24px;color:var(--muted);font-size:clamp(1rem,1.65vw,1.45rem);line-height:1.42}.intro p+p{margin-top:10px}.socials{display:flex;gap:15px;margin-top:26px}.socials a{width:43px;height:43px;display:grid;place-items:center;border-radius:50%;background:#454749;color:#f2f3f1;transition:background .18s,transform .18s}.socials svg{width:25px;height:25px}.socials a:hover{background:#616663;transform:translateY(-2px)}.language{position:absolute;right:0;top:-20px;z-index:5;font-size:14px}.language summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:10px 13px;border:1px solid #454749;border-radius:9px;cursor:pointer;min-height:40px}.language summary::-webkit-details-marker{display:none}.language svg{width:16px;height:16px}.language nav{position:absolute;top:calc(100% + 8px);right:0;padding:6px;width:132px;background:#222424;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 35px #0008}.language nav a{display:block;padding:11px;border-radius:5px}.language nav a:hover,.language nav a[aria-current]{color:var(--accent);background:#303530}.portrait{position:absolute;right:1%;top:8px;width:33%;max-width:400px;pointer-events:none;isolation:isolate}.portrait img{display:block;width:100%;height:auto;filter:brightness(.86);mask-image:linear-gradient(to bottom,#000 0%,#000 55%,#000b 70%,transparent 97%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 55%,#000b 70%,transparent 97%)}.hero-bottom{position:relative;z-index:2;display:flex;align-items:center;gap:44px;margin-top:22px}.availability{display:flex;align-items:center;gap:12px;font-size:16px;line-height:1.4}.availability>span{width:11px;height:11px;flex:none;border-radius:50%;background:var(--accent);box-shadow:0 0 10px #a6d99b20}.actions{display:flex;align-items:center;gap:28px}.primary{display:inline-flex;gap:20px;align-items:center;justify-content:center;border-radius:8px;padding:13px 20px;min-height:46px;font-size:17px;background:var(--accent);color:#142014;transition:background .18s}.primary:hover{background:#b9e9ae}.resume-link{display:flex;gap:12px;align-items:center;color:var(--muted);font-size:16px;padding:12px 0;text-decoration:underline;text-decoration-color:#666;text-underline-offset:7px}.resume-link:hover{color:var(--text)}main{min-width:0;outline:none}.tabs{display:flex;gap:48px;border-bottom:1px solid #515457}.tab{font-size:17px;line-height:1.3;padding:0 0 22px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;min-height:44px;display:flex;align-items:center}.tab:hover{color:var(--text)}.tab[aria-current]{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.panel{padding:0}.service-row{min-height:78px;padding:20px 0;display:grid;grid-template-columns:50px 1fr 24px;gap:20px;align-items:center;border-bottom:1px solid var(--line);font-size:18px;line-height:1.4;transition:color .18s,background .18s}.service-row:hover{color:var(--accent);background:#ffffff02}.number{font-size:14px;color:#92979c}.arrow{color:var(--muted);font-size:27px;font-weight:400;transition:transform .18s}.service-row:hover .arrow{transform:translateX(4px);color:var(--accent)}.detail-stack{position:relative}.detail{padding:24px 0 15px}.detail-index{color:var(--accent);font-size:13px;letter-spacing:.08em}.detail h3{font-size:23px;font-weight:600;letter-spacing:-.02em;margin:8px 0 12px}.detail p{max-width:960px;font-size:17px;color:#c5c8ca;line-height:1.5}.detail .tags{font-size:14px;color:#9da7a0;margin-top:14px}.pager{display:none;align-items:center;justify-content:flex-end;gap:20px;border-top:1px solid var(--line);padding-top:6px}.pager button{min-width:42px;min-height:38px;color:var(--muted);font-size:20px;border-radius:5px}.page-dots{display:flex;gap:4px}.page-dots button{font-size:13px}.page-dot[aria-pressed=true]{color:var(--accent);background:#a6d99b0d}.pager button:hover{color:var(--accent)}footer{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--line);padding-top:20px;margin-top:30px;color:#a7acb2;font-size:14px;line-height:1.4}footer>div{display:flex;gap:24px}footer a:hover{color:var(--accent)}dialog{color:var(--text);background:#1c1e1e;border:1px solid #414541;border-radius:15px;padding:42px 30px 26px;width:min(490px,calc(100% - 32px));max-height:calc(100dvh - 32px);box-shadow:0 20px 120px #0009}dialog::backdrop{background:#080a09bf;backdrop-filter:blur(8px)}dialog h2{font-size:27px;letter-spacing:-.025em;line-height:1.2;margin-bottom:15px}dialog>p{color:var(--muted);font-size:16px;line-height:1.5;margin-bottom:20px}.close{position:absolute;right:8px;top:5px;width:44px;height:44px;font-size:28px;color:var(--muted)}.dialog-link{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 0;border-top:1px solid var(--line);font-size:18px}.dialog-link:hover{color:var(--accent)}.dialog-link small{display:block;color:var(--muted);font-size:14px;margin-top:6px}.not-found{max-width:800px;margin:15vh auto;padding:32px}.not-found h1{margin:25px 0}
.js .site{height:100svh;min-height:660px;display:grid;grid-template-rows:minmax(330px,1.35fr) minmax(280px,1fr) auto}.js .hero{min-height:0;display:flex;flex-direction:column;justify-content:center;padding-top:18px}.js .hero-bottom{margin-top:24px}.js main{display:flex;flex-direction:column;min-height:0}.js .panels{flex:1;min-height:0;position:relative}.js .panel{height:100%;display:flex;flex-direction:column;justify-content:space-between}.js .panel[hidden],.js .detail[hidden]{display:none}.js .services{height:100%;display:grid;grid-template-rows:repeat(3,1fr)}.js .service-row{min-height:0}.js .pager{display:flex}.js .detail-stack{flex:1;min-height:0}.js footer{margin-top:24px}.js .service-row:last-child{border-bottom:0}
@media(min-width:1600px){.site{max-width:1540px;padding-top:6vh;padding-bottom:4vh}.hero-copy{width:65%}.intro{font-size:24px}.portrait{max-width:440px}.tab{font-size:20px}.service-row{font-size:22px}.detail p{font-size:20px;max-width:1050px}.detail h3{font-size:28px}.availability{font-size:18px}}
@media(max-height:780px) and (min-width:761px){.site{padding-top:28px;padding-bottom:18px}.js .site{min-height:600px;grid-template-rows:minmax(285px,1.35fr) minmax(245px,1fr) auto}.hero{padding-top:10px}.language{top:-7px}h1{font-size:clamp(2.4rem,4vw,3.6rem)}.intro{margin-top:18px;font-size:19px}.socials{margin-top:18px}.portrait{max-width:315px;top:15px}.js .hero-bottom{margin-top:17px}.tab{padding-bottom:17px}.detail{padding-top:15px}.detail h3{font-size:21px;margin-bottom:8px}.detail p{font-size:16px;line-height:1.45}.detail .tags{margin-top:9px}.js footer{margin-top:16px;padding-top:16px}}
@media(max-width:1050px){.site{padding-left:36px;padding-right:36px}.hero-copy{width:70%}.portrait{right:-8px;width:32%;top:45px}.hero-bottom{gap:24px}.tabs{gap:32px}.intro{max-width:540px}.availability{font-size:14px}.actions{gap:20px}.service-row{font-size:17px;grid-template-columns:35px 1fr 24px;gap:14px}}
@media(max-width:760px){.site{padding:24px 24px 18px}.js .site{min-height:640px;grid-template-rows:minmax(300px,1.15fr) minmax(260px,1fr) auto}.hero{padding:40px 0 22px;min-height:330px}.js .hero{padding-top:28px;padding-bottom:26px;justify-content:center}.language{top:-10px}.language summary{min-height:34px;padding:6px 10px;font-size:12px;gap:13px}.hero-copy{width:100%}h1{font-size:clamp(1.9rem,5.6vw,2.8rem);max-width:95%;letter-spacing:-.035em}.intro{font-size:16px;line-height:1.4;max-width:70%;margin-top:17px}.intro p+p{margin-top:9px}.portrait{width:31%;top:86px;right:-10px}.socials{margin-top:18px;gap:12px}.socials a{width:36px;height:36px}.socials svg{width:22px;height:22px}.hero-bottom{display:flex;flex-wrap:wrap;gap:16px}.js .hero-bottom{margin-top:17px}.availability{font-size:14px;gap:9px}.availability>span{width:8px;height:8px}.actions{gap:24px}.primary{font-size:15px;padding:10px 16px;min-height:42px;gap:16px}.resume-link{font-size:14px;padding:10px 0}.tabs{gap:0;justify-content:space-between}.tab{font-size:14px;padding:0 4px 15px;max-width:42%;line-height:1.35}.tab:first-child{padding-left:0;max-width:40%}.service-row{font-size:16px;line-height:1.4;grid-template-columns:23px 1fr 20px;gap:12px;padding:14px 0;min-height:74px}.number{font-size:12px}.arrow{font-size:23px}.detail{padding:18px 0 10px}.detail h3{font-size:21px;margin:6px 0 10px}.detail p{font-size:16px;line-height:1.45}.detail .tags{font-size:12px;line-height:1.4;margin-top:12px}.detail-index{font-size:12px}.pager{padding-top:3px;gap:16px}.pager button{min-height:34px}.js footer{margin-top:16px;padding-top:15px}footer{font-size:12px;gap:10px}footer>div{gap:15px}.js:has(.panel:not(#services):not([hidden])) .site{grid-template-rows:minmax(260px,.95fr) minmax(310px,1.2fr) auto}.js:has(.panel:not(#services):not([hidden])) .intro{font-size:15px}.js:has(.panel:not(#services):not([hidden])) .socials{margin-top:12px}}
@media(max-width:380px){.site{padding-left:18px;padding-right:18px}.js .site{min-height:620px}h1{font-size:28px}.intro{font-size:15px;max-width:73%}.portrait{width:30%;right:-9px}.hero-bottom{gap:12px}.tab{font-size:13px}.service-row{font-size:15px;gap:9px}.detail p{font-size:15px}.detail h3{font-size:20px}.detail .tags{margin-top:8px}.js:has(.panel:not(#services):not([hidden])) .site{grid-template-rows:265px minmax(295px,1fr) auto}.js:has(.panel:not(#services):not([hidden])) .hero{padding-top:20px;padding-bottom:12px}.js:has(.panel:not(#services):not([hidden])) .intro{font-size:14px}.js:has(.panel:not(#services):not([hidden])) .hero-bottom{margin-top:12px}.js:has(.panel:not(#services):not([hidden])) .socials{margin-top:10px}.js footer{margin-top:10px;padding-top:12px}footer{font-size:11px}footer>div{gap:12px}}
@media(max-height:520px) and (min-width:600px){.site{padding:20px 28px 14px}.js .site{min-height:360px;height:100svh;grid-template-columns:1fr 1fr;grid-template-rows:1fr auto;column-gap:32px}.hero-copy{width:100%}.js .hero{padding:24px 0 8px}.portrait{display:none}.language{top:-9px;right:0}h1{font-size:30px;padding-right:50px}.intro{font-size:15px;max-width:100%;margin-top:12px}.socials{margin-top:12px}.socials a{width:30px;height:30px}.hero-bottom{flex-direction:column;align-items:flex-start;gap:8px}.js .hero-bottom{margin-top:10px}.availability{font-size:13px}.primary{min-height:36px;padding:8px 14px;font-size:14px}.actions{gap:20px}.tabs{gap:14px}.tab{font-size:13px;padding-bottom:13px}.service-row{font-size:15px;grid-template-columns:20px 1fr 18px;gap:8px;padding:10px 0}.js main{padding-top:6px}.detail{padding-top:12px}.detail p{font-size:14px;line-height:1.35}.detail h3{font-size:18px;margin:5px 0 8px}.detail .tags{font-size:12px;margin-top:8px}.detail-index{font-size:12px}.pager button{min-height:28px}.pager{padding-top:0}.js footer{grid-column:1/-1;margin-top:8px;padding-top:9px;font-size:12px}.js:has(.panel:not(#services):not([hidden])) .site{grid-template-rows:1fr auto}.js:has(.panel:not(#services):not([hidden])) .intro{font-size:15px}}
@media(max-width:760px) and (min-height:521px){.js:has(.panel:not(#services):not([hidden])) .site{grid-template-rows:210px minmax(295px,1fr) auto;min-height:560px}.js:has(.panel:not(#services):not([hidden])) .hero{padding-top:32px;padding-bottom:20px;justify-content:center}.js:has(.panel:not(#services):not([hidden])) .intro,.js:has(.panel:not(#services):not([hidden])) .socials{display:none}.js:has(.panel:not(#services):not([hidden])) .hero-copy{width:78%}.js:has(.panel:not(#services):not([hidden])) h1{font-size:28px}.js:has(.panel:not(#services):not([hidden])) .portrait{width:27%;top:34px;right:-10px}.js:has(.panel:not(#services):not([hidden])) .hero-bottom{margin-top:20px;gap:14px}.js:has(.panel:not(#services):not([hidden])) .language{top:-10px}}
@media(max-width:380px) and (max-height:620px){.js .site{min-height:560px;grid-template-rows:295px minmax(200px,1fr) auto;padding-top:16px;padding-bottom:12px}.js .hero{padding-top:28px;padding-bottom:12px}.intro{font-size:14px;line-height:1.35;margin-top:12px}.intro p+p{margin-top:7px}.socials{margin-top:12px}.js .hero-bottom{margin-top:12px;gap:10px}.service-row{font-size:14px;padding:10px 0}.tab{padding-bottom:10px}.js:has(.panel:not(#services):not([hidden])) .site{grid-template-rows:180px minmax(300px,1fr) auto}.js:has(.panel:not(#services):not([hidden])) .hero{padding-top:24px}.js:has(.panel:not(#services):not([hidden])) .hero-bottom{gap:10px;margin-top:14px}.detail{padding-top:12px}.detail p{font-size:15px}}
@media(max-width:380px) and (min-height:521px){.js:has(.panel:not(#services):not([hidden])) .site{grid-template-rows:180px minmax(285px,1fr) auto}.js:has(.panel:not(#services):not([hidden])) .hero-copy{width:82%}.js:has(.panel:not(#services):not([hidden])) h1{font-size:25px}.js:has(.panel:not(#services):not([hidden])) .hero{padding-top:22px;padding-bottom:10px}.js:has(.panel:not(#services):not([hidden])) .hero-bottom{margin-top:12px;gap:10px}.detail .tags{font-size:12px}.detail p{font-size:15px;line-height:1.4}}
.socials a[aria-label="WhatsApp"] svg{fill:currentColor;stroke:none;width:23px;height:23px}
@media(max-width:760px){.portrait{display:none}.intro{max-width:100%}.js:has(.panel:not(#services):not([hidden])) .hero-copy{width:100%}.socials a[aria-label="WhatsApp"] svg{width:21px;height:21px}}
.js.needs-space .site{height:auto;min-height:100svh;grid-template-rows:auto auto auto}.js.needs-space .hero{min-height:250px}.js.needs-space .detail-stack{min-height:max-content}.js.needs-space .panel{height:auto}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}@media print{.site,.js .site{height:auto;display:block;min-height:0}.hero{min-height:0}.language,.socials,.actions,.pager,dialog{display:none!important}.js .panel[hidden],.js .detail[hidden]{display:block!important}.js .panel{height:auto}body,:root{background:white;color:black}.intro,.detail p,.detail .tags{color:#333}.portrait{display:none}.tabs{margin-top:30px}.detail{break-inside:avoid}}

/* ── Правки ревизии ───────────────────────────────────────────────────────
   Идут в конце файла намеренно: переопределяют более ранние правила. */

/* Портрет на телефоне скрыт по решению заказчика: на узком экране он съедал
   место, которого не хватало строке фактов и панели вкладок. Лицо остаётся
   на десктопе, где для него есть воздух. */
@media(max-width:760px){
  .portrait{display:none}
  .hero-copy{width:100%}
  .intro{max-width:100%}
}

/* Все три карточки сразу, когда экран это позволяет. Пролистывать по одной
   при половине пустого экрана — терять и время читателя, и аргументы. */
@media(min-width:1152px) and (min-height:720px){
  .js .detail[hidden]{display:block}
  .detail-stack{
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
    gap:0 40px;align-items:start;
  }
  .detail{padding-top:20px}
  .js .pager{display:none}
}

/* Строка фактов на первом экране: 17 лет и 1000+ устройств лежали внутри
   вкладки «Опыт», то есть главные аргументы видел только тот, кто до них
   дощёлкал. */
.facts{
  display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:20px;
  font-size:15px;color:var(--muted);
}
.facts b{color:var(--text);font-weight:600}
@media(max-width:760px){.facts{gap:6px 18px;font-size:13px;margin-top:16px}}
@media(max-width:430px){
  .facts{gap:12px;font-size:11px;margin-top:2px;flex-wrap:nowrap}
  .socials{margin-top:10px}
  .facts span:last-child{display:none}
}
@media(max-height:520px) and (min-width:600px){.facts{display:none}}
