/* KRASNOBRIZHYI.COM — site styles
   Palette: ink #000, paper #fff, sand #f2f1ec, yellow #f0d747, rule #d8d5ca, muted #5f5d56, night #070b12 */

@font-face{font-family:"Inter";src:url("../fonts/inter-400.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/inter-600.woff") format("woff");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Inter Display";src:url("../fonts/inter-display-600.woff") format("woff");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Inter Display";src:url("../fonts/inter-display-700.woff") format("woff");font-weight:700;font-style:normal;font-display:swap}

:root{
  --ink:#000;--paper:#fff;--sand:#f2f1ec;--yellow:#f0d747;--rule:#d8d5ca;--muted:#5f5d56;--night:#070b12;
  --text:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --display:"Inter Display","Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --wrap:1240px;--gut:clamp(20px,4vw,48px);--head-h:72px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--head-h) + 16px)}
body{margin:0;font:400 1.0625rem/1.6 var(--text);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,picture{display:block;max-width:100%}
img{height:auto}
h1,h2,h3{font-family:var(--display);margin:0;text-wrap:balance}
h1{font-weight:700;font-size:clamp(2.35rem,5.6vw,4.5rem);line-height:1.02;letter-spacing:-.035em}
h2{font-weight:700;font-size:clamp(1.6rem,2.7vw,2.3rem);line-height:1.1;letter-spacing:-.025em}
h3{font-weight:600;font-size:1.2rem;line-height:1.3;letter-spacing:-.01em}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
a{color:inherit;text-decoration-color:var(--yellow);text-decoration-thickness:.14em;text-underline-offset:.2em}
a:hover{text-decoration-color:var(--ink)}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:2px}
.site-footer :focus-visible,.about-band :focus-visible{outline-color:var(--yellow)}
ul,ol{margin:0;padding:0}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}
.skip{position:absolute;left:-9999px;top:8px;background:var(--ink);color:#fff;padding:.6em 1em;z-index:100}
.skip:focus{left:8px}

/* ---------- buttons */
.btn{display:inline-block;font:600 1rem/1.2 var(--text);padding:.95em 1.5em;border:2px solid var(--ink);background:var(--yellow);color:var(--ink);text-decoration:none;border-radius:0;transition:background .15s,color .15s}
.btn:hover{background:var(--ink);color:#fff}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:#fff;color:var(--ink)}
.btn-line{background:transparent}
.btn-sm{padding:.62em 1em;font-size:.9rem}

/* ---------- header and menu */
.site-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--ink)}
.bar{display:flex;align-items:center;gap:24px;min-height:var(--head-h)}
.brand{display:flex;align-items:center;gap:12px;font:600 1rem/1 var(--display);letter-spacing:.04em;text-decoration:none;white-space:nowrap}
.mark{width:34px;height:34px;flex:none}
.nav{display:flex;align-items:center;gap:28px;margin-left:auto}
.menu{display:flex;gap:4px;list-style:none}
.menu>li{position:relative}
.menu button{display:flex;align-items:center;gap:8px;font:600 .95rem/1 var(--text);color:var(--ink);background:none;border:0;padding:14px 14px;cursor:pointer}
.menu button svg{width:10px;height:6px;transition:transform .15s}
.menu .is-current>button{box-shadow:inset 0 -3px 0 var(--yellow)}
.sub{list-style:none;position:absolute;left:0;top:100%;min-width:290px;background:#fff;border:1px solid var(--ink);border-top:3px solid var(--yellow);padding:8px 0;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .15s,transform .15s,visibility .15s}
.sub a{display:block;padding:10px 18px;font-size:.95rem;line-height:1.35;text-decoration:none}
.sub a:hover{background:var(--sand)}
.sub a[aria-current]{font-weight:600;box-shadow:inset 3px 0 0 var(--yellow)}
.has-sub.open>.sub,.no-js .has-sub:focus-within>.sub{opacity:1;visibility:visible;transform:none}
.has-sub.open>button svg{transform:rotate(180deg)}
@media (hover:hover) and (min-width:1081px){
  .has-sub:hover>.sub{opacity:1;visibility:visible;transform:none}
  .has-sub:hover>button svg{transform:rotate(180deg)}
}
.nav-tools{display:flex;align-items:center;gap:16px}
.tg{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ink);color:#fff}
.tg svg{width:17px;height:17px;fill:currentColor}
.tg:hover{background:var(--yellow);color:var(--ink)}
.lang{display:flex;gap:10px;font:600 .85rem/1 var(--text);letter-spacing:.04em}
.lang [aria-current]{box-shadow:0 3px 0 var(--yellow)}
.lang a{text-decoration:none;color:var(--muted)}
.lang a:hover{color:var(--ink)}
.nav-toggle{display:none;margin-left:auto;font:600 .95rem/1 var(--text);background:none;border:2px solid var(--ink);padding:10px 14px;cursor:pointer;color:var(--ink)}
@media (max-width:1080px){
  .js .nav-toggle{display:block}
  .js .nav{display:none}
  .js .nav.open{display:block;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--ink);padding:8px var(--gut) 24px;max-height:calc(100vh - var(--head-h));overflow:auto}
  .no-js .bar{flex-wrap:wrap;padding-block:12px}
  .no-js .nav{flex-wrap:wrap;margin-left:0}
  .menu{flex-direction:column;gap:0}
  .menu>li{border-bottom:1px solid var(--rule)}
  .menu button{width:100%;justify-content:space-between;padding:16px 0;font-size:1.05rem}
  .sub{position:static;display:none;border:0;border-left:3px solid var(--yellow);opacity:1;visibility:visible;transform:none;min-width:0;padding:0 0 12px;transition:none}
  .has-sub.open>.sub,.no-js .sub{display:block}
  .nav-tools{padding-top:20px;flex-wrap:wrap}
}

/* ---------- home hero */
.hero{background:var(--sand);border-bottom:1px solid var(--ink)}
.hero-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(24px,4vw,64px);align-items:center;padding-block:clamp(48px,7vw,104px)}
.hero h1{max-width:13ch}
.hero .lead{font-size:clamp(1.15rem,1.6vw,1.4rem);line-height:1.45;max-width:34ch;margin:28px 0 36px}
.hero-act{display:flex;flex-wrap:wrap;gap:14px}
.hero-for{margin-top:28px;font-size:.95rem;color:var(--muted);max-width:44ch}
.converge{width:100%;height:auto;overflow:visible}
.cv-band{fill:var(--yellow)}
.cv-dots circle{fill:#000}
.cv-node{fill:var(--yellow);stroke:#000;stroke-width:3}
.cv-end{fill:#000}
.cv-teams path{opacity:.6}
.cv-l{font:400 18px var(--text);fill:var(--muted)}
.cv-b{font-weight:600;fill:#000}
@media (prefers-reduced-motion:no-preference){
  .cv-teams path,.cv-one{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.1s cubic-bezier(.6,0,.2,1) forwards}
  .cv-teams path:nth-child(2){animation-delay:.12s}
  .cv-teams path:nth-child(3){animation-delay:.24s}
  .cv-teams path:nth-child(4){animation-delay:.36s}
  .cv-one{animation-delay:1.5s;animation-duration:.9s}
  .cv-node{transform-box:fill-box;transform-origin:center;transform:scale(0);animation:pop .35s 1.25s cubic-bezier(.3,1.6,.5,1) forwards}
  .cv-band,.cv-end{opacity:0;animation:fade .6s 2s forwards}
  @keyframes draw{to{stroke-dashoffset:0}}
  @keyframes pop{to{transform:scale(1)}}
  @keyframes fade{to{opacity:1}}
}
@media (max-width:860px){
  .hero-grid{grid-template-columns:1fr}
  .converge{max-width:520px}
}

/* ---------- facts */
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;border-bottom:1px solid var(--ink)}
.facts>div{padding:28px var(--gut) 30px 0;border-left:1px solid var(--rule);padding-left:24px}
.facts>div:first-child{border-left:0;padding-left:0}
.facts dt{font:700 clamp(1.5rem,2.4vw,2.1rem)/1.1 var(--display);letter-spacing:-.025em}
.facts dd{margin:8px 0 0;color:var(--muted);font-size:.95rem;line-height:1.45}
@media (max-width:860px){
  .facts{grid-template-columns:1fr 1fr}
  .facts>div{padding:20px 16px 22px 0;border-left:0;padding-left:0;border-top:1px solid var(--rule)}
  .facts>div:nth-child(-n+2){border-top:0}
}
@media (max-width:480px){.facts{grid-template-columns:1fr}.facts>div:nth-child(2){border-top:1px solid var(--rule)}}

/* ---------- inner page head */
.page-head{background:var(--sand);border-bottom:1px solid var(--ink);padding-block:clamp(28px,4vw,48px) clamp(40px,6vw,72px)}
.crumbs{display:flex;flex-wrap:wrap;gap:6px 0;list-style:none;font-size:.9rem;color:var(--muted);margin-bottom:clamp(28px,4vw,48px)}
.crumbs li+li::before{content:"/";margin:0 10px;color:var(--rule)}
.crumbs a{text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.page-head h1{max-width:18ch;font-size:clamp(2.2rem,5vw,4rem)}
.page-head .lead{font-size:clamp(1.15rem,1.6vw,1.4rem);line-height:1.45;max-width:46ch;margin:24px 0 0}
.phase-nav{margin-top:clamp(32px,5vw,56px)}

/* ---------- report rows */
.row{padding-block:clamp(48px,7vw,96px)}
.row+.row{border-top:1px solid var(--ink)}
.row-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(24px,4vw,72px)}
.row-h{max-width:16ch}
.row-b{max-width:74ch}
.row-b>*+*{margin-top:1.1em}
.row-b>h3{margin-top:2em}
.row-b>h3+*{margin-top:.5em}
.row-b ul,.row-b ol.num{padding-left:1.2em}
.row-b li+li{margin-top:.5em}
.row-b li::marker{color:var(--muted)}
.row.sand{background:var(--sand)}
.wide-head{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(24px,4vw,72px);margin-bottom:clamp(28px,4vw,48px);align-items:end}
.wide-head .row-h{max-width:18ch}
.wide-intro{max-width:60ch;color:var(--muted);margin:0}
@media (max-width:860px){
  .row-grid,.wide-head{grid-template-columns:1fr;gap:20px}
  .row-h{max-width:none}
}
.note{color:var(--muted);font-size:.95rem}
.more a{font-weight:600}

/* ---------- columns with a top rule */
.cols{display:grid;gap:32px clamp(20px,3vw,40px)}
.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.col{border-top:3px solid var(--ink);padding-top:18px}
.col h3{margin-bottom:10px}
.col p{color:#222;font-size:1rem;line-height:1.55}
.col .more{margin-top:14px}
@media (max-width:980px){.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.cols-3{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.cols-4,.cols-3,.cols-2{grid-template-columns:1fr}}

/* ---------- four phases */
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;counter-reset:none;border-top:3px solid var(--ink)}
.steps>li{padding:22px 24px 4px 0;border-left:1px solid var(--rule);padding-left:22px}
.steps>li:first-child{border-left:0;padding-left:0}
.steps a{display:block;text-decoration:none}
.step-n{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:2px solid var(--ink);font:700 1.15rem/1 var(--display);margin-bottom:18px;background:#fff}
.step-t{display:block;font:700 1.45rem/1.15 var(--display);letter-spacing:-.02em}
.step-s{display:block;color:var(--muted);font-size:.95rem;margin-top:4px}
.steps p{margin-top:14px;font-size:1rem;line-height:1.55}
.steps a:hover .step-n,.steps [aria-current] .step-n{background:var(--yellow)}
.steps a:hover .step-t{text-decoration:underline;text-decoration-color:var(--yellow);text-decoration-thickness:.14em;text-underline-offset:.18em}
.phase-nav .steps>li{padding-bottom:0}
.phase-nav .step-t{font-size:1.15rem}
.phase-nav .step-n{width:36px;height:36px;font-size:1rem;margin-bottom:12px}
.phase-nav [aria-current] .step-t{box-shadow:0 4px 0 var(--yellow)}
.page-head .step-n{background:var(--sand)}
.page-head [aria-current] .step-n,.page-head a:hover .step-n{background:var(--yellow)}
@media (max-width:860px){
  .steps{grid-template-columns:1fr 1fr;gap:0}
  .steps>li{border-left:0;padding:20px 16px 20px 0;border-top:1px solid var(--rule)}
  .steps>li:nth-child(-n+2){border-top:0}
  .phase-nav .step-s{display:none}
}
@media (max-width:480px){.steps:not(.phase-nav .steps){grid-template-columns:1fr}.steps:not(.phase-nav .steps)>li:nth-child(2){border-top:1px solid var(--rule)}}

/* ---------- tables */
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.t{border-collapse:collapse;width:100%;font-size:1rem;line-height:1.45;border-top:3px solid var(--ink)}
.t caption{caption-side:bottom;text-align:left;color:var(--muted);font-size:.9rem;padding-top:12px}
.t th,.t td{text-align:left;vertical-align:top;padding:16px 20px 16px 0;border-bottom:1px solid var(--rule)}
.t thead th{font:600 .95rem/1.3 var(--text);color:var(--muted);border-bottom:1px solid var(--ink);white-space:nowrap}
.t tbody th{font:600 1rem/1.4 var(--text);min-width:11em}
.t tr.hl th,.t tr.hl td{background:var(--yellow);border-bottom-color:var(--ink)}
.t tr.hl th{padding-left:14px}
.t tr.total th,.t tr.total td{font-weight:600;border-bottom:3px solid var(--ink)}
.t .num,.t td.num{white-space:nowrap;font-variant-numeric:tabular-nums}
.matrix{min-width:860px}
.matrix thead th{font:700 1.1rem/1.2 var(--display);color:var(--ink);letter-spacing:-.01em}
.matrix thead th span{display:inline-grid;place-items:center;width:28px;height:28px;border:2px solid var(--ink);border-radius:50%;font-size:.85rem;margin-right:8px}
.fromto td:first-of-type{color:var(--muted)}
@media (max-width:700px){
  .t:not(.matrix) thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .t:not(.matrix),.t:not(.matrix) tbody,.t:not(.matrix) tr,.t:not(.matrix) th,.t:not(.matrix) td{display:block}
  .t:not(.matrix) tr{padding:16px 0;border-bottom:1px solid var(--rule)}
  .t:not(.matrix) tbody th,.t:not(.matrix) td{padding:3px 0;border:0;min-width:0}
  .t:not(.matrix) tbody th{font-size:1.05rem;margin-bottom:4px}
  .t:not(.matrix) td[data-label]:not([data-label=""])::before{content:attr(data-label) ": ";color:var(--muted);font-weight:400}
  .t caption{display:block}
  .matrix-hint{display:block}
}
.matrix-hint{display:none;color:var(--muted);font-size:.9rem;margin:0 0 10px}
.fromto th{font-weight:400;color:var(--muted)}
.fromto td{font-weight:600}

/* ---------- statement, deals, timeline, certificates */
.statement{font:600 clamp(1.4rem,2.5vw,2.05rem)/1.25 var(--display);letter-spacing:-.02em;border-left:8px solid var(--yellow);padding-left:clamp(16px,2.5vw,32px);max-width:28ch;margin:0}
.cols+.statement{margin-top:clamp(36px,5vw,56px)}
.deals{list-style:none;border-top:3px solid var(--ink)}
.row-b ul.deals{padding-left:0}
.deals li{display:grid;grid-template-columns:8.5em 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--rule);margin:0}
.row-b .deals li+li{margin-top:0}
.deals b{font:700 1.2rem/1.3 var(--display);letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap}
.timeline{list-style:none;border-top:3px solid var(--ink)}
.timeline>li{display:grid;grid-template-columns:9em 1fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--rule)}
.row-b .timeline>li+li{margin-top:0}
.tl-y{font:600 1rem/1.4 var(--text);font-variant-numeric:tabular-nums;color:var(--muted)}
.tl-role{font-weight:600;margin:4px 0 0}
.tl-b p+p{margin-top:8px;color:#222}
.certs{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 24px}
.certs figure{margin:0}
.certs img{width:100%;aspect-ratio:7/5;object-fit:contain;background:var(--sand);border:1px solid var(--rule);padding:8px}
.certs figcaption{font-size:.9rem;line-height:1.4;margin-top:10px;color:#222}
@media (max-width:980px){.certs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.timeline>li,.deals li{grid-template-columns:1fr;gap:4px}}

/* ---------- about band with portrait */
.about-band{background:var(--night);color:#fff}
.about-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,80px);align-items:center}
.about-band picture img{width:100%;height:auto}
.about-txt{padding-block:clamp(40px,6vw,88px)}
.about-txt h2{margin-bottom:8px}
.about-role{color:var(--yellow);font-weight:600;margin-bottom:24px}
.about-txt p{max-width:52ch}
.about-txt .btn{margin-top:28px;border-color:var(--yellow)}
.about-txt .btn:hover{background:#fff;color:var(--ink);border-color:#fff}
@media (max-width:860px){.about-grid{grid-template-columns:1fr}.about-band picture{max-width:420px;margin-top:40px}.about-txt{padding-top:0}}
.profile-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(24px,4vw,72px);align-items:start}
.profile-grid picture img{width:100%;height:auto}
@media (max-width:860px){.profile-grid{grid-template-columns:1fr}.profile-grid picture{max-width:420px}}

/* ---------- FAQ */
.faq{border-top:3px solid var(--ink)}
.faq details{border-bottom:1px solid var(--rule)}
.row-b .faq details+details{margin-top:0}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:24px;padding:20px 0;font:600 1.15rem/1.35 var(--display);letter-spacing:-.01em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:400 1.6rem/1 var(--text);flex:none;transition:transform .15s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq-a{padding:0 0 22px;max-width:64ch}

/* ---------- call to action band */
.cta{background:var(--yellow);border-top:1px solid var(--ink)}
.cta-grid{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:32px;align-items:center;padding-block:clamp(48px,7vw,88px)}
.cta h2{font-size:clamp(1.9rem,3.6vw,3rem);max-width:20ch}
.cta p{max-width:48ch;margin-top:16px;font-size:1.1rem}
.cta-act{margin:0;justify-self:end}
@media (max-width:860px){.cta-grid{grid-template-columns:1fr}.cta-act{justify-self:start}}

/* ---------- contacts */
.contact-list{list-style:none;border-top:3px solid var(--ink)}
.row-b ul.contact-list{padding-left:0}
.contact-list li{display:grid;grid-template-columns:8em 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--rule)}
.row-b .contact-list li+li{margin-top:0}
.contact-list span{color:var(--muted)}
.contact-list a{font:600 1.15rem/1.3 var(--display);overflow-wrap:anywhere}
.form{display:grid;gap:18px;max-width:560px}
.form label{display:grid;gap:6px;font-weight:600;font-size:.95rem}
.form input,.form textarea{font:400 1rem/1.4 var(--text);padding:12px 14px;border:2px solid var(--ink);border-radius:0;background:#fff;color:var(--ink);width:100%}
.form textarea{min-height:140px;resize:vertical}
.form .btn{justify-self:start;cursor:pointer}
@media (max-width:480px){.contact-list li{grid-template-columns:1fr;gap:2px}}

/* ---------- footer */
.site-footer{background:#000;color:#fff;padding-top:clamp(48px,6vw,80px);font-size:.95rem}
.foot-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,6fr) minmax(0,3fr);gap:40px clamp(24px,4vw,64px)}
.foot-logo{font:600 1.05rem/1 var(--display);letter-spacing:.04em;margin-bottom:18px}
.foot-brand p{max-width:34ch;color:#cfcdc6}
.foot-brand .foot-logo,.foot-brand .foot-person{color:#fff}
.foot-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px}
.site-footer h2{font:600 .95rem/1.2 var(--text);letter-spacing:0;color:var(--yellow);margin-bottom:14px}
.site-footer ul{list-style:none}
.site-footer li+li{margin-top:9px}
.site-footer a{text-decoration:none;color:#fff}
.site-footer a:hover{text-decoration:underline;text-decoration-color:var(--yellow)}
.foot-contact a{overflow-wrap:anywhere}
.foot-base{position:relative;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:clamp(40px,5vw,64px);padding-block:22px;color:#a9a79f}
.foot-base::before{content:"";position:absolute;left:var(--gut);right:var(--gut);top:0;border-top:1px solid #333}
.foot-base p{margin:0}
@media (max-width:980px){.foot-grid{grid-template-columns:1fr 1fr}.foot-nav{grid-column:1/-1;order:3}}
@media (max-width:620px){.foot-grid{grid-template-columns:1fr}.foot-nav{grid-template-columns:1fr 1fr}}

@media print{.site-header,.cta,.site-footer,.nav-toggle{display:none}.row{padding-block:24px}body{font-size:11pt}}
