*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --paper:#EBE8E1;
  --ink:#0E0E0D;
  --ink2:#5E5B55;
  --rule:rgba(14,14,13,.16);
  --night:#0C0C0B;
  --night2:#8D8A82;
  --nrule:rgba(235,232,225,.14);
  --red:#E54224;
  --red-ink:#B82F18; /* мелкий красный текст на светлом фоне: контраст 4.96:1 */
  --g:clamp(16px,2vw,32px);
  --sans:"Onest",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --ease:cubic-bezier(.7,0,.2,1);
  --out:cubic-bezier(.16,.8,.12,1);
}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden}
@supports (overflow:clip){body{overflow-x:clip}}
a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
ol,ul{list-style:none}
button{font:inherit;color:inherit;background:none;border:0;border-radius:0;cursor:pointer;letter-spacing:inherit;text-transform:inherit;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent}
.skip{position:fixed;left:var(--g);top:-80px;z-index:100;padding:10px 14px;background:var(--red);color:var(--ink);font-family:var(--mono);font-size:12px}
.skip:focus{top:10px}
.sec--flush{padding-top:0}
[data-d="1"]{--d:.08s}[data-d="2"]{--d:.16s}[data-d="3"]{--d:.24s}[data-d="4"]{--d:.32s}[data-d="6"]{--d:.48s}
::selection{background:var(--red);color:var(--ink)}
.wrap{padding-inline:var(--g)}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g)}
.mono{font-family:var(--mono);font-size:11px;font-weight:400;letter-spacing:.04em;text-transform:uppercase;line-height:1.55}
.red{color:var(--red)}
.dark{background:var(--night);color:var(--paper)}
.muted,.dim{color:var(--ink2)}
.dark .muted,.dark .dim{color:var(--night2)}
:focus-visible{outline:1px solid var(--red);outline-offset:4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ——— scramble chars ——— */
.w{white-space:nowrap}
.scr-lock .c{display:inline-block;text-align:center}
.c.is-pre{opacity:0}
.c.is-scr{color:var(--red)}
.c.is-cell{background:var(--red);color:var(--ink)}

/* ——— header ——— */
.bar{position:fixed;inset:0 0 auto;z-index:50;padding-block:11px;color:var(--ink);background:var(--paper);box-shadow:0 1px 0 var(--rule);transition:color .5s var(--out),background-color .5s var(--out),box-shadow .5s var(--out)}
.bar.on-dark{color:var(--paper);background:var(--night);box-shadow:0 1px 0 var(--nrule)}
.bar.at-top{box-shadow:none}
.bar .grid{align-items:center}
.brand{grid-column:1/7;display:flex;align-items:center;gap:14px;min-width:0}
.logo{font-weight:600;font-size:20px;letter-spacing:.01em;line-height:1;flex:none}
.brand__sep{width:1px;height:14px;background:currentColor;opacity:.28;flex:none}
.bar__tag{opacity:.62;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar__nav{grid-column:7/10;display:flex;gap:22px}
.bar__right{grid-column:10/13;display:flex;justify-content:flex-end;align-items:center;gap:20px}
.lang{display:flex;align-items:center;gap:6px}
.lang a{opacity:.62;transition:opacity .3s;padding:4px 0}
.lang a:hover,.lang a[aria-current]{opacity:1}
.lang span{opacity:.3}
.ul{position:relative;display:inline-block}
.ul::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .6s var(--ease)}
.ul:hover::after,.ul:focus-visible::after{transform:scaleX(1);transform-origin:left}
.cta{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;gap:12px;padding:12px 15px 11px 17px;background:var(--red);color:var(--ink);font-weight:500;white-space:nowrap;transition:color .5s var(--out)}
.cta::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--ink);transform:scaleX(0);transform-origin:right;transition:transform .7s var(--ease)}
.cta:hover,.cta:focus-visible{color:var(--paper)}
.cta:hover::before,.cta:focus-visible::before{transform:scaleX(1);transform-origin:left}
.on-dark .cta::before{background:var(--paper)}
.on-dark .cta:hover,.on-dark .cta:focus-visible{color:var(--ink)}
.cta i{font-style:normal;display:inline-block;transition:transform .6s var(--ease)}
.cta:hover i{transform:translateX(3px)}

/* ——— hero ——— */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;padding-top:96px;padding-bottom:var(--g);overflow:hidden}
.hero__field{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.hero__main{--hs:clamp(40px,10.6vw,200px);position:relative;z-index:2;margin-top:auto;padding-top:16vh}
.hero__title{font-weight:500;font-size:var(--hs);line-height:.9;letter-spacing:-.052em}
.hero__title .ln{display:block}
.ln--2{padding-left:calc(100%/12*2)}
.ln--3{padding-left:calc(100%/12*5)}
.hero__loc{position:absolute;right:0;top:calc(16vh + var(--hs)*.1);display:grid;justify-items:end;gap:1px;color:var(--night2);text-align:right}
.hero__loc>span{background:var(--night);padding:1px 0 1px 8px}
.hero__loc .clock{color:var(--paper);display:flex;align-items:center;gap:8px;font-variant-numeric:tabular-nums}
.hero__loc .clock::before{content:"";width:6px;height:6px;background:var(--red);animation:blink 2s steps(1) infinite}
@keyframes blink{50%{opacity:.15}}
.hero__foot{position:relative;z-index:2;margin-top:clamp(36px,6vh,72px);padding-top:14px;border-top:1px solid var(--nrule);row-gap:14px}
.hero__who{grid-column:1/5}
.hero__lede{grid-column:7/12;font-size:17px;line-height:1.4;max-width:40ch;color:var(--paper)}
.hero__next{grid-column:12/13;justify-self:end;align-self:start}

/* ——— sections ——— */
.sec{padding-block:clamp(96px,13vw,220px)}
.label{grid-column:1/4}
.sec__head{margin-bottom:clamp(48px,7vw,120px);align-items:end;row-gap:24px}
.sec__head .label{align-self:start}
.h2{grid-column:4/10;font-weight:500;font-size:clamp(32px,4.2vw,72px);line-height:1;letter-spacing:-.04em}
.sec__note{grid-column:10/13;max-width:30ch}

/* intro */
.intro__text{grid-column:4/13;font-weight:400;font-size:clamp(26px,3.5vw,60px);line-height:1.07;letter-spacing:-.03em;text-indent:calc((100% + var(--g))/9*1)}
.stats{margin-top:clamp(72px,10vw,180px);row-gap:40px}
.stat{grid-column:span 3;border-top:1px solid var(--ink);padding-top:14px}
.stat__n{display:block;font-weight:500;font-size:clamp(56px,7.4vw,132px);line-height:.95;letter-spacing:-.06em;margin:clamp(20px,3vw,48px) 0 14px;font-variant-numeric:tabular-nums}
.stat .mono{display:flex;justify-content:space-between;gap:12px}
.stat p{max-width:24ch;color:var(--ink2);font-size:15px}

/* services */
.svc{border-top:1px solid var(--rule)}
.svc:last-child{border-bottom:1px solid var(--rule)}
.svc__link{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);row-gap:18px;padding-block:clamp(22px,2.8vw,44px);align-items:start;transition:opacity .7s var(--out)}
.svc__link::before{content:"";position:absolute;z-index:0;top:-1px;bottom:-1px;left:calc(-1*var(--g));right:calc(-1*var(--g));background:var(--red);transform:scaleX(0);transform-origin:right center;transition:transform 1s var(--ease)}
.svc__link:hover::before,.svc__link:focus-visible::before{transform:scaleX(1);transform-origin:left center}
.svc__link:focus-visible{outline:none}
.svc__link>*{position:relative;z-index:1}
.svc-list:hover .svc__link:not(:hover){opacity:.32}
.svc__num{grid-column:1/2;padding-top:1.2em}
.svc__title{grid-column:2/8;font-weight:500;font-size:clamp(38px,5.7vw,104px);line-height:1;letter-spacing:-.048em}
.svc__body{grid-column:8/12;padding-top:.9em}
.svc__desc{font-size:16px;line-height:1.45;max-width:38ch}
.svc__tags{margin-top:16px;color:var(--ink2);transition:color .6s}
.svc__meta{grid-column:12/13;padding-top:1.2em;text-align:right}
.svc__link:hover .svc__tags{color:var(--ink)}

/* line roll (letter cascade) */
.roll .w{display:inline-block;white-space:nowrap}
.roll .ch{display:inline-block;overflow:hidden;vertical-align:top;line-height:1.12}
.roll .ch>span{display:block;position:relative;transition:transform .85s var(--ease);transition-delay:calc(var(--i)*16ms)}
.roll .ch>span::after{content:attr(data-c);position:absolute;left:0;top:100%}
.svc__link:hover .roll .ch>span,.svc__link:focus-visible .roll .ch>span{transform:translateY(-100%)}

/* method */
.steps{row-gap:56px}
.step{grid-column:span 3;position:relative;padding-top:18px}
.step::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform 1.4s var(--ease) var(--d,0s)}
.step.in::before{transform:scaleX(1)}
.step__n{color:var(--red-ink)}
.rule-row .red{color:var(--red-ink)}
.step h3{font-weight:500;font-size:clamp(24px,2.1vw,34px);letter-spacing:-.03em;line-height:1.05;margin:clamp(40px,6vw,96px) 0 16px}
.step p{color:var(--ink2);max-width:34ch}

/* sectors */
.ind{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);row-gap:12px;align-items:baseline;padding-block:clamp(18px,2.2vw,34px);border-top:1px solid var(--nrule)}
.ind:last-child{border-bottom:1px solid var(--nrule)}
.ind__n{grid-column:1/2;color:var(--night2)}
.ind__t{grid-column:2/9;font-weight:500;font-size:clamp(34px,5.6vw,100px);line-height:1;letter-spacing:-.048em;cursor:default}
.ind__note{grid-column:9/13;color:var(--night2);max-width:36ch}

/* principles */
.rule-row{padding-block:clamp(28px,3.4vw,56px);border-top:1px solid var(--rule);align-items:baseline;row-gap:16px}
.rule-row:last-child{border-bottom:1px solid var(--rule)}
.rule-row .mono{grid-column:1/4}
.rule-row p{grid-column:4/13;font-weight:400;font-size:clamp(26px,3.3vw,56px);line-height:1.08;letter-spacing:-.03em;max-width:22ch}

/* contact */
.contact{padding-top:clamp(96px,13vw,220px)}
.contact__head{align-items:end;row-gap:28px}
.contact__title{grid-column:1/9;font-weight:500;font-size:clamp(64px,13vw,240px);line-height:.84;letter-spacing:-.06em;margin-top:clamp(28px,4vw,64px)}
.contact__lede{grid-column:9/13;font-size:clamp(17px,1.35vw,21px);line-height:1.4;max-width:30ch;padding-bottom:.35em}
.chan{margin-top:clamp(64px,8vw,140px)}
.chan__row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);row-gap:14px;align-items:baseline;padding-block:clamp(20px,2.4vw,36px);border-top:1px solid var(--nrule)}
.chan__row:last-child{border-bottom:1px solid var(--nrule)}
.chan__k{grid-column:1/4;color:var(--night2)}
.chan__v{grid-column:4/10;font-weight:400;font-size:clamp(30px,4.2vw,80px);line-height:1.05;letter-spacing:-.04em;-webkit-user-select:all;user-select:all;cursor:text;font-variant-numeric:tabular-nums}
.chan__v::selection{background:var(--red);color:var(--ink)}
.chan__act{grid-column:10/13;display:flex;justify-content:flex-end;gap:24px}
.chan__act button,.chan__act a{color:var(--night2);transition:color .3s}
.chan__act button:hover,.chan__act a:hover{color:var(--paper)}
.chan__act button.is-done{color:var(--red)}
.chan__note{margin-top:18px;color:var(--night2);padding-left:calc((100% + var(--g))/12*3)}
@media (max-width:900px){.chan__note{padding-left:0}}
.chan__note a{color:var(--paper)}
.next{margin-top:clamp(72px,9vw,150px);row-gap:36px}
.next__k{grid-column:1/4;color:var(--night2)}
.next__i{grid-column:span 3}
.next__i:first-of-type{grid-column:4/7}
.next__n{color:var(--red)}
.next__i h3{font-weight:500;font-size:clamp(20px,1.6vw,26px);letter-spacing:-.025em;line-height:1.1;margin:clamp(18px,2vw,28px) 0 10px}
.next__i p{color:var(--night2);font-size:15px;max-width:30ch}

/* legal footer */
.legal{margin-top:clamp(110px,13vw,220px);padding-top:22px;border-top:1px solid var(--nrule);row-gap:36px;color:var(--night2)}
.legal__col{grid-column:span 4}
.legal__name{font-family:var(--sans);font-size:16px;font-weight:500;color:var(--paper);text-transform:none;letter-spacing:-.01em;margin-bottom:14px}
.legal__k{margin-bottom:14px}
.legal dl{display:grid;grid-template-columns:max-content 1fr;gap:5px 16px}
.legal dd{color:var(--paper);opacity:.8}
.legal li+li{margin-top:5px}
.legal a{transition:color .3s}
.legal a:hover{color:var(--paper)}
.nocase{text-transform:none}
.foot{margin-top:clamp(56px,6vw,96px);padding-block:14px var(--g);border-top:1px solid var(--nrule);color:var(--night2);row-gap:10px}
.foot>:nth-child(1){grid-column:1/7}
.foot>:nth-child(2){grid-column:7/13;justify-self:end}
.foot a:hover{color:var(--paper)}

/* reveal */
.js [data-rise]{opacity:0;transform:translateY(26px);transition:opacity 1.1s var(--out),transform 1.3s var(--out);transition-delay:var(--d,0s)}
.js [data-rise].in{opacity:1;transform:none}

/* ——— responsive ——— */
@media (max-width:1200px){
  .bar__nav{display:none}
  .brand{grid-column:1/8}
  .bar__right{grid-column:8/13}
}
@media (max-width:1000px){
  .chan__v{grid-column:4/13}
  .chan__act{grid-column:4/13;justify-content:flex-start}
  .legal__col{grid-column:span 6}
  .legal__col:last-child{grid-column:1/13}
}
@media (max-width:900px){
  .ln--2{padding-left:calc(100%/12*1)}
  .ln--3{padding-left:calc(100%/12*3)}
  .hero__who{grid-column:1/7}
  .hero__lede{grid-column:1/13;grid-row:2}
  .hero__next{grid-column:7/13}
  .label,.h2,.sec__note,.intro__text{grid-column:1/13}
  .intro__text{text-indent:0}
  .stat{grid-column:span 6}
  .svc__num{grid-column:1/7;padding-top:0}
  .svc__meta{grid-column:7/13;grid-row:1;padding-top:0}
  .svc__title{grid-column:1/13}
  .svc__body{grid-column:1/13;padding-top:0}
  .svc-list:hover .svc__link:not(:hover){opacity:1}
  .step{grid-column:span 6}
  .ind__n{display:none}
  .ind__t,.ind__note{grid-column:1/13}
  .rule-row .mono,.rule-row p{grid-column:1/13}
  .contact__title,.contact__lede{grid-column:1/13}
  .chan__k,.chan__v,.chan__act{grid-column:1/13}
  .next__k,.next__i,.next__i:first-of-type{grid-column:1/13}
  .next__i{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);border-top:1px solid var(--nrule);padding-top:14px}
  .next__n{grid-column:1/3}
  .next__i h3,.next__i p{grid-column:3/13}
  .next__i h3{margin:0 0 8px}
}
@media (max-width:700px){
  .brand__sep,.bar__tag{display:none}
  .brand{grid-column:1/5}
  .bar__right{grid-column:5/13;gap:16px}
  .cta{padding:11px 12px 10px 14px;gap:8px}
  .legal__col,.legal__col:last-child{grid-column:1/13}
  .foot>:nth-child(1),.foot>:nth-child(2){grid-column:1/13;justify-self:start}
}
@media (max-width:560px){
  .stat,.step{grid-column:1/13}
  .ln--3{padding-left:calc(100%/12*2)}
  .hero__main{--hs:12vw}
  .hero__loc{top:calc(16vh - 76px)}
  .chan__v{font-size:clamp(26px,8.4vw,44px)}
}
@media (max-width:420px){
  .h2{font-size:clamp(26px,8vw,32px)}
  .svc__title{font-size:clamp(30px,10vw,40px)}
  .ind__t{font-size:clamp(30px,9.6vw,40px)}
  .intro__text,.rule-row p{font-size:clamp(22px,7vw,26px)}
  .contact__title{font-size:clamp(56px,19vw,80px)}
}
@media (min-width:1800px){
  .mono{font-size:12px}
  .hero__lede,.contact__lede{font-size:19px}
  .svc__desc,.step p{font-size:17px}
}
/* touch screens: no sticky hover states, short feedback on tap instead */
@media (hover:none){
  .svc__link:hover::before{transform:scaleX(0)}
  .svc__link:active::before{transform:scaleX(1);transform-origin:left center;transition-duration:.35s}
  .svc-list:hover .svc__link:not(:hover){opacity:1}
  .svc__link:hover .roll .ch>span{transform:none}
  .svc__link:hover .svc__tags{color:var(--ink2)}
  .cta:hover::before{transform:scaleX(0)}
  .cta:hover{color:var(--ink)}
  .on-dark .cta:hover{color:var(--ink)}
  .cta:hover i{transform:none}
  .ul:hover::after{transform:scaleX(0)}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js [data-rise]{opacity:1;transform:none}
  .step::before{transform:none}
}
