:root { --ink:#171917; --paper:#f3f1eb; --lime:#d4ed4c; --muted:#777970; --line:#d6d4cd; --white:#fff; --display:"Unbounded", sans-serif; --body:"Manrope", Arial, sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--body); font-size:16px; line-height:1.45; }
a { color:inherit; text-decoration:none; }
button,input,textarea { font:inherit; }
button { cursor:pointer; }
.container { width:min(100% - 64px, 1280px); margin:auto; }
.skip-link { position:fixed; top:12px; left:12px; z-index:20; padding:10px 14px; background:var(--lime); color:var(--ink); transform:translateY(-150%); }
.skip-link:focus { transform:none; }
:focus-visible { outline:3px solid var(--lime); outline-offset:4px; }
.header { position:absolute; top:0; z-index:10; width:100%; color:var(--paper); transition:background .25s,color .25s; }
.header.is-sticky { position:fixed; background:rgba(23,25,23,.94); backdrop-filter:blur(12px); }
.header__inner { min-height:86px; display:flex; align-items:center; justify-content:space-between; gap:32px; }
.logo { font:700 20px/1 var(--display); letter-spacing:-1px; white-space:nowrap; }.logo span { color:var(--lime); }
.nav { display:flex; gap:29px; margin-left:auto; }.nav a,.header__cta { font-size:13px; font-weight:700; transition:color .2s; }.nav a:hover { color:var(--lime); }.header__cta span,.text-link span { color:var(--lime); font-size:18px; }.header__cta { padding-left:28px; border-left:1px solid rgba(255,255,255,.25); }.header__cta:hover { color:var(--lime); }
.menu-button { display:none; border:0; background:transparent; padding:8px 0; width:32px; }.menu-button span { display:block; height:2px; margin:5px 0; background:currentColor; }
.hero { color:var(--paper); background:var(--ink); padding:159px 0 31px; overflow:hidden; }.eyebrow,.section-label { margin:0; font-size:11px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }.eyebrow { color:#a4a69f; }.section-label { color:#62655d; }.hero__grid { display:grid; grid-template-columns:1.7fr .57fr; gap:50px; align-items:end; margin-top:39px; }.hero__title { max-width:950px; margin:0; font:600 clamp(37px,5.3vw,76px)/1.14 var(--display); letter-spacing:-.065em; }.hero h1 em,.contact h2 em { color:var(--lime); font-style:normal; }.hero__aside { max-width:300px; padding-bottom:8px; }.hero__aside p { margin:0 0 27px; color:#c9cac4; font-size:15px; line-height:1.58; }.button { display:inline-flex; align-items:center; justify-content:center; gap:20px; min-height:53px; padding:0 20px; border:1px solid transparent; font-weight:800; font-size:13px; transition:transform .2s,background .2s,color .2s; }.button:hover { transform:translateY(-2px); }.button--lime { background:var(--lime); color:var(--ink); }.button--lime:hover { background:#e1f572; }.button span { font-size:19px; }.hero__art { position:relative; height:285px; margin-top:58px; border-top:1px solid #4d504c; border-bottom:1px solid #4d504c; }.hero__art svg { position:absolute; inset:0; width:100%; height:100%; overflow:visible; }.hero__art path { fill:none; stroke:#80837b; stroke-width:1.5; }.hero__art circle { fill:var(--lime); }.art-card { position:absolute; display:flex; flex-direction:column; justify-content:space-between; width:151px; height:113px; padding:14px; border:1px solid #70736b; background:#202220; }.art-card span { color:#a4a69f; font-size:11px; }.art-card strong { font:500 14px var(--display); letter-spacing:-.06em; }.art-card i { width:31px; height:6px; background:var(--lime); }.art-card--one { left:13%; top:143px; }.art-card--two { left:44%; top:33px; }.art-card--three { right:11%; top:151px; }.hero__footer { display:grid; grid-template-columns:1fr 1fr 1fr; margin-top:20px; color:#a4a69f; font-size:12px; }.hero__footer p { margin:0; line-height:1.5; }.hero__footer p:last-child { text-align:right; }.scroll-link { justify-self:center; color:var(--paper); font-weight:700; }.scroll-link span { color:var(--lime); margin-left:8px; }
.section { padding:137px 0; }.manifest { padding:104px 0 112px; }.manifest__grid { display:grid; grid-template-columns:1fr 2fr; gap:24px; }.manifest__text { max-width:800px; margin:0; font:500 clamp(27px,3.3vw,46px)/1.25 var(--display); letter-spacing:-.06em; }.manifest mark { background:var(--lime); color:var(--ink); padding:0 .1em; }.section-heading { display:grid; grid-template-columns:1fr 1.75fr .72fr; gap:35px; align-items:end; margin-bottom:68px; }.section-heading h2,.proof h2,.faq h2,.contact h2 { margin:0; font:600 clamp(32px,4.2vw,60px)/1.14 var(--display); letter-spacing:-.07em; }.section-heading > p:last-child { margin:0 0 4px; color:#4f524b; font-size:15px; line-height:1.55; }.section-heading--line { padding-bottom:29px; border-bottom:1px solid var(--line); }.text-link { align-self:end; justify-self:start; font-size:13px; font-weight:800; border-bottom:1px solid var(--ink); padding-bottom:3px; }.text-link:hover { color:#5e6c0f; }
.services { background:#e6e3dc; }.services__list { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #c2c1ba; }.service-card { position:relative; min-height:410px; padding:23px 28px 27px; border-right:1px solid #c2c1ba; display:flex; flex-direction:column; }.service-card:first-child { border-left:1px solid #c2c1ba; }.service-card:hover { background:var(--ink); color:var(--paper); }.service-card:hover p,.service-card:hover .service-card__number { color:#bfc1b9; }.service-card__number { color:#5b5e56; font-size:12px; font-weight:700; }.service-card__icon { position:relative; width:92px; height:92px; margin:39px 0 33px; }.service-card h3 { margin:0; font:600 25px/1.2 var(--display); letter-spacing:-.07em; }.service-card p { max-width:295px; margin:19px 0; color:#4b4e47; font-size:14px; line-height:1.55; }.service-card a { margin-top:auto; font-size:13px; font-weight:800; }.service-card a span { color:#708010; font-size:18px; }.icon-orbit { border:1px solid currentColor; border-radius:50%; }.icon-orbit i,.icon-orbit b { position:absolute; left:17px; top:43px; width:56px; height:1px; background:currentColor; transform:rotate(35deg); }.icon-orbit b { transform:rotate(-35deg); }.icon-orbit em { position:absolute; width:12px; height:12px; border-radius:50%; background:var(--lime); top:39px; left:40px; }.icon-window { border:1px solid currentColor; }.icon-window:before { content:""; position:absolute; top:18px; width:100%; border-top:1px solid currentColor; }.icon-window i,.icon-window b,.icon-window em { position:absolute; width:8px; height:8px; top:5px; background:currentColor; }.icon-window i{left:7px}.icon-window b{left:19px}.icon-window em{left:31px}.icon-mobile { width:54px; margin-left:19px; border:1px solid currentColor; border-radius:7px; }.icon-mobile:before { content:""; position:absolute; left:19px; top:7px; width:14px; height:2px; background:currentColor; }.icon-mobile i { position:absolute; left:14px; top:31px; width:24px; height:24px; background:var(--lime); }.icon-mobile b { position:absolute; bottom:7px; left:22px; width:8px; height:8px; border:1px solid currentColor; border-radius:50%; }
.cases { background:var(--ink); color:var(--paper); }.cases .section-label { color:#9a9c94; }.cases .section-heading--line { border-color:#4b4d49; }.cases__grid { display:grid; grid-template-columns:1.5fr 1fr; gap:52px 25px; }.case__visual { height:350px; overflow:hidden; position:relative; }.case--large { grid-row:span 2; }.case--large .case__visual { height:587px; }.visual-kaskad { background:#b9b8ee; color:#202055; padding:31px; }.visual-kaskad__word { font:600 clamp(44px,6vw,87px)/1 var(--display); letter-spacing:-.08em; }.visual-kaskad__dash { display:block; margin-top:15px; font:600 40px var(--display); }.visual-kaskad__panel { position:absolute; right:9%; bottom:10%; width:48%; height:43%; padding:18px; background:#25245d; color:#f2efea; transform:rotate(-7deg); }.visual-kaskad__panel i { display:block; width:100%; height:7px; margin-bottom:10px; background:#7777b4; }.visual-kaskad__panel i:nth-child(2) { width:68%; }.visual-kaskad__panel i:nth-child(3) { width:85%; }.visual-kaskad__panel b { display:block; margin-top:44px; font:600 28px var(--display); letter-spacing:-.08em; }.visual-kaskad__panel em { font-size:11px; font-style:normal; }.visual-sfera { background:#f0b3c3; }.phone { position:absolute; left:20%; top:11%; z-index:2; width:42%; height:85%; padding:18px 14px; border:6px solid #191b19; border-radius:17px; background:#faf8f2; color:#191b19; box-shadow:12px 14px 0 rgba(23,25,23,.18); }.phone span { font-size:12px; font-weight:800; }.phone i { display:block; height:9px; margin-top:26px; background:#d7ed52; }.phone i:nth-of-type(2) { width:67%; margin-top:8px; background:#e6e4de; }.phone i:nth-of-type(3) { width:85%; margin-top:8px; background:#e6e4de; }.phone b { position:absolute; bottom:25px; font:700 17px var(--display); letter-spacing:-.08em; }.sphere { position:absolute; width:173px; height:173px; right:9%; bottom:-28px; border-radius:50%; background:#d3ed50; }.visual-atelier { background:#c6d5c1; padding:27px; color:#1c3022; }.visual-atelier > span { position:relative; z-index:2; font:600 30px/1.1 var(--display); letter-spacing:-.08em; }.blocks { position:absolute; right:0; bottom:0; width:72%; display:grid; grid-template-columns:repeat(3,1fr); gap:7px; transform:rotate(-14deg) translate(10%, 13%); }.blocks i { height:57px; background:#32694e; }.blocks i:nth-child(2),.blocks i:nth-child(5) { background:#d9ec51; }.case__meta { display:flex; justify-content:space-between; margin-top:16px; color:#a4a69f; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }.case h3 { margin:17px 0 6px; font:600 29px var(--display); letter-spacing:-.08em; }.case > p { min-height:42px; max-width:380px; margin:0; color:#c4c6be; font-size:14px; }.case__result { display:flex; align-items:baseline; gap:12px; margin-top:26px; }.case__result strong { color:var(--lime); font:600 34px var(--display); letter-spacing:-.08em; }.case__result span { color:#a4a69f; font-size:12px; }
.process { background:#e6e3dc; }.process__list { list-style:none; padding:0; margin:0; border-top:1px solid #c2c1ba; }.process__list li { display:grid; grid-template-columns:.4fr 1.2fr 1.2fr .6fr; gap:20px; padding:26px 0 29px; border-bottom:1px solid #c2c1ba; align-items:baseline; transition:padding .25s,background .25s; }.process__list li:hover { padding-left:18px; background:#d9e5ad; }.process__list span,.process__list b { color:#595c55; font-size:11px; }.process__list h3 { margin:0; font:600 24px var(--display); letter-spacing:-.07em; }.process__list p { margin:0; max-width:370px; font-size:14px; color:#4f524b; }.process__list b { font-weight:700; text-align:right; }
.proof { padding-top:123px; }.proof__grid,.faq__grid,.contact__grid { display:grid; grid-template-columns:1fr 1fr; gap:12%; }.proof__content > p { max-width:500px; margin:2px 0 39px; color:#4f524b; font-size:18px; line-height:1.55; }.tech-list { display:flex; flex-wrap:wrap; gap:9px; }.tech-list span { padding:7px 11px; border:1px solid #bfc0b8; font-size:12px; font-weight:700; }.proof__stats { display:flex; gap:65px; margin-top:81px; border-top:1px solid var(--line); }.proof__stats p { margin:18px 0 0; }.proof__stats strong { display:block; font:600 38px var(--display); letter-spacing:-.09em; }.proof__stats span { color:#51544d; font-size:12px; line-height:1.35; }
.faq { padding-top:50px; }.faq__list { border-top:1px solid var(--line); }.faq details { border-bottom:1px solid var(--line); }.faq summary { position:relative; display:flex; justify-content:space-between; align-items:center; padding:24px 0; list-style:none; cursor:pointer; font:700 16px var(--body); }.faq summary::-webkit-details-marker { display:none; }.faq summary span,.faq summary span:after { display:block; width:17px; border-top:1.5px solid var(--ink); }.faq summary span:after { content:""; transform:rotate(90deg); transition:transform .2s; }.faq details[open] summary span:after { transform:rotate(0); }.faq details p { max-width:535px; margin:0 30px 24px 0; color:#5d6059; font-size:14px; line-height:1.6; }
.contact { padding:92px 0; background:var(--lime); }.contact h2 { margin-top:32px; }.contact__note { max-width:370px; margin:32px 0 0; color:#526010; font-size:15px; }.contact-form { padding-top:2px; }.contact-form label { display:block; margin-bottom:25px; color:#55630e; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }.contact-form input:not([type="checkbox"]),.contact-form textarea { display:block; width:100%; padding:10px 0 11px; border:0; border-bottom:1px solid #758620; outline:0; color:var(--ink); background:transparent; font-size:17px; font-weight:600; resize:vertical; }.contact-form input:not([type="checkbox"])::placeholder,.contact-form textarea::placeholder { color:#6a791c; opacity:1; }.contact-form input:not([type="checkbox"]):focus,.contact-form textarea:focus { border-color:var(--ink); }.contact-form__bottom { display:flex; align-items:center; gap:25px; margin-top:28px; }.button--dark { background:var(--ink); color:var(--paper); flex-shrink:0; }.button--dark:hover { background:#353936; }.contact-form__bottom p { margin:0; max-width:245px; color:#5b6a11; font-size:11px; line-height:1.45; }.contact-form__bottom a { border-bottom:1px solid currentColor; }.form-status { margin:14px 0 0; min-height:20px; font-size:13px; font-weight:800; }
.footer { background:var(--ink); color:var(--paper); padding:31px 0 25px; }.footer__top { display:grid; grid-template-columns:1fr auto; align-items:center; padding-bottom:73px; }.footer__top > span { color:#a4a69f; font-size:12px; font-weight:700; }.footer .logo span { color:var(--lime); font-size:inherit; font-weight:inherit; }.footer__bottom { display:flex; justify-content:space-between; padding-top:18px; border-top:1px solid #4c4f49; color:#9fa199; font-size:11px; }.footer__bottom a:hover { color:var(--lime); }
.reveal { animation:appear .7s both; }.hero__grid .reveal { animation-delay:.1s; }.hero__art { animation-delay:.2s; }.hero__footer { animation-delay:.3s; }@keyframes appear { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }
@media (max-width:900px) { .container { width:min(100% - 48px, 1280px); }.hero__title { font-size:clamp(40px,6.5vw,60px); }.hero__grid { grid-template-columns:1.45fr .75fr; gap:26px; }.nav { gap:16px; }.services__list { grid-template-columns:1fr; }.service-card { min-height:300px; border-left:1px solid #c2c1ba; border-bottom:1px solid #c2c1ba; }.service-card__icon { position:absolute; right:25px; top:27px; margin:0; }.service-card h3 { margin-top:46px; }.service-card p { max-width:60%; }.cases__grid { gap:40px 20px; }.case--large .case__visual { height:450px; }.proof__grid,.faq__grid,.contact__grid { gap:8%; }.process__list li { grid-template-columns:.35fr 1fr 1.15fr .65fr; }.contact-form__bottom { align-items:flex-start; flex-direction:column; gap:14px; } }
@media (max-width:680px) { .container { width:min(100% - 36px, 1280px); }.header__inner { min-height:72px; }.header__cta { display:none; }.menu-button { display:block; position:relative; z-index:2; }.nav { position:fixed; inset:0; display:flex; flex-direction:column; justify-content:center; gap:27px; padding:28px; background:var(--ink); color:var(--paper); opacity:0; visibility:hidden; transition:opacity .2s,visibility .2s; }.nav.is-open { opacity:1; visibility:visible; }.nav a { font:600 26px var(--display); letter-spacing:-.07em; }.menu-button[aria-expanded="true"] span:first-child { transform:translateY(3.5px) rotate(45deg); }.menu-button[aria-expanded="true"] span:last-child { transform:translateY(-3.5px) rotate(-45deg); }.hero { padding-top:125px; }.eyebrow { font-size:9px; }.hero__grid { display:block; margin-top:28px; }.hero__title { font-size:clamp(35px,10vw,51px); line-height:1.16; }.hero__aside { margin-top:30px; }.hero__aside p { max-width:310px; }.hero__art { height:260px; margin-top:38px; }.art-card { width:112px; height:91px; padding:10px; }.art-card strong { font-size:11px; }.art-card--one { left:0; top:151px; }.art-card--two { left:calc(50% - 56px); top:29px; }.art-card--three { right:0; top:157px; }.hero__footer { grid-template-columns:1fr 1fr; gap:18px; }.hero__footer p:last-child { display:none; }.scroll-link { justify-self:end; }.manifest { padding:72px 0; }.manifest__grid { grid-template-columns:1fr; gap:25px; }.manifest__text { font-size:25px; }.section { padding:76px 0; }.section-heading { display:block; margin-bottom:39px; }.section-heading h2 { margin:22px 0 19px; font-size:36px; }.section-heading > p:last-child { max-width:380px; }.section-heading--line { padding-bottom:23px; }.services__list { margin:0 -18px; }.service-card { padding:20px 18px 24px; min-height:270px; }.service-card h3 { font-size:22px; }.service-card p { max-width:75%; }.cases__grid { display:block; }.case { margin-bottom:47px; }.case--large .case__visual,.case__visual { height:330px; }.visual-kaskad__word { font-size:50px; }.visual-kaskad__panel { width:57%; }.cases .section-heading .text-link { display:inline-block; margin-top:6px; }.case h3 { font-size:25px; }.process__list li { grid-template-columns:28px 1fr; gap:6px 10px; padding:18px 0 21px; }.process__list li:hover { padding-left:8px; }.process__list h3 { font-size:19px; }.process__list p { grid-column:2; margin-top:8px; }.process__list b { grid-column:2; text-align:left; margin-top:3px; }.proof { padding-top:76px; }.proof__grid,.faq__grid,.contact__grid { display:block; }.proof__content { margin-top:31px; }.proof__content > p { font-size:16px; }.proof__stats { gap:30px; margin-top:50px; }.proof__stats strong { font-size:29px; }.faq { padding-top:0; }.faq__list { margin-top:31px; }.faq summary { padding:20px 0; font-size:15px; }.contact { padding:67px 0; }.contact h2 { margin-top:25px; font-size:35px; }.contact__note { margin:25px 0 34px; }.contact-form__bottom { margin-top:26px; }.footer__top { grid-template-columns:1fr; gap:23px; padding-bottom:49px; }.footer__top > a:last-child { justify-self:start; }.footer__bottom { display:grid; grid-template-columns:1fr 1fr; gap:11px; }.footer__bottom a { grid-row:2; }.footer__bottom span:last-child { grid-row:2; text-align:right; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.reveal { animation:none; }.button,.nav { transition:none; } }

/* Kivelo product-format artwork: structural diagrams, not stock imagery. */
.visual-mobile-product { background:#c8d5c5; color:#183326; }.visual-mobile-product .device { position:absolute; width:45%; height:82%; left:28%; top:10%; padding:20px 16px; border:7px solid #1b211d; border-radius:20px; background:#f7f4ed; box-shadow:17px 17px 0 #6d8872; }.visual-mobile-product .device small { display:block; font-size:10px; font-weight:800; }.visual-mobile-product .device strong { display:block; margin-top:35px; font:600 clamp(20px,2.4vw,31px)/1.1 var(--display); letter-spacing:-.08em; }.visual-mobile-product .device i { display:block; height:7px; margin-top:28px; background:#d4ed4c; }.visual-mobile-product .device i + i { width:69%; margin-top:9px; background:#d8ddd5; }.visual-mobile-product .device b { position:absolute; left:16px; bottom:25px; font:600 20px/1 var(--display); letter-spacing:-.08em; }.visual-mobile-product .device em { font:700 10px var(--body); letter-spacing:0; }.visual-caption { position:absolute; right:20px; bottom:18px; font:700 11px var(--body); text-transform:uppercase; letter-spacing:.08em; transform:rotate(-90deg); transform-origin:right bottom; }
.visual-web-product { background:#c8caf1; color:#252754; padding:31px; }.visual-web-product .browser { position:absolute; inset:13% 11%; padding:19px; border:2px solid #252754; background:#f6f4ee; box-shadow:13px 13px 0 #51548b; }.visual-web-product .browser > span { display:inline-block; width:9px; height:9px; margin-right:5px; background:#252754; border-radius:50%; }.visual-web-product .browser b { display:block; margin-top:27px; font:600 25px var(--display); letter-spacing:-.08em; }.visual-web-product .browser i { display:block; height:10px; margin-top:17px; background:#d4ed4c; }.visual-web-product .browser i + i { width:70%; margin-top:8px; background:#d9d9e3; }.visual-web-product .browser i + i + i { width:83%; margin-top:8px; background:#d9d9e3; }.visual-web-product .browser em { position:absolute; right:18px; bottom:17px; color:#252754; font:600 13px/1.2 var(--display); letter-spacing:-.08em; font-style:normal; }
.visual-flow-product { background:#e8caa9; overflow:hidden; }.visual-flow-product svg { position:absolute; inset:0; width:100%; height:100%; }.visual-flow-product path { fill:none; stroke:#6f3e2d; stroke-width:2; stroke-dasharray:5 5; }.flow-node { position:absolute; z-index:1; width:89px; padding:10px 8px; border:1px solid #6f3e2d; background:#f7f1e8; color:#552f23; font:700 11px var(--body); text-align:center; }.flow-node:first-child { left:8%; top:13%; }.flow-node:nth-child(2) { left:39%; top:40%; background:#d4ed4c; }.flow-node:nth-child(3) { right:8%; bottom:13%; }.footer__top > span { justify-self:end; color:#a4a69f; font-size:12px; font-weight:700; }
@media (max-width:680px) { .visual-mobile-product .device { width:51%; left:24%; }.visual-mobile-product .device strong { font-size:22px; }.visual-web-product { padding:18px; }.visual-web-product .browser { inset:15% 9%; }.footer__top > span { justify-self:start; } }
.contact-form button:disabled { cursor:wait; opacity:.72; transform:none; }
.contact-form .consent { display:flex; align-items:flex-start; gap:9px; margin:23px 0 0; color:#4e5a0d; font-size:11px; font-weight:600; line-height:1.45; text-transform:none; letter-spacing:0; }.contact-form .consent input { width:15px; height:15px; margin:1px 0 0; accent-color:var(--ink); flex:0 0 auto; }.contact-form .consent a { color:var(--ink); text-decoration:underline; text-underline-offset:2px; }.hero__art path { animation:line-glide 7s linear infinite; }.hero__art circle { animation:node-pulse 2.8s ease-in-out infinite; }.visual-flow-product path { animation:flow-dash 4s linear infinite; }.flow-node:nth-child(2) { animation:node-pulse 2.3s ease-in-out infinite; }.case:hover .flow-node { transform:translateY(-3px); transition:transform .25s; }.case:hover .flow-node:nth-child(2) { transform:translateY(-3px) scale(1.04); }.legal-page { background:var(--paper); }.legal-header { background:var(--ink); color:var(--paper); }.legal-header > .container { display:flex; align-items:center; justify-content:space-between; min-height:84px; }.legal-header > .container > a:last-child { font-size:13px; font-weight:800; }.legal-header > .container > a:last-child span { color:var(--lime); }.legal-main { max-width:920px; padding:86px 0 110px; }.legal-main h1 { max-width:760px; margin:25px 0 26px; font:600 clamp(36px,5vw,68px)/1.1 var(--display); letter-spacing:-.08em; }.legal-lead { max-width:660px; margin:0; font-size:20px; line-height:1.55; }.legal-date { margin:28px 0 61px; color:#666960; font-size:13px; }.legal-main section { max-width:740px; padding:25px 0; border-top:1px solid var(--line); }.legal-main section h2 { margin:0 0 11px; font:600 18px var(--display); letter-spacing:-.07em; }.legal-main section p { margin:0; color:#50534c; font-size:15px; line-height:1.65; }.legal-main section a { color:var(--ink); text-decoration:underline; text-underline-offset:3px; }.legal-actions { display:flex; align-items:center; gap:24px; margin-top:38px; font-size:13px; font-weight:800; }.legal-actions > a:last-child { border-bottom:1px solid currentColor; }@keyframes line-glide { to { stroke-dashoffset:-38; } }@keyframes flow-dash { to { stroke-dashoffset:-40; } }@keyframes node-pulse { 50% { transform:scale(1.16); } }
@media (max-width:680px) { .contact-form .consent { font-size:10px; }.footer__bottom { display:flex; flex-wrap:wrap; gap:11px 18px; }.footer__bottom a { grid-row:auto; }.footer__bottom span:last-child { grid-row:auto; text-align:left; }.legal-header > .container { min-height:70px; }.legal-main { padding:62px 0 80px; }.legal-lead { font-size:17px; }.legal-date { margin-bottom:42px; }.legal-main section { padding:20px 0; }.legal-main section h2 { font-size:16px; }.legal-main section p { font-size:14px; }.legal-actions { align-items:flex-start; flex-direction:column; gap:18px; } }
@media (prefers-reduced-motion:reduce) { .hero__art path,.hero__art circle,.visual-flow-product path,.flow-node:nth-child(2) { animation:none; } }

/* The homepage flow is deliberately linear: every label belongs to one arrowed step. */
.hero-flow { display:grid; grid-template-columns:1fr 88px 1fr 88px 1fr; align-items:center; gap:0; padding:28px 24px; }.flow-step { min-height:144px; padding:17px; border:1px solid #555852; background:#202220; }.flow-step span { display:block; color:#a4a69f; font-size:11px; }.flow-step strong { display:block; margin-top:25px; font:600 16px var(--display); letter-spacing:-.07em; }.flow-step p { margin:8px 0 0; color:#b3b5ae; font-size:11px; line-height:1.45; }.flow-arrow { display:flex; align-items:center; color:var(--lime); }.flow-arrow i { display:block; width:100%; height:1px; background:#6e716a; }.flow-arrow b { margin-left:-2px; color:var(--lime); font:500 24px/1 var(--body); }.hero__art.hero-flow path,.hero__art.hero-flow circle { animation:none; }
.case-study-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }.case-study { display:flex; flex-direction:column; min-height:505px; padding:22px; border:1px solid #4a4d48; background:#1d1f1d; }.case-study__top { display:flex; justify-content:space-between; gap:12px; color:#aeb0a8; font-size:10px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }.case-study__top span:last-child { color:var(--lime); }.case-study h3 { margin:27px 0 9px; font:600 clamp(22px,2.2vw,31px)/1.08 var(--display); letter-spacing:-.08em; }.case-study > p { max-width:500px; min-height:43px; margin:0; color:#bec0b9; font-size:14px; line-height:1.55; }.case-diagram { position:relative; height:186px; margin:25px 0 18px; overflow:hidden; }.case-diagram svg { position:absolute; inset:0; width:100%; height:100%; }.case-diagram svg path { fill:none; stroke:#663c2e; stroke-width:2; stroke-dasharray:5 5; }.case-diagram figcaption { position:absolute; left:12px; bottom:10px; color:inherit; font-size:10px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }.diagram-lead,.diagram-parser,.diagram-ai,.diagram-approve { background:#e9caa9; color:#4e2b20; }.diagram-lead > span,.diagram-lead > i,.diagram-lead > b,.diagram-parser > span,.diagram-parser > i,.diagram-parser > b,.diagram-ai > span,.diagram-ai > i,.diagram-ai > b,.diagram-approve > span,.diagram-approve > i,.diagram-approve > b { position:absolute; z-index:1; min-width:77px; padding:9px 8px; border:1px solid #744434; background:#fbf4e9; color:#4e2b20; font:700 10px var(--body); text-align:center; font-style:normal; }.diagram-lead > span,.diagram-ai > span,.diagram-approve > span { left:8%; top:50px; }.diagram-lead > i,.diagram-ai > i { left:calc(50% - 35px); top:50px; background:var(--lime); }.diagram-lead > b,.diagram-ai > b { right:8%; top:50px; }.diagram-parser > span { left:8%; top:28px; }.diagram-parser > i { left:calc(50% - 35px); top:61px; background:var(--lime); }.diagram-parser > b { right:8%; top:61px; }.diagram-approve > i { left:calc(50% - 55px); top:50px; background:var(--lime); }.diagram-approve > b { right:8%; top:50px; }.diagram-web { background:#c9cbf0; color:#282a5a; padding:22px; }.diagram-web > div { position:relative; height:100%; padding:19px; border:2px solid #282a5a; background:#f7f4ed; box-shadow:11px 11px 0 #565a94; }.diagram-web b { display:block; font:600 19px var(--display); letter-spacing:-.08em; }.diagram-web i { display:block; height:8px; margin-top:15px; background:var(--lime); }.diagram-web i + i { width:72%; margin-top:7px; background:#d8d9e6; }.diagram-web i + i + i { width:88%; margin-top:7px; background:#d8d9e6; }.diagram-web span { position:absolute; right:17px; bottom:15px; font-size:10px; font-weight:800; }.diagram-mobile { display:flex; align-items:center; justify-content:center; background:#c7d6c3; color:#193629; }.diagram-mobile > div { position:relative; width:122px; height:160px; padding:16px 12px; border:5px solid #1e2921; border-radius:17px; background:#f8f5ee; box-shadow:11px 11px 0 #6e8a71; }.diagram-mobile small { display:block; font-size:8px; font-weight:800; }.diagram-mobile b { display:block; margin-top:24px; font:600 17px/1.05 var(--display); letter-spacing:-.08em; }.diagram-mobile i { display:block; height:6px; margin-top:17px; background:var(--lime); }.diagram-mobile span { position:absolute; bottom:14px; font:700 14px var(--display); letter-spacing:-.08em; }.case-study ul { display:flex; flex-wrap:wrap; gap:7px; padding:0; margin:auto 0 0; list-style:none; }.case-study li { padding:6px 8px; border:1px solid #575a54; color:#d1d3cc; font-size:10px; font-weight:700; }.case-study--web .case-study__top span:last-child { color:#c9cbf0; }.case-study--mobile .case-study__top span:last-child { color:#c7d6c3; }.cases__note { margin:25px 0 0; color:#a4a69f; font-size:12px; }
@media (max-width:900px) { .hero-flow { grid-template-columns:1fr 48px 1fr 48px 1fr; padding:24px 10px; }.flow-step { padding:12px; }.flow-step strong { margin-top:19px; font-size:13px; }.flow-step p { font-size:10px; }.case-study { min-height:490px; }.case-study h3 { font-size:24px; } }
@media (max-width:680px) { .hero-flow { grid-template-columns:1fr 22px 1fr 22px 1fr; padding:15px 0; }.flow-step { min-height:113px; padding:9px; }.flow-step span { font-size:8px; }.flow-step strong { margin-top:13px; font-size:10px; }.flow-step p { margin-top:5px; font-size:8px; line-height:1.3; }.flow-arrow b { font-size:18px; }.case-study-grid { grid-template-columns:1fr; gap:12px; }.case-study { min-height:0; padding:17px; }.case-study h3 { margin-top:20px; font-size:24px; }.case-study > p { min-height:0; font-size:13px; }.case-diagram { height:169px; margin:19px 0 15px; }.case-study ul { margin-top:2px; }.cases__note { font-size:11px; }.diagram-mobile > div { height:145px; }.diagram-mobile b { margin-top:20px; } }

/* A single automation map keeps every animated signal on a real connector. */
.automation-map { height:310px; margin-top:47px; }.automation-map > svg { position:absolute; inset:0; width:100%; height:100%; }.automation-map .map-line { fill:none; stroke:#5a5d57; stroke-width:1.35; animation:none; }.automation-map .map-signal { fill:none; stroke:var(--lime); stroke-width:2.4; stroke-dasharray:6 24; animation:signal-travel 3s linear infinite; }.automation-map .map-signal--two { animation-delay:-.8s; }.automation-map .map-signal--three { animation-delay:-1.7s; }.automation-map .map-signal--four { animation-delay:-2.4s; }.map-node { position:absolute; z-index:1; padding:14px; border:1px solid #5a5d57; background:#202220; }.map-node span,.map-node small { display:block; color:#aeb0a8; font-size:10px; line-height:1.45; }.map-node strong { display:block; margin:12px 0 6px; color:var(--paper); font:600 17px var(--display); letter-spacing:-.08em; }.map-node--source { left:3.33%; top:38.7%; width:15%; min-height:75px; }.map-node--core { left:35.83%; top:24.2%; width:26.25%; min-height:160px; background:#252825; }.map-node--core strong { color:var(--lime); font-size:21px; }.map-node--core small { line-height:1.7; }.map-node--output { left:80%; width:16.67%; min-height:55px; padding:10px 12px; }.map-node--output strong { margin:0 0 3px; font-size:13px; }.map-node--crm { top:9.7%; }.map-node--team { top:41.9%; }.map-node--report { top:74.2%; }.approach { padding:114px 0 124px; background:var(--paper); }.approach__heading { display:grid; grid-template-columns:1fr 1.75fr .72fr; gap:35px; align-items:end; padding-bottom:53px; }.approach__heading h2 { margin:0; font:600 clamp(32px,4.2vw,60px)/1.14 var(--display); letter-spacing:-.07em; }.approach__heading > p:last-child { margin:0 0 4px; color:#4f524b; font-size:15px; line-height:1.55; }.approach__steps { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }.approach__steps article { min-height:269px; padding:22px 26px 25px; border-right:1px solid var(--line); display:flex; flex-direction:column; }.approach__steps article:first-child { border-left:1px solid var(--line); }.approach__steps span { color:#62655d; font-size:11px; font-weight:800; }.approach__steps h3 { margin:47px 0 13px; font:600 24px/1.18 var(--display); letter-spacing:-.07em; }.approach__steps p { max-width:330px; margin:0; color:#4f524b; font-size:14px; line-height:1.55; }.approach__steps b { margin-top:auto; color:#69721c; font-size:11px; }.approach__steps b:before { content:"→"; margin-right:8px; font-size:16px; }.case-study__top span:first-child { color:#aeb0a8; }
@keyframes signal-travel { to { stroke-dashoffset:-90; } }
@media (max-width:900px) { .automation-map { height:270px; }.map-node { padding:10px; }.map-node strong { font-size:14px; }.map-node--core strong { font-size:17px; }.map-node span,.map-node small { font-size:9px; }.approach__steps article { min-height:250px; padding:20px; }.approach__steps h3 { font-size:20px; } }
@media (max-width:680px) { .automation-map { height:260px; margin-top:35px; }.map-node { padding:6px; }.map-node span { font-size:7px; line-height:1.35; }.map-node small { display:none; }.map-node strong { margin:7px 0 0; font-size:10px; }.map-node--core strong { font-size:11px; }.map-node--source { width:18%; }.map-node--core { left:33%; width:31%; }.map-node--output { left:75%; width:22%; }.approach { padding:75px 0; }.approach__heading { display:block; padding-bottom:37px; }.approach__heading h2 { margin:21px 0 18px; font-size:35px; }.approach__steps { grid-template-columns:1fr; }.approach__steps article,.approach__steps article:first-child { min-height:0; padding:20px 18px 22px; border-left:1px solid var(--line); border-bottom:1px solid var(--line); }.approach__steps h3 { margin:21px 0 9px; font-size:19px; }.approach__steps b { margin-top:13px; } }
@media (prefers-reduced-motion:reduce) { .automation-map .map-signal { animation:none; } }
.contact-form__fields { display:grid; grid-template-columns:1fr 1fr; gap:0 24px; }.contact-form label small { color:#3f4908; font-size:9px; font-weight:700; letter-spacing:0; text-transform:none; }.cases .section-heading > p:last-child { color:#c8cac2; }.success-modal { position:fixed; z-index:30; inset:0; display:grid; place-items:center; padding:20px; background:rgba(15,17,15,.72); backdrop-filter:blur(8px); }.success-modal[hidden] { display:none; }.success-modal__panel { position:relative; width:min(100%,550px); padding:43px; background:var(--paper); box-shadow:15px 15px 0 var(--lime); }.success-modal__panel h2 { margin:24px 0 17px; font:600 clamp(32px,4vw,48px)/1.1 var(--display); letter-spacing:-.08em; }.success-modal__panel > p:not(.section-label) { max-width:390px; margin:0 0 29px; color:#4f524b; font-size:16px; line-height:1.55; }.success-modal__close { position:absolute; top:15px; right:17px; width:33px; height:33px; border:0; background:transparent; color:var(--ink); font-size:29px; line-height:1; }.success-modal__close:hover { color:#647318; }.success-modal__panel .button { min-width:147px; }
@media (max-width:680px) { .contact-form__fields { grid-template-columns:1fr; }.success-modal__panel { padding:31px 24px; box-shadow:9px 9px 0 var(--lime); }.success-modal__panel > p:not(.section-label) { font-size:15px; } }
.services__list { grid-template-columns:repeat(4,1fr); }.services .service-card h3 { font-size:22px; }.icon-grid { display:grid; grid-template-columns:repeat(2,1fr); grid-template-rows:repeat(2,1fr); gap:6px; padding:6px; border:1px solid currentColor; }.icon-grid i,.icon-grid b,.icon-grid em { display:block; background:currentColor; }.icon-grid em { background:var(--lime); }.cases .section-heading { grid-template-columns:1fr 2.5fr; }.cases .section-heading h2 { font-size:clamp(36px,4.1vw,58px); }.diagram-site { background:#d7c9b5; color:#34241f; padding:22px; }.diagram-site > div { position:relative; height:100%; padding:16px; background:#f7f2e9; border:2px solid #34241f; box-shadow:11px 11px 0 #865845; }.diagram-site small { display:block; font-size:8px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }.diagram-site b { display:block; margin-top:18px; font:600 20px/1.05 var(--display); letter-spacing:-.08em; }.diagram-site i { display:block; height:7px; margin-top:16px; background:var(--lime); }.diagram-site i + i { width:70%; margin-top:7px; background:#d7d0c8; }.diagram-site span { position:absolute; bottom:15px; left:16px; font-size:10px; font-weight:800; }.case-study--site .case-study__top span:last-child { color:#d7c9b5; }
@media (max-width:900px) { .services__list { grid-template-columns:repeat(2,1fr); }.service-card { border-left:1px solid #c2c1ba; } }
@media (max-width:680px) { .services__list { grid-template-columns:1fr; }.cases .section-heading { display:block; }.cases .section-heading h2 { font-size:35px; } }
.legal-main h1 { overflow-wrap:anywhere; hyphens:auto; }
