/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1iIq131nj-otFQ.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/plex-mono-400-cyr.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1iAq131nj-otFQ.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1iEq131nj-otFQ.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/plex-mono-400-lat.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwl1FgsAXHNlYzg.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/plex-mono-500-cyr.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwl9FgsAXHNlYzg.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwl5FgsAXHNlYzg.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/plex-mono-500-lat.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxTKYbSB4ZhRNU.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/plex-sans-cyr.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxdKYbSB4ZhRNU.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxRKYbSB4ZhRNU.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxQKYbSB4ZhRNU.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/plex-sans-lat.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxTKYbSB4ZhRNU.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/plex-sans-cyr.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxdKYbSB4ZhRNU.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxRKYbSB4ZhRNU.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxQKYbSB4ZhRNU.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/plex-sans-lat.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxTKYbSB4ZhRNU.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/plex-sans-cyr.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxdKYbSB4ZhRNU.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxRKYbSB4ZhRNU.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxQKYbSB4ZhRNU.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/plex-sans-lat.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


body{margin:0;background:#0E1013}
.s,.s *{box-sizing:border-box}
.s{--bg:#0E1013;--card:#16181C;--card2:#1C1F24;--line:#262A31;--mut:#9AA0AC;--mut2:#AEB4BF;--blue:#0055FF;--b3:#8FB2FF;width:100%;min-height:100vh;display:flex;flex-direction:column;background:#0E1013;color:#FFFFFF;font-family:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden;overflow-x:clip;isolation:isolate;transition:background-color 500ms,color 500ms}
.s p{margin:0}.s a{color:inherit}
.s :focus-visible{outline:2px solid #8FB2FF;outline-offset:3px}
.s [id]{scroll-margin-top:88px}
.w{width:100%;max-width:1320px;margin:0 auto;padding-inline:48px}
.sec{position:relative;padding-block:clamp(48px,5vw,80px)}
/* page flow: soft brand glows that cross section edges (edges of each glow are fully transparent, so nothing ever cuts) */
.gl{position:absolute;z-index:-1;pointer-events:none;border-radius:50%;background:radial-gradient(closest-side,rgba(0,85,255,.34),rgba(0,85,255,.15) 45%,rgba(0,85,255,.04) 75%,rgba(0,85,255,0))}
.gl.sf{background:radial-gradient(closest-side,rgba(77,133,255,.2),rgba(77,133,255,.08) 50%,rgba(77,133,255,0))}
.gl.dr{animation:yc-drift 20s ease-in-out infinite alternate}
.light .gl{background:radial-gradient(closest-side,rgba(0,85,255,.14),rgba(0,85,255,.06) 45%,rgba(0,85,255,.015) 75%,rgba(0,85,255,0))}
.light .gl.sf{background:radial-gradient(closest-side,rgba(143,178,255,.36),rgba(143,178,255,.13) 50%,rgba(143,178,255,0))}
.gl-st{width:clamp(560px,80vw,1150px);aspect-ratio:1.15;left:-34vw;top:6%}
.gl-cl{width:clamp(560px,76vw,1100px);aspect-ratio:1.1;right:-32vw;top:18%}
.gl-fm{width:clamp(560px,76vw,1100px);aspect-ratio:1.1;left:-32vw;top:30%}
.gl-ft{width:min(1500px,130vw);height:640px;left:50%;margin-left:max(-750px,-65vw);bottom:-360px}
.mono{font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace}
.lab{display:inline-flex;align-items:center;gap:10px;font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#8FB2FF}
.lab i{width:7px;height:7px;background:currentColor;display:inline-block}
.h2{margin:0;font-size:clamp(34px,1rem + 3.6vw,76px);line-height:1;font-weight:500;letter-spacing:-.045em}
.h3{margin:0;font-size:clamp(24px,1rem + 1.2vw,36px);line-height:1.1;font-weight:500;letter-spacing:-.03em}
.lead{font-size:clamp(17px,1rem + .45vw,22px);line-height:1.5;color:var(--mut)}
.body{font-size:16px;line-height:1.55}
.mut{color:var(--mut)}
.col{display:flex;flex-direction:column}
.row{display:flex;align-items:center}
.head{display:grid;grid-template-columns:1fr 2fr;gap:24px 48px;align-items:end}
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:14px;height:56px;padding:0 10px 0 26px;border-radius:999px;font:inherit;font-size:16px;font-weight:500;text-decoration:none;cursor:pointer;border:0;white-space:nowrap;overflow:hidden;transition:background-color 200ms,color 200ms,transform 200ms,box-shadow 200ms}
.btn:active{transform:scale(.98)}
.btn .ar{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:transform 400ms cubic-bezier(.16,1,.3,1)}
.btn:hover .ar{transform:rotate(-45deg)}
.s .b-blue{background:#0055FF;color:#FFFFFF}.s .b-blue:hover{background:#0046D6;color:#FFFFFF}.b-blue .ar{background:#FFFFFF;color:#0055FF}
.s .b-white{background:#FFFFFF;color:#0E1013}.s .b-white:hover{background:#E3ECFF;color:#0E1013}.b-white .ar{background:#0055FF;color:#FFFFFF}
.s .b-line{background:transparent;color:inherit;padding:0 26px;box-shadow:inset 0 0 0 1px var(--line)}.s .b-line:hover{box-shadow:inset 0 0 0 1px currentColor}

.hdr{position:sticky;top:0;z-index:40;transition:background-color 300ms,border-color 300ms;border-bottom:1px solid transparent}
.hdr.stuck{background:rgba(14,16,19,.78);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);border-bottom-color:#262A31}
.hdr-in{height:76px;display:flex;align-items:center;gap:16px}
.nav{display:flex;gap:2px;margin-left:auto;white-space:nowrap}
.s .na{height:44px;display:inline-flex;align-items:center;padding:0 10px;border-radius:999px;font-size:15px;text-decoration:none;color:#C9CDD4;transition:color 160ms,background-color 160ms}
.s .na:hover{color:#FFFFFF;background:rgba(255,255,255,.06)}
.lang{display:flex;gap:2px;padding:3px;border-radius:999px;box-shadow:inset 0 0 0 1px #2E333B}
.lang button{height:36px;min-width:44px;padding:0 10px;border:0;border-radius:999px;background:none;font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:13px;letter-spacing:.06em;color:#9AA0AC;cursor:pointer;transition:background-color 300ms,color 300ms}
.lang button:hover{color:#FFFFFF}
.lang button.on{background:#FFFFFF;color:#0E1013}
.tgl{width:44px;height:44px;flex-shrink:0;border-radius:50%;border:0;box-shadow:inset 0 0 0 1px #2E333B;background:transparent;color:#FFFFFF;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background-color 300ms,color 300ms}
.tgl:hover{background:rgba(255,255,255,.08)}
.burger{display:none;width:48px;height:48px;border-radius:50%;border:0;background:#FFFFFF;color:#0E1013;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}
.mnav{position:fixed;inset:0;z-index:39;background:#0055FF;padding:100px 0 32px;overflow-y:auto;animation:yc-clip 560ms cubic-bezier(.16,1,.3,1) both}
.s .mn{display:flex;justify-content:space-between;align-items:center;min-height:60px;border-bottom:1px solid rgba(255,255,255,.25);font-size:clamp(30px,8vw,46px);font-weight:500;letter-spacing:-.035em;text-decoration:none;color:#FFFFFF}
.mnav .lang{box-shadow:inset 0 0 0 1px rgba(255,255,255,.4)}.mnav .lang button{color:#FFFFFF}.mnav .lang button.on{background:#FFFFFF;color:#0055FF}
.mnav .tgl{box-shadow:inset 0 0 0 1px rgba(255,255,255,.4);color:#FFFFFF}

/* hero · Swiss line: a 12-column grid; one line draws the brand mark, drops down and becomes the 4-direction timeline */
.hero{--hc-bg:#0E1013;--hc-grid:rgba(255,255,255,.06);--hc-fg:#FFFFFF;--hc-fg2:#AEB4BF;--hc-fg3:#9AA0AC;--hc-acc:#8FB2FF;--hc-ln:#8FB2FF;--hc-ln2:#4D85FF;--hc-fill:#0055FF;--hc-cg:24px;position:relative;margin-top:-76px;padding-top:76px;min-height:max(760px,100vh);display:flex;flex-direction:column;overflow:hidden;background:var(--hc-bg);color:var(--hc-fg);transition:background-color 500ms,color 500ms}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(38% 46% at 86% 34%,rgba(0,85,255,.2),rgba(0,85,255,.07) 45%,rgba(0,85,255,0) 72%)}
.hero-in{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;padding-top:clamp(20px,3vw,40px);padding-bottom:clamp(32px,4vw,56px)}
.hc-cols{position:absolute;top:0;bottom:0;left:48px;right:48px;z-index:-1;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--hc-cg);pointer-events:none;-webkit-mask-image:linear-gradient(180deg,transparent,#000 9%,#000 84%,transparent);mask-image:linear-gradient(180deg,transparent,#000 9%,#000 84%,transparent)}
.hc-cols i{display:block;border-left:1px solid var(--hc-grid)}
.hc-cols i:last-child{border-right:1px solid var(--hc-grid)}
.hc-m{flex:1 0 auto;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:auto auto 1fr auto;column-gap:var(--hc-cg)}
.hc-ra{grid-column:1/13;grid-row:1;display:flex;justify-content:space-between;align-items:center;gap:12px 32px;padding-bottom:28px}
.hc-fa{display:flex;flex-wrap:wrap;gap:6px 28px;font-size:14px;color:var(--hc-fg3)}
.hc-fa b{color:var(--hc-fg);font-weight:500}
.hc-h{grid-column:1/10;grid-row:2;align-self:start;margin:0;font-size:clamp(48px,1rem + 6.4vw,112px);line-height:.98;font-weight:500;letter-spacing:-.055em}
.hc-h>span{display:block}
.hc-h .nw{white-space:nowrap}
.hc-h .b{color:var(--hc-acc)}
.hc-mk{grid-column:10/13;grid-row:2/4;display:flex;flex-direction:column;align-items:flex-end}
.hc-mk svg{display:block;width:100%;max-width:280px;height:auto;aspect-ratio:34/35;margin-top:12px;overflow:visible}
.hc-mk .o{fill:none;stroke:var(--hc-ln);stroke-width:.17;stroke-linejoin:miter;stroke-dasharray:1;stroke-dashoffset:0;animation:yc-draw 1500ms cubic-bezier(.65,0,.35,1) 150ms both}
.hc-mk .f{fill:var(--hc-fill);animation:hc-fi 700ms ease 1400ms both}
.hc-mk .cn{flex:1;min-height:24px;width:1.4px;background:linear-gradient(180deg,var(--hc-ln),var(--hc-ln2));transform-origin:top;animation:hc-cy 420ms cubic-bezier(.65,0,.35,1) 1550ms both}
.hc-mid{grid-column:1/10;grid-row:3;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:28px;padding:28px 0 40px}
.hc-lead{max-width:600px;font-size:clamp(17px,1rem + .2vw,19px);line-height:1.55;color:var(--hc-fg2)}
.hc-tl{--tlp:26px;grid-column:1/13;grid-row:4;position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:var(--hc-cg);padding-top:var(--tlp)}
.hc-tl .ln{position:absolute;left:0;right:0;top:0;height:1.4px;background:linear-gradient(270deg,var(--hc-ln2),var(--hc-ln) 60%);transform-origin:right;animation:hc-cx 1000ms cubic-bezier(.65,0,.35,1) 1950ms both}
.hc-run{position:absolute;left:0;top:-3px;width:100%;height:8px;pointer-events:none;animation:hc-run 9s linear 3400ms infinite both}
.hc-run::before{content:"";position:absolute;left:0;top:0;width:8px;height:8px;border-radius:50%;background:var(--hc-fill);box-shadow:0 0 12px rgba(77,133,255,.85)}
.s .hc-d{position:relative;display:flex;flex-direction:column;gap:6px;color:var(--hc-fg);text-decoration:none;animation:yc-up 800ms cubic-bezier(.16,1,.3,1) both}
.hc-d::before{content:"";position:absolute;left:0;top:calc(-1 * var(--tlp) - 5px);width:11px;height:11px;border-radius:50%;background:var(--hc-bg);box-shadow:inset 0 0 0 1.4px var(--hc-ln);transition:transform 300ms cubic-bezier(.16,1,.3,1),background-color 300ms,box-shadow 300ms}
.hc-d .n{font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:12px;letter-spacing:.06em;color:var(--hc-fg3)}
.hc-d b{font-size:20px;font-weight:500;letter-spacing:-.02em;line-height:1.2;transition:color 200ms}
.hc-d small{font-size:14px;line-height:1.45;color:var(--hc-fg2)}
.hc-d:hover::before,.hc-d:focus-visible::before{background:var(--hc-fill);box-shadow:0 0 0 4px rgba(0,85,255,.18);transform:scale(1.35)}
.hc-d:hover b{color:var(--hc-acc)}
@keyframes hc-fi{from{opacity:0}}
@keyframes hc-cy{from{transform:scaleY(0)}}
@keyframes hc-cx{from{transform:scaleX(0)}}
@keyframes hc-run{0%{transform:translateX(0);opacity:0}5%,95%{opacity:1}100%{transform:translateX(calc(100% - 8px));opacity:0}}
.hin{animation:yc-up 1000ms cubic-bezier(.16,1,.3,1) both}
@media (max-width:1179px){.hc-cols{left:32px;right:32px}}

.list{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.list li{height:36px;padding:0 14px;border-radius:999px;background:rgba(255,255,255,.06);display:inline-flex;align-items:center;font-size:14px;color:#AEB4BF}

.who{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:16px}
.wtabs{display:flex;flex-direction:column;gap:8px}
.wt{display:grid;grid-template-columns:48px minmax(0,1fr) 24px;align-items:center;gap:12px;min-height:84px;padding:0 24px;border-radius:20px;border:1px solid var(--line);background:var(--card);font:inherit;color:inherit;text-align:left;cursor:pointer;transition:background-color 200ms,border-color 200ms,color 200ms}
.wt:hover{border-color:#4D85FF}.wt.on{background:#FFFFFF;color:#0E1013;border-color:#FFFFFF}
.wt .t{font-size:22px;font-weight:500;letter-spacing:-.02em}
.wpanel{border-radius:24px;background:#0055FF;color:#FFFFFF;padding:clamp(28px,4vw,48px);display:flex;flex-direction:column;gap:24px;min-height:360px;position:relative;overflow:hidden}
.wpanel .lab{color:#FFFFFF}
.wpanel .big{position:absolute;right:-2%;bottom:-8%;font-size:clamp(140px,18vw,260px);line-height:1;font-weight:500;letter-spacing:-.06em;color:rgba(255,255,255,.1);pointer-events:none}
.inds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.ind{border-radius:24px;border:1px solid var(--line);background:var(--card);padding:24px;display:flex;flex-direction:column;gap:32px;min-height:196px;transition:border-color 300ms,box-shadow 300ms,transform 500ms cubic-bezier(.16,1,.3,1)}
.ind:hover{border-color:#4D85FF;transform:translateY(-4px)}
.light .ind:hover{border-color:#0055FF;box-shadow:0 24px 60px -30px rgba(0,56,173,.28)}
.ind svg{width:40px;height:40px;stroke:#8FB2FF}

.cg1{width:clamp(600px,72vw,1050px);aspect-ratio:1;right:-26vw;top:-22%}
.cg2{width:clamp(460px,50vw,720px);aspect-ratio:1;left:-20vw;bottom:-34%;animation-direction:alternate-reverse}
.ctw{position:relative;z-index:1;display:flex;flex-direction:column;gap:36px}
.clive{display:inline-flex;align-items:center;gap:10px;font-size:14px;color:var(--mut)}
.clive i{width:9px;height:9px;border-radius:50%;background:#4D85FF;display:block;animation:yc-ping 2s ease-out infinite}
.cpre{font-size:clamp(28px,1rem + 2.4vw,56px);font-weight:500;letter-spacing:-.04em;line-height:1.08;color:#AEB4BF}
.s .cbig{position:relative;display:inline-block;align-self:flex-start;font-size:clamp(34px,10vw,140px);line-height:.95;font-weight:500;letter-spacing:-.055em;text-decoration:none;white-space:nowrap;background:linear-gradient(100deg,#FFFFFF 0%,#FFFFFF 40%,#8FB2FF 50%,#FFFFFF 60%,#FFFFFF 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:yc-sheen 5s ease-in-out infinite}
.cbig::after{content:"";position:absolute;left:0;right:0;bottom:-10px;height:4px;border-radius:2px;background:#0055FF;transform:scaleX(.18);transform-origin:left;transition:transform 700ms cubic-bezier(.16,1,.3,1)}
.cbig:hover::after,.cbig:focus-visible::after{transform:scaleX(1)}
.chint{display:inline-flex;align-items:center;gap:10px;font-size:15px;color:var(--mut)}
.chint b{width:28px;height:28px;border-radius:50%;background:#0055FF;display:flex;align-items:center;justify-content:center;color:#FFFFFF}
.cor{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-top:32px;border-top:1px solid var(--line)}
.cor>span{font-size:17px;color:var(--mut);margin-right:6px}
.cor .btn{height:60px;font-size:17px;gap:12px}
.light .cpre{color:#5A6070}
.s.light .cbig{background-image:linear-gradient(100deg,#16181C 0%,#16181C 40%,#0055FF 50%,#16181C 60%,#16181C 100%)}
.s.light .cwa{background:#0055FF;color:#FFFFFF;box-shadow:0 14px 40px rgba(0,85,255,.3)}
.s.light .cwa:hover{background:#0046D6;color:#FFFFFF}
.s.light .ctg{color:#16181C;box-shadow:inset 0 0 0 1px #C4CAD4}
.s.light .ctg:hover{box-shadow:inset 0 0 0 1px #16181C}
@keyframes yc-sheen{0%,30%{background-position:100% 0}70%,100%{background-position:0 0}}
@keyframes yc-drift{from{transform:translate(0,0) scale(1)}to{transform:translate(-8%,10%) scale(1.15)}}
@keyframes yc-ping{0%{box-shadow:0 0 0 0 rgba(77,133,255,.7)}80%,100%{box-shadow:0 0 0 12px rgba(77,133,255,0)}}

.ftr{position:relative;margin:0 clamp(8px,1.1vw,16px) clamp(8px,1.1vw,16px);border-radius:clamp(24px,3vw,40px);background:radial-gradient(90% 80% at 88% 0%,rgba(77,133,255,.55),rgba(77,133,255,0) 60%),#0055FF;color:#FFFFFF;overflow:hidden;box-shadow:0 -30px 120px -40px rgba(0,85,255,.55)}
.light .ftr{box-shadow:0 -30px 120px -50px rgba(0,85,255,.35)}
.s .fa{display:block;width:fit-content;color:rgba(255,255,255,.82);text-decoration:none;font-size:15px;padding:5px 0;transition:color 160ms}
.s .fa:hover{color:#FFFFFF}
.kl-w{gap:clamp(40px,5vw,64px)}
.ftr-w{padding-block:80px 40px;gap:72px}
.ft-h{font-size:clamp(28px,1rem + 2vw,44px);max-width:440px}
.ft-bar{display:flex;justify-content:space-between;align-items:center;gap:8px 24px;flex-wrap:wrap;padding-top:20px;border-top:1px solid rgba(255,255,255,.25);font-size:14px;color:rgba(255,255,255,.75)}
.s .ft-top{display:inline-flex;align-items:center;gap:8px;padding:0;min-height:44px}
.fword-wrap{overflow:hidden;aspect-ratio:122/12.6;padding-inline:clamp(8px,1.2vw,20px)}
.fword{display:block;width:100%;height:auto;fill:#FFFFFF;animation:yc-up 1200ms cubic-bezier(.16,1,.3,1) both}

.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:70;background:#FFFFFF;color:#0E1013;padding:14px 22px;border-radius:999px;font-size:14px;max-width:calc(100% - 32px);box-shadow:0 12px 40px rgba(0,0,0,.35);animation:yc-toast 360ms cubic-bezier(.16,1,.3,1) both}
.fab{position:fixed;right:16px;bottom:16px;z-index:45;height:52px;padding:0 20px 0 16px;border-radius:999px;border:0;background:#0055FF;color:#FFFFFF;font:inherit;font-size:15px;font-weight:500;display:flex;align-items:center;gap:10px;cursor:pointer;box-shadow:0 12px 32px rgba(0,85,255,.45);animation:yc-toast2 400ms cubic-bezier(.16,1,.3,1) both}
.fab .p{width:10px;height:10px;border-radius:50%;background:#FFFFFF;animation:yc-pulse 1.8s ease-in-out infinite}

/* light theme */
.s.light{background:#F4F6F9;color:#16181C;--card:#FFFFFF;--card2:#FFFFFF;--line:#DADDE3;--mut:#5A6070;--mut2:#5A6070;--b3:#0055FF}
.s.light :focus-visible{outline-color:#0055FF}
.light .lab{color:#0055FF}
.light .wpanel .lab{color:#FFFFFF}
.light .hdr.stuck{background:rgba(255,255,255,.86);border-bottom-color:#DADDE3}
.s.light .na{color:#5A6070}.s.light .na:hover{color:#16181C;background:rgba(22,24,28,.05)}
.light .lang{box-shadow:inset 0 0 0 1px #DADDE3}.light .lang button{color:#5A6070}.light .lang button:hover{color:#16181C}.light .lang button.on{background:#16181C;color:#FFFFFF}
.light .tgl{box-shadow:inset 0 0 0 1px #DADDE3;color:#16181C}.light .tgl:hover{background:rgba(22,24,28,.05)}
.light .burger{background:#16181C;color:#FFFFFF}
.light .mnav .lang{box-shadow:inset 0 0 0 1px rgba(255,255,255,.4)}.light .mnav .lang button{color:#FFFFFF}.light .mnav .lang button.on{background:#FFFFFF;color:#0055FF}
.light .mnav .tgl{box-shadow:inset 0 0 0 1px rgba(255,255,255,.4);color:#FFFFFF}
.light .hero{--hc-bg:#F4F6F9;--hc-grid:rgba(22,24,28,.065);--hc-fg:#16181C;--hc-fg2:#5A6070;--hc-fg3:#5A6070;--hc-acc:#0055FF;--hc-ln:#16181C;--hc-ln2:#16181C;--hc-fill:#0055FF}
.light .hero::before{background:radial-gradient(38% 46% at 86% 34%,rgba(0,85,255,.07),rgba(0,85,255,.025) 45%,rgba(0,85,255,0) 72%)}
.light .hc-run::before{box-shadow:0 0 0 3px rgba(0,85,255,.14)}
.light .hc-d:hover::before,.light .hc-d:focus-visible::before{box-shadow:0 0 0 4px rgba(0,85,255,.12)}
.light .list li{background:#EEF0F3;color:#16181C}
.light .wt:hover{border-color:#0055FF}.light .wt.on{background:#16181C;color:#FFFFFF;border-color:#16181C}
.light .ind svg{stroke:#0055FF}
.light .toast{background:#16181C;color:#FFFFFF}

/* stats · bento */
.ks-hd{display:flex;justify-content:space-between;align-items:flex-end;gap:32px 48px;flex-wrap:wrap}
.ks-hd .col{gap:24px;flex:1 1 560px;max-width:780px}
.ks-hd .lead{flex:0 1 460px;max-width:520px}
.ks-bn{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(210px,auto);gap:16px;margin-top:48px}
.ks-cd{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:24px;padding:32px;display:flex;flex-direction:column;justify-content:space-between;gap:20px;transition:border-color 300ms,box-shadow 300ms,transform 500ms cubic-bezier(.16,1,.3,1)}
.ks-cd:hover{border-color:#4D85FF;transform:translateY(-4px)}
.ks-a{grid-column:span 2;grid-row:span 2;background:#0055FF;border-color:#0055FF;color:#FFFFFF}
.ks-bn{grid-auto-flow:row dense}
.ks-a:hover{border-color:#4D85FF}
.ks-b,.ks-c,.ks-d,.ks-f{grid-column:span 2}.ks-e{grid-column:1/-1}
.ks-cl{font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#9AA0AC;display:flex;justify-content:space-between;gap:12px}
.ks-n{font-size:clamp(56px,1rem + 3.6vw,88px);line-height:.9;font-weight:500;letter-spacing:-.06em;font-variant-numeric:tabular-nums;white-space:nowrap}
.ks-n small{font-size:.32em;letter-spacing:-.01em;margin-left:10px;color:#8FB2FF}
.ks-n em{font-style:normal;color:#4D85FF;margin-left:.02em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* projects: 50 squares light up with the count-up; clients: number + caption over the industry chips */
.ks-pj{display:flex;align-items:flex-end;justify-content:space-between;gap:16px 24px}
.ks-pj p{max-width:220px}
.ks-pg{flex:none;width:min(56%,240px);display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:4px}
.ks-pg i{display:block;aspect-ratio:1;border-radius:3px;background:#262A31;transition:background-color 250ms,box-shadow 250ms}
.ks-pg i.on{background:#4D85FF}
.ks-pg i.lt{background:#8FB2FF;box-shadow:0 0 10px rgba(77,133,255,.8)}
.ks-kv{display:flex;align-items:flex-end;gap:12px clamp(16px,2vw,24px)}
.ks-kv p{flex:1 1 auto;min-width:0;max-width:300px;padding-bottom:.35em}
.ks-a .ks-n{font-size:clamp(160px,1rem + 16vw,320px);line-height:.8}
.ks-mk{position:absolute;right:-70px;top:-50px;width:430px;height:443px;fill:none;stroke:rgba(255,255,255,.28);stroke-width:.18;pointer-events:none;animation:yc-drift 14s ease-in-out infinite alternate}
.ks-cd p{font-size:17px;line-height:1.5;color:var(--mut2);max-width:340px}
.ks-a p{color:#E3ECFF;font-size:19px;max-width:380px}
.ks-tt{font-size:clamp(26px,1rem + 1vw,36px);line-height:1.05;font-weight:500;letter-spacing:-.035em;max-width:420px}
.ks-in{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ks-in li{display:flex;align-items:center;gap:10px;min-height:42px;padding:6px 12px;border-radius:12px;background:#1C1F24;border:1px solid #262A31;font-size:15px;line-height:1.25;color:#D5D8DE}
.ks-in svg{flex:none;width:18px;height:18px;color:#8FB2FF}
.s a.ks-cd{text-decoration:none;color:inherit}
.ks-go{transition:background-color 300ms,color 300ms}.ks-go svg{transition:transform 400ms cubic-bezier(.16,1,.3,1)}
.ks-e:hover .ks-go,.ks-e:focus-visible .ks-go{background:#0055FF;color:#FFFFFF}.ks-e:hover .ks-go svg,.ks-e:focus-visible .ks-go svg{transform:rotate(45deg)}
.ks-ic{width:52px;height:52px;border-radius:14px;background:#1C1F24;display:flex;align-items:center;justify-content:center;color:#8FB2FF}
.ks-now{font-size:clamp(32px,1rem + 1.3vw,42px);line-height:1;letter-spacing:-.04em}
.zap{position:relative;flex-shrink:0;width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#4D85FF;background:rgba(0,85,255,.12);box-shadow:inset 0 0 0 1px rgba(77,133,255,.35)}
.zap::before,.zap::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid currentColor;opacity:0;animation:zap-ping 2.4s cubic-bezier(.16,1,.3,1) infinite;pointer-events:none}
.zap::after{animation-delay:1.2s}
.zap svg{width:24px;height:28px;fill:currentColor;animation:zap-flash 2.4s ease-in-out infinite}
.light .zap{color:#0055FF;background:#EEF2FA;box-shadow:inset 0 0 0 1px rgba(0,85,255,.25)}
@keyframes zap-ping{0%{transform:scale(.85);opacity:.8}100%{transform:scale(1.4);opacity:0}}
@keyframes zap-flash{0%,100%{transform:scale(1);opacity:1}6%{transform:scale(1.18)}14%{opacity:.5}22%{transform:scale(1);opacity:1}}
.ks-tags{display:flex;gap:8px;flex-wrap:wrap}
.ks-tags span{height:36px;padding:0 14px;border-radius:999px;background:#1C1F24;border:1px solid #262A31;display:inline-flex;align-items:center;font-size:15px;color:#AEB4BF}
.s .ks-tags span.mo{background:transparent;border-style:dashed;border-color:#3A4050;color:#8FB2FF}
.ks-lng{font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:clamp(40px,1rem + 2.6vw,64px);letter-spacing:-.02em;font-weight:500}
.ks-lng em{font-style:normal;color:#4D85FF}
.light .ks-cd:hover{border-color:#0055FF;box-shadow:0 24px 60px -30px rgba(0,56,173,.28)}
.light .ks-cl{color:#5A6070}
.light .ks-n small,.light .ks-n em{color:#0055FF}
.light .ks-pg i{background:#DADDE3}.light .ks-pg i.on{background:#0055FF}.light .ks-pg i.lt{background:#0046D6;box-shadow:0 0 8px rgba(0,85,255,.45)}
.light .ks-in li{background:#F4F6F9;border-color:#DADDE3;color:#16181C}.light .ks-in svg{color:#0055FF}
.light .ks-ic{background:#EEF2FA;color:#0055FF}
.light .ks-tags span{background:#F4F6F9;border-color:#DADDE3;color:#16181C}
.s.light .ks-tags span.mo{background:transparent;border-color:#B7BFCC;color:#0055FF}
.light .ks-lng em{color:#0055FF}
.s .ks-a .ks-cl{color:#E3ECFF}.s .ks-a .ks-n small{color:#FFFFFF;font-size:.22em;margin-left:.08em}
.s.light .ks-a:hover{border-color:#0046D6;box-shadow:0 30px 60px -30px rgba(0,85,255,.5)}

/* clients · logo strip («Нам доверяют») */
.kc{display:grid;grid-template-columns:minmax(0,280px) minmax(0,1fr);gap:20px 40px;align-items:center;padding-top:32px;border-top:1px solid var(--line)}
.kc-hd{display:flex;flex-direction:column;gap:12px}
.kc-hd p{font-size:15px;line-height:1.5;color:var(--mut2)}
.kc-mq{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.kc-tr{display:flex;width:max-content;animation:yc-marq 38s linear infinite}
.kc-mq:hover .kc-tr{animation-play-state:paused}
.kc-set{display:flex;gap:12px;margin:0;padding:0 12px 0 0;list-style:none}
.kc-lg{position:relative;flex:none;width:216px;height:96px;border-radius:18px;background:var(--card);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;transition:border-color 300ms}
.kc-lg:hover{border-color:#4D85FF}
.light .kc-lg:hover{border-color:#0055FF}
.kl-ph{display:inline-flex;align-items:center;gap:10px;margin-top:10px;font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:11px;letter-spacing:.08em;color:#9AA0AC;white-space:nowrap;transition:color 300ms}
.kl-ph svg{flex:none;opacity:.8}
.kc-lg:hover .kl-ph{color:#FFFFFF}
.kl-tg{position:absolute;left:14px;top:12px;font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#8FB2FF}
.light .kl-ph{color:#5A6070}.light .kc-lg:hover .kl-ph{color:#16181C}
.light .kl-tg{color:#0055FF}
.no-motion .kc-mq{overflow-x:auto}
@media (prefers-reduced-motion:reduce){.kc-mq{overflow-x:auto}}

/* formats · bento */
.kf-g{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}
.kf-hd{grid-column:span 5;padding:8px 8px 8px 0;display:flex;flex-direction:column;justify-content:space-between;gap:24px}
.kf-note{font-size:17px;line-height:1.6;color:var(--mut2);max-width:400px}
.kf-bx{position:relative;border-radius:24px;background:var(--card);border:1px solid var(--line);padding:36px;display:flex;flex-direction:column;gap:20px;overflow:hidden;transition:transform 500ms cubic-bezier(.16,1,.3,1),box-shadow 400ms,border-color 300ms}
.kf-bx>*{position:relative}
.kf-bx:hover{transform:translateY(-4px);border-color:#4D85FF}
.light .kf-bx:hover{border-color:#0055FF;box-shadow:0 24px 60px -30px rgba(0,56,173,.28)}
.kf-a{grid-column:span 7;grid-row:span 2}
.kf-b{grid-column:span 5}
.kf-c{grid-column:span 7;background:#0055FF;border-color:#0055FF;color:#FFFFFF}
.kf-d{grid-column:span 5;justify-content:space-between;background:#FFFFFF;border-color:#FFFFFF;color:#0E1013}
.s.light .kf-d{background:#16181C;border-color:#16181C;color:#FFFFFF}
.kf-tp{display:flex;justify-content:space-between;align-items:center;gap:12px}
.kf-n{font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:13px;letter-spacing:.1em;color:#9AA0AC}
.kf-kk{font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;height:28px;padding:0 12px;border-radius:999px;display:inline-flex;align-items:center;background:rgba(0,85,255,.16);color:#C2D5FF;white-space:nowrap}
.kf-t3{margin:0;font-size:34px;font-weight:500;letter-spacing:-.035em;line-height:1.05}
.kf-ds{font-size:17px;line-height:1.55;color:var(--mut2);max-width:460px}
.kf-lp{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.kf-lp li{min-height:36px;padding:6px 14px;border-radius:999px;border:1px solid var(--line);display:inline-flex;align-items:center;gap:8px;font-size:15px;line-height:1.3;color:#AEB4BF}
.kf-lp li b{display:flex;color:#8FB2FF}
.light .kf-n{color:#5A6070}
.light .kf-kk{background:#E3ECFF;color:#002A80}
.light .kf-lp li{color:#16181C}
.light .kf-lp li b{color:#0055FF}
.s .kf-c .kf-n{color:#C2D5FF}.s .kf-c .kf-kk{background:rgba(255,255,255,.16);color:#FFFFFF}.s .kf-c .kf-ds{color:#E3ECFF}.s .kf-c .kf-lp li{border-color:rgba(255,255,255,.35);color:#FFFFFF}.s .kf-c .kf-lp li b{color:#FFFFFF}
.s .kf-c:hover{border-color:#4D85FF}
.kf-art{margin-top:auto;border-radius:20px;background:#0E1013;padding:20px 24px}
.light .kf-art{background:#16181C}
.kf-ill{width:100%;height:auto;display:block}
.kf-gb{transform-box:fill-box;transform-origin:left center}
.js .rv:not(.in) .kf-gb{transform:scaleX(0)}
.js .rv.in .kf-gb{animation:yc-grow 1.1s cubic-bezier(.16,1,.3,1) both}
.s .kf-lk{display:inline-flex;align-items:center;gap:10px;font-size:16px;font-weight:500;text-decoration:none;align-self:flex-start;padding-bottom:4px;border-bottom:2px solid currentColor;color:inherit}
.s .kf-b .kf-lk{color:#8FB2FF}.s.light .kf-b .kf-lk{color:#0046D6}
.kf-lk svg{transition:transform 300ms}.kf-lk:hover svg{transform:translateX(4px)}
.kf-b .kf-rg{position:absolute;right:-80px;bottom:-80px;width:240px;height:240px;color:rgba(77,133,255,.14)}
.light .kf-b .kf-rg{color:#E3ECFF}
.kf-rot{transform-origin:110px 110px;animation:yc-spin 9s linear infinite}
.kf-c .kf-mk{position:absolute;right:-50px;bottom:-70px;width:230px;height:236px;color:rgba(255,255,255,.1);animation:yc-flo 5s ease-in-out infinite alternate}
.kf-d .kf-mk{width:44px;height:45px;color:#0055FF}
.kf-d .btn{align-self:flex-start}
.kf-q{font-size:26px;font-weight:500;letter-spacing:-.03em;line-height:1.15}
.kf-q span{color:#5A6070}
.light .kf-q span{color:#AEB4BF}

/* products · launcher */
.kd-g1{width:clamp(600px,72vw,1050px);aspect-ratio:1;right:-28vw;top:-14%}
.kd-g2{width:clamp(460px,50vw,720px);aspect-ratio:1;left:-22vw;bottom:-30%;animation-direction:alternate-reverse}
.kd .w{position:relative;z-index:1}
.kd-hd{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:28px 48px;align-items:end;margin-bottom:48px}
.kd-hd .lab{margin-bottom:28px}
.kd-app{border-radius:24px;background:#16181C;border:1px solid #2F343C;overflow:hidden;box-shadow:0 50px 120px rgba(0,0,0,.55),0 0 0 8px rgba(255,255,255,.02)}
.kd-tbar{display:flex;align-items:center;gap:8px;height:48px;padding:0 18px;background:#1C1F24;border-bottom:1px solid #262A31}
.kd-tbar i{width:11px;height:11px;border-radius:50%;background:#2F343C}
.kd-ad{margin:0 auto;height:26px;padding:0 16px;border-radius:8px;background:#121418;display:flex;align-items:center;gap:7px;font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:12px;color:#9AA0AC}
.kd-body{display:grid;grid-template-columns:280px minmax(0,1fr)}
.kd-side{padding:20px 14px;border-right:1px solid #262A31;display:flex;flex-direction:column;gap:6px;background:#141619}
.kd-sl{font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#9AA0AC;padding:6px 12px 10px}
.kd-sb{display:flex;align-items:center;gap:12px;width:100%;padding:14px 12px;border:0;border-radius:12px;background:none;color:#AEB4BF;font:inherit;font-size:15px;text-align:left;cursor:pointer;transition:background-color 200ms,color 200ms,box-shadow 200ms}
.kd-sb:hover{background:#1C1F24;color:#FFFFFF}
.kd-sb.on{background:rgba(0,85,255,.16);color:#FFFFFF;box-shadow:inset 0 0 0 1px rgba(77,133,255,.4)}
.kd-ic{width:32px;height:32px;border-radius:9px;background:#262A31;display:flex;align-items:center;justify-content:center;flex:none;font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:11px;color:#C2D5FF}
.kd-tx{display:flex;flex-direction:column;gap:2px;min-width:0}
.kd-tx small{font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:11px;color:#9AA0AC;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kd-main{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:40px;padding:36px}
.kd-info{display:flex;flex-direction:column;gap:14px}
.kd-info h3{margin:4px 0 0;font-size:32px;font-weight:500;letter-spacing:-.025em}
.kd-nm{display:flex;align-items:baseline;gap:.28em;line-height:1.05}.kd-nm::after{content:"";width:.24em;height:.24em;background:#0055FF;align-self:flex-end;margin:0 0 .16em -.12em;flex:none}
.kd-nm em{font-style:normal;color:#8FB2FF}.kd-nm em:empty{display:none}
.kd-more{margin-top:auto;padding:16px 12px 4px;border-top:1px dashed #2F343C;display:flex;flex-direction:column;gap:8px}
.kd-more p{font-size:13px;line-height:1.45;color:#9AA0AC}
.s .kd-more a{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:500;text-decoration:none;color:#8FB2FF}
.kd-more a svg{transition:transform 300ms}.kd-more a:hover svg{transform:translateX(4px)}
.kd-ext{opacity:.8}
.kd-aud{font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:13px;color:#8FB2FF}
.kd-info p{font-size:16px;line-height:1.55;color:var(--mut2)}
.kd-badge{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;height:28px;padding:0 12px;border-radius:999px;background:rgba(0,85,255,.16);border:1px solid rgba(77,133,255,.42);color:#C2D5FF;font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.kd-badge i{width:6px;height:6px;border-radius:50%;background:#4D85FF;display:block;animation:yc-ping 2s ease-out infinite}
.kd-steps{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column}
.kd-st{position:relative;display:flex;align-items:center;gap:14px;padding:12px 0;font-size:15px;color:#9AA0AC;transition:color 400ms}
.kd-st::before{content:"";position:absolute;left:13px;top:-12px;height:24px;width:2px;background:#262A31}
.kd-st:first-child::before{display:none}
.kd-st b{position:relative;z-index:1;width:28px;height:28px;border-radius:50%;background:#1C1F24;box-shadow:inset 0 0 0 1px #2F343C;display:flex;align-items:center;justify-content:center;flex:none;color:transparent;transition:background-color 400ms,color 400ms}
.kd-st.act,.kd-st.done{color:#FFFFFF}
.kd-st.act b{box-shadow:inset 0 0 0 2px #4D85FF;animation:yc-ping 1.4s ease-out infinite}
.kd-st.done b{background:#0055FF;box-shadow:none;color:#FFFFFF}
.kd-st.done::before{background:#0055FF}
.kd-ctl{display:flex;gap:12px;flex-wrap:wrap;margin-top:auto;padding-top:18px}
.kd-ctl .btn{height:52px;font-size:16px}
.kd-ctl .ar{width:34px;height:34px}
.kd-ctl .b-blue{padding:0 8px 0 22px;gap:12px}.s .kd-ctl .b-line{padding:0 20px 0 22px;gap:10px}
.kd-pvw{position:relative;border-radius:16px;overflow:hidden;transition:opacity 600ms,filter 600ms,transform 700ms cubic-bezier(.16,1,.3,1)}
.kd-pvw.wait{opacity:.35;filter:grayscale(1) blur(1px);transform:scale(.97)}
.kd-mk{display:block;width:100%;height:auto}
/* product mock screens: colours come from tokens so both themes are covered; every animation is CSS (paused off-screen by .off) */
.kd-mk{--k-bg:#121418;--k-s1:#1A1D22;--k-s2:#22262C;--k-ln:#2A2F37;--k-t1:#3A414C;--k-t2:#2A2F37;--k-bz:#08090B;--k-bzl:#30353D;--k-a2:#4D85FF;--k-a3:#8FB2FF;--k-pl:#D5D9E0;--k-ph:#1B2436;--k-map:#111317;--k-blk:#181B20;--k-rd:#2A2F37;--k-wat:#0F1B33;--k-prk:#13213A;--k-tx:#AEB4BF;--k-qs:transparent}
.light .kd-mk{--k-bg:#FFFFFF;--k-s1:#F4F6F9;--k-s2:#EEF0F3;--k-ln:#DADDE3;--k-t1:#C4CAD4;--k-t2:#E3E6EB;--k-bz:#16181C;--k-bzl:#16181C;--k-a2:#0055FF;--k-a3:#0055FF;--k-pl:#FFFFFF;--k-ph:#E3ECFF;--k-map:#E8ECF1;--k-blk:#DCE2EA;--k-rd:#FFFFFF;--k-wat:#CFE0FF;--k-prk:#DCE8FF;--k-tx:#5A6070;--k-qs:#DADDE3}
.kd-mk .k-bg{fill:var(--k-bg)}.kd-mk .k-s1{fill:var(--k-s1)}.kd-mk .k-s2{fill:var(--k-s2)}.kd-mk .k-t1{fill:var(--k-t1)}.kd-mk .k-t2{fill:var(--k-t2)}.kd-mk .k-bz{fill:var(--k-bz);stroke:var(--k-bzl)}
.kd-mk .k-a{fill:#0055FF}.kd-mk .k-a2{fill:var(--k-a2)}.kd-mk .k-a3{fill:var(--k-a3)}.kd-mk .k-w{fill:#FFFFFF}.kd-mk .k-pl{fill:var(--k-pl)}.kd-mk .k-ph{fill:var(--k-ph)}
.kd-mk .k-f1{fill:#E9A93B}.kd-mk .k-f2{fill:#4FAE78}.kd-mk .k-f3{fill:#E06A4E}.kd-mk .k-f4{fill:#4D85FF}
.kd-mk .k-map{fill:var(--k-map)}.kd-mk .k-blk{fill:var(--k-blk)}.kd-mk .k-wat{fill:var(--k-wat)}.kd-mk .k-prk{fill:var(--k-prk)}.kd-mk .k-tx{fill:var(--k-tx)}
.kd-mk .k-sl{stroke:var(--k-ln)}.kd-mk .k-rd{fill:none;stroke:var(--k-rd);stroke-linecap:round}.kd-mk .k-sw{fill:none;stroke:#FFFFFF}.kd-mk .k-sa{stroke:#0055FF}.kd-mk .k-sa2{stroke:var(--k-a2)}
.kd-mk .k-qrc{fill:#FFFFFF;stroke:var(--k-qs)}.kd-mk .k-qr{fill:#0E1013}.kd-mk .k-qcap{fill:#C4CAD4}.kd-mk .k-hl{fill:#0055FF;fill-opacity:.14}
.kd-mk .kd-tap,.kd-mk .kd-halo,.kd-mk .kd-pin{transform-box:fill-box;transform-origin:center}
.kd-mk .kd-tap{fill:none;stroke:#0055FF;stroke-width:1.4;animation:kd-tap 2.2s cubic-bezier(.16,1,.3,1) infinite}
.kd-mk .kd-scr{animation:kd-scr 8s ease-in-out infinite alternate}
.kd-mk .kd-qrs{animation:kd-qrs 2.6s ease-in-out infinite alternate}
.kd-mk .kd-car{transform:translate(250px,80px);animation:kd-car 10s linear infinite}
.kd-mk .kd-trl{fill:none;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:.2727;animation:kd-trl 10s linear infinite}
.kd-mk .kd-halo{animation:kd-halo 1.8s ease-out infinite}
.kd-mk .kd-pin{animation:kd-halo 2.4s ease-out infinite}
.kd-mk .kd-live{animation:kx-led 1.4s ease-in-out infinite}
@keyframes kd-tap{0%{transform:scale(1);opacity:.9}70%,100%{transform:scale(2.4);opacity:0}}
@keyframes kd-scr{0%,12%{transform:translateY(0)}88%,100%{transform:translateY(-90px)}}
@keyframes kd-qrs{from{transform:translateY(0)}to{transform:translateY(49px)}}
@keyframes kd-car{0%{transform:translate(40px,150px)}16.36%{transform:translate(110px,150px)}32.73%{transform:translate(110px,80px)}65.45%{transform:translate(250px,80px)}73.64%{transform:translate(250px,115px)}90%,100%{transform:translate(320px,115px)}}
@keyframes kd-trl{0%{stroke-dashoffset:1}90%,100%{stroke-dashoffset:0}}
@keyframes kd-halo{0%{transform:scale(.6);opacity:.55}100%{transform:scale(1.9);opacity:0}}
.kd-stt{display:flex;align-items:center;gap:10px;margin-top:14px;font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:12px;color:#9AA0AC}
.kd-stt i{width:8px;height:8px;border-radius:50%;background:#4D85FF;flex:none}
.kd-mq{margin-top:40px;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.kd-mq-t{display:flex;align-items:center;gap:36px;padding-right:36px;width:max-content;animation:yc-marq 40s linear infinite}
.kd-mq span{font-size:28px;font-weight:500;letter-spacing:-.02em;color:#AEB4BF;white-space:nowrap}
.kd-mq b{width:10px;height:10px;background:#0055FF;flex:none}
.light .kd-app{background:#FFFFFF;border-color:#DADDE3;box-shadow:0 40px 100px -40px rgba(14,30,70,.25),0 0 0 8px rgba(0,85,255,.04)}
.light .kd-tbar{background:#F4F6F9;border-bottom-color:#DADDE3}
.light .kd-tbar i{background:#DADDE3}
.light .kd-ad{background:#FFFFFF;color:#5A6070;box-shadow:inset 0 0 0 1px #DADDE3}
.light .kd-side{background:#F7F8FA;border-right-color:#DADDE3}
.light .kd-sl{color:#5A6070}
.light .kd-sb{color:#5A6070}
.light .kd-sb:hover{background:#EEF0F3;color:#16181C}
.s.light .kd-sb.on{background:rgba(0,85,255,.07);color:#16181C;box-shadow:inset 0 0 0 1px rgba(0,85,255,.35)}
.light .kd-ic{background:#E3ECFF;color:#0038AD}
.s .kd-sb.on .kd-ic{background:#0055FF;color:#FFFFFF}
.light .kd-tx small{color:#5A6070}
.light .kd-aud{color:#0055FF}
.light .kd-badge{background:rgba(0,85,255,.08);border-color:rgba(0,85,255,.3);color:#0038AD}
.light .kd-badge i{background:#0055FF}
.light .kd-st{color:#5A6070}
.light .kd-st::before{background:#DADDE3}
.light .kd-st b{background:#FFFFFF;box-shadow:inset 0 0 0 1px #DADDE3}
.s.light .kd-st.act,.s.light .kd-st.done{color:#16181C}
.s.light .kd-st.act b{box-shadow:inset 0 0 0 2px #0055FF}
.s.light .kd-st.done b{background:#0055FF;box-shadow:none}
.s.light .kd-st.done::before{background:#0055FF}
.light .kd-stt{color:#5A6070}.light .kd-stt i{background:#0055FF}
.light .kd-mq span{color:#5A6070}
.light .kd-nm em{color:#0055FF}
.light .kd-more{border-top-color:#C4CAD4}.light .kd-more p{color:#5A6070}.s.light .kd-more a{color:#0046D6}

/* services · expanding panels */
.kv-g1{width:clamp(620px,80vw,1150px);aspect-ratio:1;right:-24vw;top:50%;margin-top:calc(min(1150px,max(620px,80vw)) / -2)}
.kx .w{position:relative;z-index:1}
.kx-top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px 48px;margin-bottom:40px}
.kx-ttl{display:flex;flex-direction:column;gap:24px;min-width:0}
.kx .h2{font-size:clamp(34px,1rem + 2.4vw,60px);line-height:1.02}
.kx .h2 em{font-style:normal;color:#8FB2FF}
.light .kx .h2 em{color:#0055FF}
.kx-top>.lead{max-width:460px;flex:0 1 460px}
.kx-row{--kxg:12px;--kxp:24px;display:flex;gap:var(--kxg);min-height:560px}
.kx-p{position:relative;flex:1 1 0;min-width:0;display:flex;border-radius:24px;overflow:hidden;border:1px solid var(--line);background:var(--card);cursor:pointer;transition:flex-grow 700ms cubic-bezier(.16,1,.3,1),border-color 300ms,box-shadow 400ms}
.kx-p:hover{border-color:#3A4050}
.kx-p.on{flex-grow:2.7;border-color:#4D85FF;cursor:default}
.kx-p.any{border-color:transparent;background:#0055FF;color:#FFFFFF}
.kx-art{position:absolute;inset:0;width:100%;height:100%;opacity:.55;transform:scale(1.08);transition:transform 900ms cubic-bezier(.16,1,.3,1),opacity 400ms}
.kx-p.on .kx-art{opacity:1;transform:scale(1)}
.kx-p.any .kx-art{opacity:1}
.kx-p:not(.on) .kx-art *{animation-play-state:paused}
.kx-p::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(22,24,28,.15) 0%,rgba(22,24,28,0) 26%,rgba(22,24,28,.9) 58%,rgba(22,24,28,.97) 100%)}
.kx-p.any::after{background:linear-gradient(180deg,rgba(0,56,173,0) 30%,rgba(0,56,173,.85) 100%)}
.kx-in{position:relative;z-index:2;flex:1;min-width:0;display:flex;flex-direction:column;padding:var(--kxp)}
.kx-h{margin:0;flex:1 1 auto;display:flex;min-height:0;font:inherit}
.kx-hd{flex:1;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto 1fr auto;grid-template-areas:"n ic" ". ." "t t";align-items:start;column-gap:12px;padding:0;border:0;border-radius:12px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.kx-p.on .kx-hd{cursor:default}
.kx-hd .n{grid-area:n;align-self:center;font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:13px;letter-spacing:.1em;color:#8FB2FF}
.kx-hd .ic{grid-area:ic;width:42px;height:42px;border-radius:12px;background:rgba(14,16,19,.7);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:#8FB2FF;transition:background-color 300ms,border-color 300ms,color 300ms}
.kx-p.on .kx-hd .ic{background:#0055FF;border-color:#0055FF;color:#FFFFFF}
.s .kx-p.any .kx-hd .n{color:#FFFFFF}
.s .kx-p.any .kx-hd .ic{background:#FFFFFF;border-color:#FFFFFF;color:#0055FF}
.kx-p.any .kx-hd:focus-visible{outline-color:#FFFFFF}
.kx-t{grid-area:t;display:block;min-width:0}
.kx-tl{display:block;font-size:26px;line-height:1.12;font-weight:500;letter-spacing:-.025em}
.kx-ts{display:none}
.kx-p:not(.on) .kx-tl{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.kx-p:not(.on) .kx-ts{display:block;writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;font-size:24px;line-height:1.1;font-weight:500;letter-spacing:-.02em;animation:kx-fb 500ms both}
.kx-p.on .kx-tl{animation:kx-fa 500ms 120ms both}
@keyframes kx-fa{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes kx-fb{from{opacity:0}to{opacity:1}}
.kx-more{display:grid;grid-template-rows:0fr;opacity:0;visibility:hidden;transition:grid-template-rows 600ms cubic-bezier(.16,1,.3,1),opacity 300ms,visibility 0s linear 600ms}
.kx-p.on .kx-more{grid-template-rows:1fr;opacity:1;visibility:visible;transition-delay:150ms,150ms,0s}
.kx-mi{overflow:hidden;min-height:0}
.kx-mi p{margin-top:10px;font-size:15px;line-height:1.5;color:var(--mut2);max-width:400px}
.kx-mi ul{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.kx-mi li{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;background:rgba(28,31,36,.85);border:1px solid var(--line);font-size:14px;line-height:1.25;color:#DADDE3}
.kx-mi li svg{flex:none;color:#8FB2FF}
.s .kx-p.any .kx-mi p{color:#E3ECFF}
.s .kx-p.any .kx-mi li{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.3);color:#FFFFFF}
.s .kx-p.any .kx-mi li svg{color:#FFFFFF}
.kx .kx-cta{margin-top:18px;height:52px;font-size:16px}
.kx-cta .ar{width:34px;height:34px}
.kx-ring{transform-box:fill-box;transform-origin:center;animation:yc-spin 40s linear infinite}
.kx-flow{animation:kx-dsh 2s linear infinite}
.kx-led{animation:kx-led 1.8s ease-in-out infinite}
.kx-blink{animation:kx-led 1s steps(2) infinite}
.kx-lift{animation:kx-lift 3.6s ease-in-out infinite alternate}
@keyframes kx-dsh{to{stroke-dashoffset:-36}}
@keyframes kx-led{50%{opacity:.2}}
@keyframes kx-lift{to{transform:translateY(-10px)}}
@media (min-width:1024px){.kx-row{container-type:inline-size}.kx-mi{width:min(420px,calc((100cqw - 4 * var(--kxg)) * 2.7 / 6.7 - 2 * var(--kxp) - 2px))}}
/* light theme: graphite on white, blue accents, soft shadows instead of glows; the «your task» panel stays blue */
.light .kx-p:hover{border-color:#C4CAD4}
.s.light .kx-p.on{border-color:#0055FF;box-shadow:0 30px 60px -36px rgba(0,56,173,.35)}
.s.light .kx-p.any{border-color:transparent;box-shadow:0 30px 60px -34px rgba(0,85,255,.45)}
.light .kx-p::after{background:linear-gradient(180deg,rgba(255,255,255,.2) 0%,rgba(255,255,255,0) 26%,rgba(255,255,255,.9) 58%,rgba(255,255,255,.97) 100%)}
.light .kx-p.any::after{background:linear-gradient(180deg,rgba(0,56,173,0) 30%,rgba(0,56,173,.85) 100%)}
.light .kx-hd .n{color:#0055FF}
.light .kx-hd .ic{background:rgba(255,255,255,.9);border-color:#DADDE3;color:#0055FF}
.s.light .kx-p.on .kx-hd .ic{background:#0055FF;border-color:#0055FF;color:#FFFFFF}
.s.light .kx-p.any .kx-hd .ic{background:#FFFFFF;border-color:#FFFFFF;color:#0055FF}
.light .kx-mi li{background:rgba(255,255,255,.92);border-color:#DADDE3;color:#16181C}
.light .kx-mi li svg{color:#0055FF}
.light .kx-art .kx-bg{fill:#F2F5FA}
.light .kx-art stop:first-child{stop-opacity:.16}
.light .kx-art [fill="#16181C"],.light .kx-art circle[fill="#0E1013"]{fill:#FFFFFF}
.light .kx-art rect[fill="#1C1F24"]{fill:#EEF0F3}
.light .kx-art path[fill="#1C1F24"]{fill:#FFFFFF}
.light .kx-art path[fill="#0E1013"]{fill:#D5DCE8}
.light .kx-art path[fill="#121419"]{fill:#E6EBF3}
.light .kx-art [stroke="#262A31"]{stroke:#DADDE3}
.light .kx-art [fill="#262A31"]{fill:#E3E6EB}
.light .kx-art [fill="#3A4050"]{fill:#C4CAD4}
.light .kx-art [stroke="#3A4050"]{stroke:#B7BFCC}
.light .kx-art [fill="#8FB2FF"]{fill:#0055FF}
.light .kx-art [stroke="#8FB2FF"]{stroke:#0055FF}
.light .kx-art .kx-blink{fill:#0055FF}
.lite .kx-flow{animation:none}

/* why · bento */
.kw-g1{width:clamp(600px,78vw,1120px);aspect-ratio:1;left:-34vw;top:12%}
.kw .w{position:relative;z-index:1}
.kw-top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px 40px;margin-bottom:48px;flex-wrap:wrap}
.kw-hd{display:flex;flex-direction:column;gap:24px;max-width:720px}
.kw-top>.lead{max-width:420px}
.kw-hd .h2,.kx-ttl .h2{text-wrap:balance}
.kw-bn{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:minmax(224px,auto);gap:16px}
.kw-b{position:relative;overflow:hidden;border-radius:24px;background:var(--card);border:1px solid var(--line);padding:30px;display:flex;flex-direction:column;gap:12px;transition:border-color 300ms,box-shadow 300ms,transform 500ms cubic-bezier(.16,1,.3,1)}
.js .rv.in .kw-b{animation:yc-up 800ms cubic-bezier(.16,1,.3,1) backwards;animation-delay:var(--dl)}
.kw-b:hover{border-color:#4D85FF;transform:translateY(-4px)}
.light .kw-b:hover{border-color:#0055FF;box-shadow:0 24px 60px -30px rgba(0,56,173,.28)}
.kw-ba{grid-column:span 5;grid-row:span 2}.kw-bb{grid-column:span 4}.kw-bc{grid-column:span 3}.kw-bd{grid-column:span 3}.kw-be{grid-column:span 4}.kw-bf{grid-column:span 7}.kw-bg{grid-column:span 5}
.kw-tg{font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#8FB2FF}
.light .kw-tg{color:#0055FF}
.kw-b h3{margin:0;font-size:24px;line-height:1.15;font-weight:500;letter-spacing:-.02em}
.kw-b p{font-size:16px;line-height:1.55;color:var(--mut2)}
.kw-txt{margin-top:auto;display:flex;flex-direction:column;gap:10px;position:relative;z-index:2}
.kw-rings{position:absolute;right:-90px;top:-70px;width:380px;height:392px;opacity:.04;pointer-events:none}
.light .kw-rings{opacity:.035}
.s .kw-bc{background:#0055FF;border-color:#0055FF;color:#FFFFFF}
.s .kw-bc:hover{border-color:#8FB2FF}
.s.light .kw-bc:hover{border-color:#0046D6;box-shadow:0 30px 60px -30px rgba(0,85,255,.5)}
.s .kw-bc .kw-tg{color:#FFFFFF}.s .kw-bc p{color:rgba(255,255,255,.88)}
.s .kw-bc .zap{position:absolute;right:24px;top:24px;color:#FFFFFF;background:rgba(255,255,255,.12);box-shadow:inset 0 0 0 1px rgba(255,255,255,.4)}
.kw-mk{width:56px;height:58px;color:#4D85FF}
.kw-ic{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;color:#8FB2FF;background:#1C1F24;box-shadow:inset 0 0 0 1px #262A31;margin-bottom:auto}
.light .kw-ic{color:#0055FF;background:#EEF2FA;box-shadow:inset 0 0 0 1px rgba(0,85,255,.18)}
.kw-doc{position:relative;z-index:2;margin:18px 0 28px;border-radius:18px;background:#121418;border:1px solid #262A31;padding:18px 20px 16px;display:flex;flex-direction:column;max-width:440px;box-shadow:0 30px 60px -36px rgba(0,0,0,.8)}
.kw-doc-h{display:flex;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px dashed #2F343C;font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#9AA0AC}
.kw-doc-r{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #1C1F24;font-size:15px;line-height:1.3;color:#D5D8DE}
.kw-doc-r b{flex:none;width:22px;height:22px;border-radius:50%;background:#0055FF;color:#FFFFFF;display:flex;align-items:center;justify-content:center}
.kw-doc-s{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px}
.kw-doc-s span{display:flex;flex-direction:column;gap:2px;font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:11px;letter-spacing:.06em;color:#9AA0AC}
.kw-sig{width:120px;height:26px;color:#8FB2FF}
.kw-stamp{flex:none;width:52px;height:52px;border-radius:50%;border:2px solid #4D85FF;color:#4D85FF;display:flex;align-items:center;justify-content:center;transform:rotate(-12deg)}
.light .kw-doc{background:#F7F8FA;border-color:#DADDE3;box-shadow:0 30px 60px -40px rgba(14,30,70,.35)}
.light .kw-doc-h{border-bottom-color:#C4CAD4;color:#5A6070}
.light .kw-doc-r{border-bottom-color:#E6E8EC;color:#16181C}
.light .kw-doc-s span{color:#5A6070}
.light .kw-sig{color:#0055FF}
.light .kw-stamp{border-color:#0055FF;color:#0055FF}
.js .rv:not(.in) .kw-doc-r,.js .rv:not(.in) .kw-stamp{opacity:0}
.js .rv.in .kw-doc-r{animation:yc-up 700ms cubic-bezier(.16,1,.3,1) backwards;animation-delay:calc(var(--i,0) * 120ms + 450ms)}
.js .rv.in .kw-stamp{animation:kw-stamp 600ms cubic-bezier(.16,1,.3,1) 1100ms backwards}
.kw-sig path{stroke-dasharray:1;stroke-dashoffset:0}
.js .rv:not(.in) .kw-sig path{stroke-dashoffset:1}
.js .rv.in .kw-sig path{animation:yc-draw 1.2s cubic-bezier(.65,0,.35,1) 900ms backwards}
@keyframes kw-stamp{from{opacity:0;transform:rotate(-12deg) scale(1.6)}to{opacity:1;transform:rotate(-12deg) scale(1)}}
.kw-fix{display:flex;flex-direction:column;gap:8px;margin-bottom:auto}
.kw-fx{display:flex;align-items:center;gap:12px;height:48px;padding:0 14px 0 8px;border-radius:14px;background:#1C1F24;border:1px solid #262A31;font-size:15px;color:#D5D8DE}
.kw-fx>svg:first-child{flex:none;width:32px;height:32px;padding:7px;border-radius:9px;background:#262A31;color:#8FB2FF}
.kw-fx em{margin-left:auto;display:flex;align-items:center;gap:6px;font-style:normal;font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#8FB2FF}
.light .kw-fx{background:#F4F6F9;border-color:#DADDE3;color:#16181C}
.light .kw-fx>svg:first-child{background:#E3ECFF;color:#0055FF}
.light .kw-fx em{color:#0055FF}
.light .kw-mk{color:#0055FF}
.kw-lg{display:flex;gap:8px;margin-bottom:auto}
.kw-lg span{height:44px;padding:0 16px;border-radius:12px;display:flex;align-items:center;font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:15px;letter-spacing:.06em;background:#1C1F24;border:1px solid #262A31;color:#AEB4BF;animation:kw-lang 4.5s ease-in-out infinite}
.kw-lg span:nth-child(2){animation-delay:1.5s}.kw-lg span:nth-child(3){animation-delay:3s}
.light .kw-lg span{background:#F4F6F9;border-color:#DADDE3;color:#5A6070;animation-name:kw-lang-l}
.kw-tl{display:flex;align-items:center;margin-bottom:auto;padding-top:8px}
.kw-tl span{font-family:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut2);display:flex;align-items:center;gap:10px;white-space:nowrap}
.kw-tl span b{width:12px;height:12px;border-radius:50%;background:#262A31;flex:none}
.kw-tl span:first-child b{background:#4D85FF}
.kw-tl i{flex:1;height:2px;margin:0 14px;background:linear-gradient(90deg,#4D85FF,#262A31);min-width:24px}
.kw-tl span:last-child{color:inherit}
.kw-tl span:last-child b{background:#0055FF;box-shadow:0 0 0 6px rgba(0,85,255,.25)}
.light .kw-tl span b{background:#DADDE3}.light .kw-tl span:first-child b{background:#4D85FF}.light .kw-tl span:last-child b{background:#0055FF;box-shadow:0 0 0 6px rgba(0,85,255,.14)}
.light .kw-tl i{background:linear-gradient(90deg,#4D85FF,#DADDE3)}
.s .kw-bg{background:#FFFFFF;border-color:#FFFFFF;color:#0E1013}
.kw-bg h3{font-size:30px;letter-spacing:-.03em}
.s .kw-bg p{color:#5A6070}
.s .kw-bg .kw-tg{color:#0055FF}
.kw-row{display:flex;gap:16px;margin-top:auto;padding-top:12px;flex-wrap:wrap}
.s.light .kw-bg{background:#16181C;border-color:#16181C;color:#FFFFFF}
.s.light .kw-bg:hover{border-color:#4D85FF}
.s.light .kw-bg p{color:#AEB4BF}
.s.light .kw-bg .kw-tg{color:#8FB2FF}
@keyframes kw-lang{0%,100%{background:#1C1F24;color:#AEB4BF;border-color:#262A31}12%,30%{background:#0055FF;color:#FFFFFF;border-color:#0055FF}42%{background:#1C1F24;color:#AEB4BF;border-color:#262A31}}
@keyframes kw-lang-l{0%,100%{background:#F4F6F9;color:#5A6070;border-color:#DADDE3}12%,30%{background:#0055FF;color:#FFFFFF;border-color:#0055FF}42%{background:#F4F6F9;color:#5A6070;border-color:#DADDE3}}
@media (max-width:1023px){
.kx-top{flex-direction:column;align-items:flex-start;gap:20px;margin-bottom:32px}.kx-top>.lead{flex:none;max-width:620px}
.kx-row{flex-direction:column;min-height:0;gap:10px;--kxp:20px}
.kx-p{flex:none;min-height:0;transition:min-height 600ms cubic-bezier(.16,1,.3,1),border-color 300ms,box-shadow 400ms}.kx-p.on{min-height:430px}
.kx-p:not(.on) .kx-art{opacity:0}.kx-p:not(.on)::after{opacity:0}
.kx-p.on::after{background:linear-gradient(180deg,rgba(22,24,28,.88) 0%,rgba(22,24,28,0) 24%,rgba(22,24,28,0) 34%,rgba(22,24,28,.92) 60%,rgba(22,24,28,.98) 100%)}
.light .kx-p.on::after{background:linear-gradient(180deg,rgba(255,255,255,.9) 0%,rgba(255,255,255,0) 24%,rgba(255,255,255,0) 34%,rgba(255,255,255,.92) 60%,rgba(255,255,255,.98) 100%)}
.kx-p.any.on::after,.light .kx-p.any.on::after{background:linear-gradient(180deg,rgba(0,56,173,0) 30%,rgba(0,56,173,.85) 100%)}
.kx-in{min-height:inherit}.kx-h{align-items:flex-start}
.kx-art{bottom:auto;height:62%}
.kx-hd{flex:1;align-self:flex-start;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto;grid-template-areas:"n t ic";align-items:center;column-gap:14px;min-height:44px}
.kx-hd .ic{width:40px;height:40px}
.s .kx-p .kx-tl{position:static;width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal;font-size:20px;animation:none}.s .kx-p .kx-ts{display:none}
.kx-mi p{max-width:560px}
.kv-g1{top:12%;margin-top:0}
.kw-bn{grid-template-columns:repeat(6,minmax(0,1fr))}.kw-ba{grid-column:span 6;grid-row:auto}.kw-bb,.kw-bc,.kw-bd,.kw-be{grid-column:span 3}.kw-bf,.kw-bg{grid-column:span 6}
}
@media (max-width:639px){
.kx-row{gap:8px;--kxp:16px}.kx-p{border-radius:20px}.kx-p.on{min-height:450px}.kx-tl{font-size:18px !important}.kx-mi p{font-size:15px}.kx-mi li{font-size:13px;padding:7px 10px}.kx .kx-cta{width:100%}
.kw-top{margin-bottom:32px}.kw-bn{grid-template-columns:1fr;grid-auto-rows:auto}.kw-ba,.kw-bb,.kw-bc,.kw-bd,.kw-be,.kw-bf,.kw-bg{grid-column:auto}.kw-bn{gap:12px}.kw-b{padding:24px;min-height:0;gap:10px}.kw-b h3{font-size:22px}.kw-txt{margin-top:16px}.kw-doc{margin:14px 0 4px;padding:14px 16px 12px}.kw-doc-r{font-size:14px;padding:9px 0}.kw-stamp{width:44px;height:44px}.kw-ic{width:48px;height:48px;border-radius:14px}.kw-tl span{font-size:11px;gap:8px}.kw-tl i{margin:0 8px;min-width:12px}.kw-bg .btn{flex:1 1 100%}.kw-bg h3{font-size:24px}
}

@keyframes yc-spin{to{transform:rotate(360deg)}}
@keyframes yc-grow{from{transform:scaleX(0);opacity:0}to{transform:none;opacity:1}}
@keyframes yc-flo{from{transform:translateY(-6px)}to{transform:translateY(6px)}}
@keyframes yc-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@media (max-width:1023px){
.ks-bn{grid-template-columns:repeat(2,minmax(0,1fr))}.ks-c,.ks-d{grid-column:span 1}.ks-c .ks-pj{flex-direction:column;align-items:flex-start}.ks-c .ks-pg{width:100%;max-width:260px}
.kc{grid-template-columns:1fr}
.kf-hd,.kf-a,.kf-b,.kf-c,.kf-d{grid-column:span 12;grid-row:auto}
.kd-hd{grid-template-columns:1fr}.kd-body{grid-template-columns:1fr}.kd-side{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid #262A31}.light .kd-side{border-bottom-color:#DADDE3}.kd-sl,.kd-more{display:none}.kd-sb{flex:1 1 0;min-width:0}.kd-main{grid-template-columns:1fr}
}
@media (max-width:639px){
.ks-bn{grid-template-columns:1fr;grid-auto-rows:auto;gap:12px;margin-top:32px}.ks-a,.ks-b,.ks-c,.ks-d,.ks-e,.ks-f{grid-column:span 1}.ks-c .ks-pj{flex-direction:row;align-items:flex-end}.ks-c .ks-pg{width:min(52%,200px)}.ks-a{grid-row:span 1;min-height:300px}.ks-cd{gap:16px}.ks-n{font-size:56px}.ks-a .ks-n{font-size:168px}.ks-cd{padding:24px}.ks-tt{font-size:26px}.ks-in{grid-template-columns:1fr}
.kc{padding-top:24px;gap:16px}.kc-lg{width:176px;height:80px;border-radius:16px}.kl-ph{font-size:10px}.kl-ph svg{display:none}
.kf-bx{padding:28px 22px}.kf-t3{font-size:28px}.kf-q{font-size:22px}.kf-d .btn{align-self:stretch}
.kd-hd{margin-bottom:40px}.kd-main{padding:22px 18px}.kd-ad{display:none}.kd-sb{gap:10px;padding:12px 10px}.kd-ctl .btn{flex:1 1 auto}.kd-mq span{font-size:20px}.kd-info h3{font-size:26px}
}

.js .rv{opacity:0;transform:translate3d(0,44px,0);transition:opacity 1000ms cubic-bezier(.16,1,.3,1),transform 1100ms cubic-bezier(.16,1,.3,1),filter 1000ms cubic-bezier(.16,1,.3,1),clip-path 1100ms cubic-bezier(.16,1,.3,1);transition-delay:var(--d,0ms)}
.js .rv.in{opacity:1;transform:none}
@keyframes drop{to{top:100%}}
@keyframes yc-up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes yc-marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes yc-clip{from{clip-path:circle(0 at calc(100% - 40px) 38px)}to{clip-path:circle(150% at calc(100% - 40px) 38px)}}
@keyframes yc-toast{from{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes yc-toast2{from{opacity:0;transform:translateY(20px) scale(.9)}to{opacity:1;transform:none}}
@keyframes yc-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}

@media (max-width:1535px){.s .na{padding:0 10px;font-size:14px}}
@media (max-width:1359px){.hdr-in{gap:12px}}
@media (max-width:1179px){.w{padding-inline:32px}.hdr-cta{display:none}}
@media (max-width:1023px){
.w{padding-inline:32px}
.nav,.hdr .lang,.hdr .tgl,.hdr-cta{display:none}.burger{display:flex;margin-left:auto}
.head{grid-template-columns:1fr}
.who{grid-template-columns:1fr}
.inds{grid-template-columns:repeat(2,minmax(0,1fr))}
.cor .btn{flex:1 1 auto}
.fg4{grid-template-columns:repeat(3,minmax(0,1fr)) !important}.fg4>:first-child{grid-column:1/-1}
.hero{min-height:100vh;min-height:100svh}
.hero-in{padding-top:clamp(24px,5vw,40px);padding-bottom:48px}
.hc-cols,.hc-mk .cn{display:none}
.hc-m{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto 1fr auto}
.hc-ra,.hc-h,.hc-mid,.hc-tl{grid-column:1}
.hc-mk{grid-column:1;grid-row:3;padding-top:36px}
.hc-mk svg{max-width:clamp(150px,26vw,220px);margin-top:0}
.hc-mid{grid-row:4}.hc-tl{grid-row:5}
.hc-ra{flex-direction:column;align-items:flex-start;padding-bottom:24px}
.hc-h{font-size:clamp(44px,1rem + 6.4vw,80px)}
.hc-mid{padding:28px 0 36px}
.hc-tl{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:32px}
.hc-d::before{display:none}
}
@media (max-width:639px){
.w{padding-inline:16px}
.gl{opacity:.8}
.btns .btn{flex:1 1 100%}
.inds{grid-template-columns:1fr 1fr;gap:8px}.ind{padding:18px;gap:24px;min-height:0}
.fg4{grid-template-columns:1fr 1fr !important}
.fab span.t{display:none}.fab{padding:0 16px}
.ftr-w{padding-block:64px 32px;gap:48px}
.hero-in{padding-top:24px;padding-bottom:40px}
.hc-mk{display:none}
.hc-ra{gap:10px;padding-bottom:20px}.hc-fa{gap:4px 18px;font-size:13px}
.hc-h{font-size:clamp(34px,10.2vw,44px);line-height:1}
.hc-mid{gap:22px;padding:24px 0 32px}.hc-lead{font-size:17px}
.hc-mid .btns{align-self:stretch}
.hc-tl{--tlp:20px;column-gap:16px;row-gap:24px}
.hc-d b{font-size:17px}.hc-d small{font-size:13px}
}
/* compact phone layout */
@media (max-width:639px){
.ks-n.ks-now{font-size:36px}
.inds{grid-template-columns:1fr;gap:8px}.ind{flex-direction:row;align-items:flex-start;gap:16px;padding:18px 20px}.ind svg{flex:none;width:32px;height:32px}.ind .h3{font-size:19px !important}
.wt{min-height:64px;padding:0 18px;border-radius:16px;grid-template-columns:32px minmax(0,1fr) 20px}.wt .t{font-size:18px}.wpanel{min-height:0;border-radius:20px}.wpanel .big{font-size:120px}
.s .kw-bc .zap{position:relative;right:auto;top:auto;flex:none;width:52px;height:52px}.kw-b{padding:20px}.kw-bc,.kw-bd{flex-direction:row;align-items:flex-start;gap:16px}.kw-bc .kw-txt,.kw-bd .kw-txt{margin-top:0}.kw-bd .kw-ic{flex:none;margin:0}.kw-doc-s{display:none}.kw-doc{margin-bottom:0}
.kf-art{display:none}
}
/* ── scroll choreography ──
   JS (rAF-throttled) writes, directly on the consuming elements: --e enter 0→1, --x exit 0→1, --c section centre vs viewport centre (in vh), --hx hero scrolled-away 0→1.
   Registered with inherits:false so a write only restyles that one element, not the section subtree.
   Every var defaults to its resting value, so without JS / without motion everything is static and fully visible.
   Only translate/scale/opacity/filter/clip-path are animated; individual translate/scale compose with existing transform animations. */
@property --e{syntax:'<number>';inherits:false;initial-value:1}
@property --x{syntax:'<number>';inherits:false;initial-value:0}
@property --c{syntax:'<number>';inherits:false;initial-value:0}
@property --hx{syntax:'<number>';inherits:false;initial-value:0}
.sbar{position:absolute;left:0;right:0;bottom:-1px;height:2px;pointer-events:none;overflow:hidden;z-index:2}
.sbar i{display:block;height:100%;transform:scaleX(0);transform-origin:0 50%;background:linear-gradient(90deg,#0055FF,#4D85FF 65%,#8FB2FF);box-shadow:0 0 14px rgba(0,85,255,.75)}
.light .sbar i{background:linear-gradient(90deg,#0046D6,#0055FF 60%,#4D85FF);box-shadow:0 0 10px rgba(0,85,255,.35)}
.js main>.sec>.w{translate:0 calc((1 - var(--e,1)) * 72px + var(--x,0) * 48px);scale:calc(.95 + var(--e,1) * .05 - var(--x,0) * .04);opacity:calc(.3 + var(--e,1) * .7 - var(--x,0) * .4);transform-origin:50% 0}
.js main>.sec[data-fx]>.w{will-change:transform,translate,scale,opacity}
.js .gl{translate:calc(var(--c,0) * var(--gx,0) * 1px) calc(var(--c,0) * var(--gy,-140) * 1px)}
.js [data-fx]>.gl{will-change:transform,translate}
.gl-st{--gy:-170;--gx:50}.kv-g1{--gy:-120;--gx:-60}.kw-g1{--gy:110;--gx:40}.gl-cl{--gy:-180;--gx:-50}.gl-fm{--gy:-150;--gx:40}.kd-g1{--gy:-170;--gx:-50}.kd-g2{--gy:130;--gx:50}.cg1{--gy:-160;--gx:-40}.cg2{--gy:120;--gx:50}.gl-ft{--gy:-60;--gx:0}
.js .hero-in{translate:0 calc(var(--hx,0) * 150px);scale:calc(1 - var(--hx,0) * .05);opacity:calc(1 - var(--hx,0) * .95);transform-origin:50% 0}
.js .hero[data-fx] .hero-in{will-change:transform,translate,scale,opacity}
.js .ftr{scale:calc(.94 + var(--e,1) * .06);opacity:calc(.35 + var(--e,1) * .65);transform-origin:50% 100%}
.js .ftr>.w{translate:0 calc((1 - var(--e,1)) * 64px)}
.js .ftr .fword{translate:0 calc((1 - var(--e,1)) * 45%)}
.js .ftr[data-fx]{will-change:transform,scale,opacity}
/* staggered in-section reveals: label → heading → lead → cards */
@media (min-width:640px){.js .lab.rv:not(.in),.js .lead.rv:not(.in),.js .cpre.rv:not(.in),.js .chint.rv:not(.in),.js .clive.rv:not(.in){filter:blur(8px)}}
.h2i{display:block}
.js .h2.rv,.js .stg .h2{opacity:1;transform:none;clip-path:inset(-.25em -.4em -.3em -.4em)}
.js .h2.rv .h2i{transform:translate3d(0,calc(100% + .45em),0) rotate(2deg);transform-origin:0 0;transition:transform 1300ms cubic-bezier(.16,1,.3,1);transition-delay:var(--d,0ms)}
.js .h2.rv.in .h2i{transform:none}
.js .rv.stg{opacity:1;transform:none}
.js .rv.stg:not(.in)>*{opacity:0}
.js .rv.stg.in>*{animation:yc-rise 1100ms cubic-bezier(.16,1,.3,1) backwards;animation-delay:calc(var(--i,0) * 75ms + 60ms)}
.js .rv.stg:not(.in) .h2i{transform:translate3d(0,calc(100% + .45em),0) rotate(2deg)}
.js .rv.stg.in .h2i{transform-origin:0 0;animation:yc-mask 1300ms cubic-bezier(.16,1,.3,1) 200ms backwards}
.stg>:nth-child(2){--i:1}.stg>:nth-child(3){--i:2}.stg>:nth-child(4){--i:3}.stg>:nth-child(5){--i:4}.stg>:nth-child(6){--i:5}.stg>:nth-child(7){--i:6}.stg>:nth-child(8){--i:7}.stg>:nth-child(9){--i:8}.stg>:nth-child(10){--i:9}.stg>:nth-child(n+11){--i:10}
@keyframes yc-rise{from{opacity:0;transform:translate3d(0,56px,0) scale(.96)}to{opacity:1;transform:none}}
@keyframes yc-mask{from{transform:translate3d(0,calc(100% + .45em),0) rotate(2deg)}to{transform:none}}
@media (max-width:639px){
.js main>.sec>.w{translate:0 calc((1 - var(--e,1)) * 32px);scale:none;opacity:calc(.45 + var(--e,1) * .55)}
.js .gl{translate:0 calc(var(--c,0) * var(--gy,-140) * .35px)}
.js .hero-in{translate:0 calc(var(--hx,0) * 80px);scale:none}
.js .ftr{scale:calc(.97 + var(--e,1) * .03)}
.js .ftr>.w{translate:0 calc((1 - var(--e,1)) * 32px)}
.js .rv{transform:translate3d(0,28px,0)}
.js .rv.in{transform:none}
.js .rv.stg.in>*{animation-name:yc-rise-s;animation-duration:900ms;animation-delay:calc(var(--i,0) * 45ms)}
@keyframes yc-rise-s{from{opacity:0;transform:translate3d(0,28px,0)}to{opacity:1;transform:none}}
}
/* lite: phones and low-end devices — lighter blur, no backdrop blur, no ambient drift; .off: sections far from the viewport pause their CSS animations */
.lite .hc-run::before{box-shadow:none}
.lite .gl.dr,.lite .ks-mk,.lite .kf-c .kf-mk{animation:none}
.lite .hdr.stuck{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(14,16,19,.95)}
.s.light.lite .hdr.stuck{background:rgba(255,255,255,.96)}
.lite .kd-pvw.wait{filter:grayscale(1)}
.lite .kd-mk .kd-scr,.lite .kd-mk .kd-tap,.lite .kd-mk .kd-qrs,.lite .kd-mk .kd-halo,.lite .kd-mk .kd-pin,.lite .kd-mk .kd-live{animation:none}
.off *,.off *::before,.off *::after{animation-play-state:paused !important}
.no-motion *,.no-motion *::before,.no-motion *::after{animation:none !important;transition:none !important}
.no-motion .rv{opacity:1 !important;transform:none !important}
.no-motion .h2i{transform:none !important}
.no-motion .rv,.no-motion .rv.stg>*,.no-motion .rv .h2{filter:none !important;clip-path:none !important;opacity:1 !important}
.no-motion .sec>.w,.no-motion .ftr,.no-motion .ftr>.w,.no-motion .fword,.no-motion .hero-in{translate:none !important;scale:none !important;opacity:1 !important}
.no-motion .gl{translate:none !important;scale:none !important}
.no-motion .hc-run{display:none}
@media (prefers-reduced-motion:reduce){.s *{animation:none !important;transition:none !important}.js .rv{opacity:1;transform:none}
.js .rv,.js .rv.stg>*,.js .rv .h2,.js .h2{opacity:1 !important;filter:none !important;clip-path:none !important}.js .h2i{transform:none !important}
.js main>.sec>.w,.js .ftr,.js .ftr>.w,.js .fword,.js .hero-in{translate:none !important;scale:none !important;opacity:1 !important}
.js .gl{translate:none !important;scale:none !important}.hc-run{display:none}}
/* ── large screens (wider than 1440px): fluid scale ──
   --u = 1 up to 1440px, then grows with the viewport (≈1.15 @1920, ≈1.37 @2560×1440, ≈1.8 @3840×2160); the height term keeps
   ultrawide / short screens (3440×1440, 2560×1080) from over-scaling. Everything in the page scales by --u via `zoom`, so the
   ≤1440 design is reproduced proportionally; the container additionally widens (88vw, capped at 190vh for ultrawide aspect).
   Inside the zoomed boxes 1vw renders as u·vw, so viewport-relative values below are divided by --u (--vw: 1vw in zoomed space,
   capped at 2.2vh so the soft glows don't balloon on ultrawide; overflow-y:clip keeps the larger glows from lengthening the page).
   Browsers without zoom or CSS trig skip this whole block and keep the 1440 layout. */
@property --u{syntax:'<number>';inherits:true;initial-value:1}
@media (min-width:1441px){@supports (zoom:2) and (width:calc(tan(atan2(1px,1px)) * 1px)){
.s{--u:clamp(1,tan(atan2(min(1px + (100vw - 1440px) * .00033,1px + (100vh - 800px) * .0006),1px)),2);--vw:calc(min(1vw,2.2vh) / var(--u));overflow-y:clip}
.s>.hdr,.s>main,.s>.ftr,.s .mnav,.s .toast,.s .fab{zoom:var(--u)}
.w{max-width:max(1320px,calc(min(88vw,190vh) / var(--u)))}
.hero{min-height:max(760px,calc(100vh / var(--u)))}
.gl-st{width:calc(80 * var(--vw));left:calc(-34 * var(--vw))}
.gl-cl{width:calc(76 * var(--vw));right:calc(-32 * var(--vw))}
.gl-fm{width:calc(76 * var(--vw));left:calc(-32 * var(--vw))}
.gl-ft{width:calc(104 * var(--vw));margin-left:calc(-52 * var(--vw))}
.cg1{width:calc(72 * var(--vw));right:calc(-26 * var(--vw))}
.cg2{width:calc(50 * var(--vw));left:calc(-20 * var(--vw))}
.kv-g1{width:calc(80 * var(--vw));right:calc(-24 * var(--vw));margin-top:calc(-40 * var(--vw))}
.kw-g1{width:calc(78 * var(--vw));left:calc(-34 * var(--vw))}
.kd-g1{width:calc(72 * var(--vw));right:calc(-28 * var(--vw))}
.kd-g2{width:calc(50 * var(--vw));left:calc(-22 * var(--vw))}
}}
/* ── full-screen sections (desktop: ≥1024px wide, landscape, ≥560px tall) ──
   Every section (hero … contact) and the footer is exactly one screen tall. --sh = the scrolling viewport's height (100svh, or the
   design-canvas scroll container's clientHeight written by JS as --vh); --h1 = 1% of it in the section's (big-screen-zoomed) px.
   The sticky header overlaps the top --hh of each screen, so the content box is the screen minus the header, with even padding,
   and its wrapper (.w / .hero-in) is exactly that tall and vertically centred. Type, gaps and card sizes are height-aware, the
   bento grids get 1fr rows so visuals grow on tall screens, and as a final safety net JS measures each wrapper's natural height
   and, if it still doesn't fit (very short or narrow screens), scales it with --fz (CSS zoom; max-width is divided by --fz so the
   scaled content keeps the full container width). */
.s{--wmax:1320px;--sh:var(--vh,100vh)}
@supports (height:100svh){.s{--sh:var(--vh,100svh)}}
@media (min-width:1441px){@supports (zoom:2) and (width:calc(tan(atan2(1px,1px)) * 1px)){.s{--wmax:max(1320px,calc(min(88vw,190vh) / var(--u)))}}}
@media (min-width:1024px) and (min-height:560px) and (orientation:landscape){
.s{--h1:calc(var(--sh) / 100 / var(--u));--hh:76px;--pp:clamp(14px,calc(3.4 * var(--h1)),52px)}
.s main>section[id]{scroll-margin-top:0}
main>.sec{height:calc(100 * var(--h1));padding:calc(var(--hh) + var(--pp)) 0 var(--pp);display:flex;flex-direction:column;justify-content:center;--avail:calc(100 * var(--h1) - var(--hh) - 2 * var(--pp))}
main>.sec>.w,.hero>.hero-in{flex:none;zoom:var(--fz,1);height:calc(var(--avail) / var(--fz,1));max-width:calc(var(--wmax) / var(--fz,1));display:flex;flex-direction:column;justify-content:center}
.fit-m>.w,.fit-m>.hero-in{height:auto !important}
.h2{font-size:clamp(30px,min(1rem + 3.6vw,calc(6.8 * var(--h1))),76px)}
.lead{font-size:clamp(15px,min(1rem + .45vw,calc(2.3 * var(--h1))),22px)}
.lab{font-size:clamp(11px,calc(1.4 * var(--h1)),12px)}
.btn{height:clamp(46px,calc(6 * var(--h1)),56px)}
/* hero */
.hero{height:calc(100 * var(--h1));min-height:0;--avail:calc(100 * var(--h1) - var(--hh))}
.hero>.hero-in{padding-top:clamp(8px,calc(2.8 * var(--h1)),40px);padding-bottom:clamp(14px,calc(4.6 * var(--h1)),60px)}
.hc-ra{padding-bottom:clamp(10px,calc(3.2 * var(--h1)),32px)}
.hc-fa{font-size:clamp(13px,calc(1.6 * var(--h1)),14px)}
.hc-h{font-size:clamp(44px,min(1rem + 6.4vw,calc(12.4 * var(--h1))),148px)}
.hc-mk svg{max-width:clamp(140px,calc(31 * var(--h1)),390px);margin-top:clamp(4px,calc(1.2 * var(--h1)),12px)}
.hc-mid{gap:clamp(14px,calc(3 * var(--h1)),28px);padding:clamp(12px,calc(3 * var(--h1)),28px) 0 clamp(16px,calc(4.4 * var(--h1)),44px)}
.hc-lead{font-size:clamp(15px,calc(2.1 * var(--h1)),21px);max-width:calc(600px + 6 * var(--h1))}
.hc-tl{--tlp:clamp(16px,calc(2.8 * var(--h1)),28px)}
.hc-d{gap:clamp(3px,calc(.6 * var(--h1)),6px)}
.hc-d b{font-size:clamp(17px,calc(2.3 * var(--h1)),21px)}
.hc-d small{font-size:clamp(13px,calc(1.6 * var(--h1)),14.5px)}
/* stats */
.ks-hd{gap:12px 48px}
.ks-hd .col{gap:clamp(10px,calc(2.2 * var(--h1)),24px)}
.ks-bn{flex:1 0 auto;margin-top:clamp(14px,calc(3.8 * var(--h1)),48px);grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:auto;grid-template-rows:repeat(2,auto);align-content:stretch;gap:clamp(10px,calc(1.6 * var(--h1)),16px)}
.ks-a{grid-column:1/span 3;grid-row:1/span 2}.ks-c{grid-column:4/span 4;grid-row:1}.ks-b{grid-column:8/span 5;grid-row:1}.ks-d{grid-column:4/span 3;grid-row:2}.ks-e{grid-column:7/span 3;grid-row:2}.ks-f{grid-column:10/span 3;grid-row:2}
.ks-tags{min-width:0}.ks-e .ks-tags{gap:clamp(5px,calc(.7 * var(--h1)),8px)}.ks-e .ks-tags span{height:clamp(26px,calc(3.3 * var(--h1)),34px);padding:0 clamp(9px,calc(1.2 * var(--h1)),13px);font-size:clamp(13px,calc(1.6 * var(--h1)),15px)}
.ks-e .ks-tt{font-size:clamp(18px,calc(2.6 * var(--h1)),32px)}
.ks-pg{width:min(58%,calc(23 * var(--h1)));gap:clamp(3px,calc(.45 * var(--h1)),5px)}.ks-pj{gap:12px clamp(14px,calc(2 * var(--h1)),24px)}
.ks-tt{font-size:clamp(19px,calc(2.9 * var(--h1)),36px)}
.ks-in{gap:clamp(6px,calc(.8 * var(--h1)),8px)}.ks-in li{min-height:clamp(32px,calc(4.4 * var(--h1)),44px);font-size:clamp(13px,calc(1.75 * var(--h1)),15px);padding-block:clamp(4px,calc(.6 * var(--h1)),6px)}
.ks-cd{padding:clamp(16px,calc(2.8 * var(--h1)),32px);gap:clamp(8px,calc(1.4 * var(--h1)),20px)}
.ks-n{font-size:clamp(38px,calc(7.2 * var(--h1)),88px)}
.ks-a .ks-n{font-size:clamp(120px,calc(21 * var(--h1)),340px)}
.ks-n.ks-now{font-size:clamp(24px,calc(3.6 * var(--h1)),42px)}
.ks-lng{font-size:clamp(26px,calc(3.8 * var(--h1)),56px)}
.ks-cd p{font-size:clamp(14px,calc(1.85 * var(--h1)),17px)}
.ks-a p{font-size:clamp(15px,calc(2.05 * var(--h1)),19px)}
.ks-ic{width:clamp(40px,calc(5.2 * var(--h1)),52px);height:clamp(40px,calc(5.2 * var(--h1)),52px)}
.ks-d .zap{width:clamp(52px,calc(7.2 * var(--h1)),72px);height:clamp(52px,calc(7.2 * var(--h1)),72px)}
.ks-tags span{height:clamp(30px,calc(3.6 * var(--h1)),36px)}
/* services: header + panel row that fills the rest of the screen */
.kx-top{margin-bottom:clamp(14px,calc(3.4 * var(--h1)),40px);gap:12px 48px}
.kx-ttl{gap:clamp(10px,calc(2.2 * var(--h1)),24px)}
.kx .h2{font-size:clamp(30px,min(1rem + 2.4vw,calc(5.6 * var(--h1))),64px)}
.kx-row{flex:1 1 auto;min-height:clamp(280px,calc(42 * var(--h1)),900px);--kxg:clamp(8px,calc(1.4 * var(--h1)),14px);--kxp:clamp(16px,calc(2.8 * var(--h1)),28px)}
.kx-hd .ic{width:clamp(36px,calc(5 * var(--h1)),44px);height:clamp(36px,calc(5 * var(--h1)),44px)}
.kx-tl{font-size:clamp(20px,calc(3 * var(--h1)),30px)}
.kx-p:not(.on) .kx-ts{font-size:clamp(18px,calc(2.8 * var(--h1)),26px)}
.kx-mi p{margin-top:clamp(6px,calc(1.1 * var(--h1)),12px);font-size:clamp(14px,calc(1.9 * var(--h1)),16px)}
.kx-mi ul{margin-top:clamp(10px,calc(1.8 * var(--h1)),18px);gap:clamp(6px,calc(.8 * var(--h1)),8px)}
.kx-mi li{font-size:clamp(13px,calc(1.75 * var(--h1)),14px);padding:clamp(5px,calc(.9 * var(--h1)),8px) clamp(9px,calc(1.4 * var(--h1)),12px)}
.kx .kx-cta{margin-top:clamp(10px,calc(2 * var(--h1)),18px);height:clamp(44px,calc(5.6 * var(--h1)),52px)}
/* why: 2-row bento (24 columns) */
.kw-top{margin-bottom:clamp(14px,calc(3.6 * var(--h1)),48px);gap:12px 40px}
.kw-hd{gap:clamp(10px,calc(2.2 * var(--h1)),24px)}
.kw-bn{flex:1 0 auto;grid-template-columns:repeat(24,minmax(0,1fr));grid-auto-rows:auto;grid-template-rows:repeat(2,auto);align-content:stretch;gap:clamp(10px,calc(1.6 * var(--h1)),16px)}
.kw-ba{grid-column:span 7;grid-row:span 2}.kw-bb{grid-column:span 6}.kw-bc{grid-column:span 5}.kw-bd{grid-column:span 6}.kw-be{grid-column:span 4}.kw-bf{grid-column:span 7}.kw-bg{grid-column:span 6}
.kw-hd{flex:1 1 560px}.kw-top>.lead{max-width:440px;flex:0 1 440px}
.kw-bg .btn{padding:0 8px 0 22px;gap:12px;font-size:15px}
.kw-b{padding:clamp(16px,calc(2.6 * var(--h1)),30px);gap:clamp(8px,calc(1.2 * var(--h1)),12px)}
.kw-b h3{font-size:clamp(18px,calc(2.6 * var(--h1)),24px)}
.kw-b p{font-size:clamp(14px,calc(1.8 * var(--h1)),16px)}
.kw-bg h3{font-size:clamp(21px,calc(3.1 * var(--h1)),30px)}
.kw-doc{margin:clamp(6px,calc(1.8 * var(--h1)),18px) 0 clamp(8px,calc(2.6 * var(--h1)),28px);padding:clamp(12px,calc(1.8 * var(--h1)),18px) clamp(14px,calc(2 * var(--h1)),20px) clamp(10px,calc(1.6 * var(--h1)),16px)}
.kw-doc-h{padding-bottom:clamp(8px,calc(1.2 * var(--h1)),12px)}
.kw-doc-r{padding:clamp(5px,calc(.85 * var(--h1)),11px) 0;font-size:clamp(13px,calc(1.7 * var(--h1)),15px)}
.kw-doc-s{padding-top:clamp(8px,calc(1.4 * var(--h1)),14px)}
.kw-stamp{width:clamp(40px,calc(5.2 * var(--h1)),52px);height:clamp(40px,calc(5.2 * var(--h1)),52px)}
.kw-ic{width:clamp(42px,calc(5.6 * var(--h1)),56px);height:clamp(42px,calc(5.6 * var(--h1)),56px)}
.kw-fx{height:clamp(36px,calc(4.3 * var(--h1)),48px)}
.kw-fix{gap:clamp(6px,calc(.8 * var(--h1)),8px)}
.s .kw-bc .zap{width:clamp(52px,calc(7.2 * var(--h1)),72px);height:clamp(52px,calc(7.2 * var(--h1)),72px)}
.kw-lg{gap:6px}.kw-lg span{height:clamp(34px,calc(4.4 * var(--h1)),44px);padding:0 11px;font-size:13px}
.kw-tl span{font-size:11px;gap:8px}.kw-tl i{margin:0 8px;min-width:10px}
.kw-row{padding-top:4px}
/* clients */
.kl-w{gap:clamp(14px,calc(3 * var(--h1)),40px)}
#clients .head{gap:12px 48px;grid-template-columns:minmax(0,1fr) minmax(0,3fr)}
#clients .h2{font-size:clamp(28px,min(1rem + 3.6vw,calc(5.4 * var(--h1))),68px)}
.who{flex:1 0 auto}
.wtabs{gap:clamp(6px,calc(.8 * var(--h1)),8px)}
.wt{flex:1 0 auto;min-height:clamp(46px,calc(6.6 * var(--h1)),84px);border-radius:clamp(14px,calc(2 * var(--h1)),20px)}
.wt .t{font-size:clamp(16px,calc(2.2 * var(--h1)),22px)}
.wpanel{min-height:0;padding:clamp(20px,calc(3.2 * var(--h1)),48px);gap:clamp(10px,calc(1.8 * var(--h1)),24px)}
.wpanel .big{font-size:clamp(120px,calc(22 * var(--h1)),260px)}
.wpanel .h3{font-size:clamp(23px,min(1rem + 1.8vw,calc(3.4 * var(--h1))),44px) !important}
.wpanel .lead{font-size:clamp(15px,min(1rem + .45vw,calc(2 * var(--h1))),22px)}
.inds{gap:clamp(10px,calc(1.6 * var(--h1)),16px)}
.ind{min-height:0;flex-direction:row;align-items:flex-start;gap:clamp(12px,calc(1.6 * var(--h1)),18px);padding:clamp(14px,calc(2.2 * var(--h1)),24px)}
.ind svg{flex:none;width:clamp(28px,calc(3.6 * var(--h1)),40px);height:clamp(28px,calc(3.6 * var(--h1)),40px)}
.ind .h3{font-size:clamp(17px,calc(2.2 * var(--h1)),22px) !important}
.ind .body{font-size:clamp(13px,calc(1.7 * var(--h1)),15px) !important}
.kc{padding-top:clamp(12px,calc(2.6 * var(--h1)),32px)}
.kc-lg{height:clamp(56px,calc(8 * var(--h1)),96px);width:clamp(170px,calc(19 * var(--h1)),216px)}
/* formats: header + CTA | tall card | two cards */
.kf-g{flex:1 0 auto;grid-template-rows:repeat(2,auto);align-content:stretch;gap:clamp(10px,calc(1.6 * var(--h1)),16px)}
.kf-hd{grid-column:1/span 4;grid-row:1;padding:0;gap:clamp(12px,calc(2 * var(--h1)),24px);justify-content:flex-start}
.kf-hd .col{gap:clamp(10px,calc(2.2 * var(--h1)),24px) !important}
.kf-hd .h2{font-size:clamp(28px,min(1rem + 2.6vw,calc(5.4 * var(--h1))),64px)}
.kf-a{grid-column:5/span 4;grid-row:1/span 2}
.kf-b{grid-column:9/span 4;grid-row:1}
.kf-c{grid-column:9/span 4;grid-row:2}
.kf-d{grid-column:1/span 4;grid-row:2}
.kf-bx{padding:clamp(18px,calc(3 * var(--h1)),36px);gap:clamp(8px,calc(1.5 * var(--h1)),18px)}
.kf-t3{font-size:clamp(21px,calc(3.1 * var(--h1)),34px)}
.kf-ds,.kf-note{font-size:clamp(14px,calc(1.85 * var(--h1)),17px)}
.kf-lp{flex-direction:column;flex-wrap:nowrap;gap:clamp(4px,calc(.8 * var(--h1)),8px)}
.kf-lp li{min-height:0;padding:0;border:0;font-size:clamp(14px,calc(1.8 * var(--h1)),15px)}
.kf-q{font-size:clamp(18px,calc(2.8 * var(--h1)),26px)}
.kf-art{padding:clamp(10px,calc(2 * var(--h1)),20px) clamp(14px,calc(2.4 * var(--h1)),24px)}
/* products */
.kd-hd{margin-bottom:clamp(14px,calc(3.4 * var(--h1)),48px);gap:12px 48px}
.kd-hd .lab{margin-bottom:clamp(10px,calc(2.4 * var(--h1)),28px)}
.kd-app{flex:1 0 auto;display:flex;flex-direction:column}
.kd-body{flex:1 0 auto}
.kd-tbar{height:clamp(36px,calc(4.6 * var(--h1)),48px)}
.kd-side{padding:clamp(12px,calc(2 * var(--h1)),20px) 14px}
.kd-sb{padding:clamp(8px,calc(1.4 * var(--h1)),14px) 12px}
.kd-main{padding:clamp(16px,calc(3.4 * var(--h1)),36px);gap:clamp(20px,calc(3.6 * var(--h1)),40px);align-items:center}
.kd-info{gap:clamp(6px,calc(1.3 * var(--h1)),14px)}
.kd-info h3{font-size:clamp(22px,calc(3.2 * var(--h1)),32px)}
.kd-steps{margin-top:clamp(2px,calc(1.2 * var(--h1)),14px)}
.kd-st{--sp:clamp(4px,calc(.95 * var(--h1)),11px);padding:var(--sp) 0}
.kd-st::before{top:calc(-1 * var(--sp));height:calc(2 * var(--sp))}
.kd-ctl{padding-top:clamp(8px,calc(1.8 * var(--h1)),18px)}
.kd-ctl .btn{height:clamp(44px,calc(5.6 * var(--h1)),52px)}
.kd-pvw{max-width:calc(40 * var(--h1) * 1.6364);margin-inline:auto}
.kd-stt{justify-content:center;margin-top:clamp(8px,calc(1.4 * var(--h1)),14px)}
.kd-mq{margin-top:clamp(12px,calc(3 * var(--h1)),40px);padding:clamp(8px,calc(1.8 * var(--h1)),22px) 0}
.kd-mq span{font-size:clamp(18px,calc(2.6 * var(--h1)),28px)}
/* contact */
.ctw{gap:clamp(14px,calc(3.6 * var(--h1)),40px)}
.cpre{font-size:clamp(26px,min(1rem + 2.4vw,calc(5.6 * var(--h1))),56px)}
.s .cbig{font-size:clamp(56px,min(10vw,calc(17 * var(--h1))),160px)}
.cor{padding-top:clamp(14px,calc(3.2 * var(--h1)),32px)}
/* footer: its own closing screen (outer box incl. the bottom margin = one screen) */
.ftr{height:calc(100 * var(--h1) - clamp(8px,1.1vw,16px));display:flex;flex-direction:column}
.ftr-w{flex:1 1 auto;min-height:0;justify-content:space-between;padding-block:calc(var(--hh) + clamp(16px,calc(5 * var(--h1)),72px)) clamp(16px,calc(3.6 * var(--h1)),40px);gap:clamp(16px,calc(3 * var(--h1)),40px)}
.ft-h{font-size:clamp(28px,min(1rem + 2.6vw,calc(6.6 * var(--h1))),72px);max-width:620px}
.ftr-w>.fg4{margin-block:auto}
.fword-wrap{flex:none}
}
/* the floating CTA would sit on top of every screen's content; the sticky header keeps «Связаться» / «Контакты» one click away */
@media (min-width:1024px) and (min-height:560px) and (orientation:landscape){.s .fab{display:none}}
@media (min-width:1024px) and (min-height:560px) and (max-height:839px) and (orientation:landscape){.kw-doc-s,.kd-mq{display:none}.kw-doc-r:last-of-type{border-bottom:0}}
/* browsers without CSS zoom can't scale an over-tall screen down: fall back to content height (at least one screen) */
@media (min-width:1024px) and (min-height:560px) and (orientation:landscape){
.nofit main>.sec,.nofit .hero{height:auto;min-height:calc(100 * var(--h1))}
.nofit main>.sec>.w,.nofit .hero>.hero-in{height:auto}
.nofit .ftr{height:auto;min-height:calc(100 * var(--h1) - clamp(8px,1.1vw,16px))}
}

html{background:#0E1013}html[data-theme=light],html[data-theme=light] body{background:#F4F6F9}
