@font-face {
    font-family:Kleinsys;
    src:url('/ksystheme/fonts/lato/lato-regular.woff') format('woff');
    font-style:normal;
    font-weight:400;
    font-display:swap
}
@font-face {
    font-family:Kleinsys;
    src:url('/ksystheme/fonts/lato/lato-bold.woff') format('woff');
    font-style:normal;
    font-weight:700;
    font-display:swap
}
@font-face {
    font-family:Kleinsys;
    src:url('/ksystheme/fonts/lato/lato-black.woff') format('woff');
    font-style:normal;
    font-weight:900;
    font-display:swap
}
:root {
    --ks-paper:#f5f4ef;
    --ks-ink:#292d2c;
    --ks-muted:#656b66;
    --ks-teal:#247d78;
    --ks-line:#d9dcd3;
    --ks-coral:#df785f;
    --ks-dark:#353b39;
    --ks-ease:cubic-bezier(.22,1,.36,1);
    --ks-page-title-size:clamp(36px,4.2vw,56px);
    --ks-page-top:44px;
    --ks-page-eyebrow-size:11px;
    --ks-page-title-gap:18px;
    --ks-page-copy-gap:18px
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth;
    scroll-padding-top:110px
}
body.ks-site {
    margin:0;
    background:var(--ks-paper);
    color:var(--ks-ink);
    font-family:Kleinsys,Lato,Arial,sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased
}
body.ks-site h1,body.ks-site h2,body.ks-site h3,body.ks-site p {
    margin-top:0
}
body.ks-site h1,body.ks-site h2,body.ks-site h3 {
    color:inherit;
    line-height:1.08
}
body.ks-site a {
    color:inherit;
    text-decoration:none
}
body.ks-site button,body.ks-site input,body.ks-site textarea {
    font:inherit
}
body.ks-site button {
    cursor:pointer
}
body.ks-site img {
    max-width:100%;
    height:auto
}
body.ks-site ::selection {
    background:#d3e7dd;
    color:#233d35
}
body.ks-site :focus-visible {
    outline:3px solid var(--ks-teal);
    outline-offset:6px
}
#main-content:focus {
    outline:none
}
.ks-shell {
    width:min(100%,1360px);
    margin-inline:auto;
    padding-inline:56px
}
.ks-eyebrow {
    font-size:11px!important;
    line-height:1.5!important;
    letter-spacing:1.8px;
    font-weight:700;
    text-transform:uppercase;
    margin:0 0 24px;
    color:var(--ks-muted)
}
.ks-section {
    padding-block:104px
}
.ks-site h2 {
    font-size:clamp(32px,3.7vw,51px);
    letter-spacing:-.035em;
    font-weight:400;
    margin-bottom:0
}
.ks-site h3 {
    font-weight:700;
    letter-spacing:-.6px
}
.ks-skip-link {
    position:fixed;
    z-index:1000;
    top:10px;
    left:20px;
    background:white;
    padding:12px 20px;
    transform:translateY(-160%)
}
.ks-skip-link:focus {
    transform:none
}
/* A quiet, persistent navigation. */
.ks-header {
    position:sticky;
    top:0;
    z-index:30;
    background:rgba(245,244,239,.95);
    border-bottom:1px solid transparent;
    transition:border-color .3s,box-shadow .3s;
    backdrop-filter:blur(16px)
}
.ks-header.is-scrolled {
    border-bottom-color:var(--ks-line);
    box-shadow:0 5px 30px #292d2c05
}
.ks-nav-wrap {
    height:100px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px
}
.ks-logo {
    display:flex;
    flex:none
}
.ks-logo img {
    width:143px;
    mix-blend-mode:multiply
}
.ks-navigation {
    display:flex;
    align-items:center;
    gap:35px;
    font-size:13px;
    font-weight:700
}
.ks-navigation>a:not(.ks-nav-contact) {
    position:relative;
    padding-block:12px
}
.ks-navigation>a:not(.ks-nav-contact):after {
    content:'';
    position:absolute;
    bottom:6px;
    left:0;
    width:100%;
    height:1px;
    background:var(--ks-teal);
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .3s var(--ks-ease)
}
.ks-navigation>a:hover:after {
    transform:scaleX(1)
}
.ks-nav-contact {
    display:flex;
    align-items:center;
    gap:25px;
    padding:11px 19px;
    background:var(--ks-ink);
    color:var(--ks-paper)!important;
    border-radius:5px;
    transition:background .2s
}
.ks-nav-contact:hover {
    background:var(--ks-teal)
}
.ks-nav-contact span {
    font-size:21px;
    line-height:1
}
.ks-language {
    position:relative;
    font-size:11px
}
.ks-language summary {
    display:flex;
    align-items:center;
    gap:7px;
    cursor:pointer;
    list-style:none;
    padding-block:12px
}
.ks-language summary::-webkit-details-marker {
    display:none
}
.ks-language summary span {
    font-size:17px;
    line-height:1
}
.ks-language-list {
    position:absolute;
    top:100%;
    right:0;
    width:155px;
    padding:8px;
    background:var(--ks-paper);
    border:1px solid var(--ks-line);
    box-shadow:0 10px 30px #202d2510;
    border-radius:6px
}
.ks-language-list a {
    display:block;
    padding:7px 12px;
    border-radius:3px
}
.ks-language-list a:hover,.ks-language-list a[aria-current] {
    background:#e5e8e0
}
.ks-menu-toggle {
    display:none
}
/* Home and contact share one type scale and opening rhythm. */
.ks-page-shell {
    width:100%;
    max-width:1240px;
    margin-inline:auto;
    padding-inline:40px
}
.ks-page-eyebrow {
    display:flex;
    align-items:center;
    gap:11px;
    margin:0 0 var(--ks-page-title-gap);
    color:var(--ks-ink);
    font-size:var(--ks-page-eyebrow-size);
    font-weight:700;
    line-height:1.4;
    letter-spacing:.17em;
    text-transform:uppercase
}
.ks-page-eyebrow .ks-icon { color:var(--ks-teal); }
body.ks-site .ks-page-title {
    margin:0;
    font-size:var(--ks-page-title-size);
    font-weight:400;
    line-height:1.13;
    letter-spacing:-.045em
}
.ks-page-title span { color:var(--ks-teal); }
body.ks-site .ks-page-lead {
    margin:var(--ks-page-copy-gap) 0 0;
    color:#626965;
    font-size:16px;
    line-height:1.65
}
@media(max-width:900px) {
    /* Reserve two label lines so longer translations keep titles aligned. */
    .ks-page-eyebrow { min-height:2.8em; }
}
@media(max-width:760px) {
    :root {
        --ks-page-top:40px;
        --ks-page-eyebrow-size:10px;
        --ks-page-title-gap:20px;
        --ks-page-copy-gap:21px
    }
    .ks-page-shell { padding-inline:24px; }
}
@media(max-width:440px) {
    .ks-page-shell { padding-inline:22px; }
}
/* The hero uses the same physical, flat illustration language as the original. */
.ks-hero {
    padding-top:var(--ks-page-top);
    display:grid;
    grid-template-columns:minmax(0,1.06fr) minmax(0,1fr);
    column-gap:44px;
    align-items:start
}
.ks-hero-copy {
    min-width:0;
    position:relative;
    z-index:1
}
.ks-hero-intro { max-width:435px; }
.ks-hero-actions {
    margin-top:28px;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:22px
}
.ks-button {
    display:inline-flex;
    align-items:center;
    justify-content:space-between;
    gap:23px;
    border:1px solid var(--ks-teal);
    border-radius:5px;
    padding:14px 20px;
    background:var(--ks-teal);
    color:#fff!important;
    font-size:13px;
    font-weight:700;
    transition:background .25s,box-shadow .25s,transform .25s
}
.ks-button:hover {
    background:#1b655f;
    box-shadow:0 5px 0 #17433e1a;
    transform:translateY(-2px)
}
.ks-button span {
    font-size:21px;
    line-height:1;
    transition:transform .25s
}
.ks-button:hover span {
    transform:translate(2px,-2px)
}
.ks-text-link {
    display:inline-flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    font-size:12px;
    font-weight:700;
    position:relative;
    padding-block:9px
}
.ks-text-link:after {
    content:'';
    position:absolute;
    left:0;
    right:0;
    bottom:3px;
    height:1px;
    background:currentColor;
    transform:scaleX(.2);
    transform-origin:left;
    opacity:0;
    transition:transform .3s,opacity .3s
}
.ks-text-link:hover:after {
    transform:scaleX(1);
    opacity:.5
}
.ks-text-link span {
    font-size:20px;
    transition:transform .25s
}
.ks-text-link:hover span {
    transform:translate(2px,-2px)
}
.ks-workbench {
    background:var(--ks-dark);
    border-radius:10px 10px 72px 10px;
    align-self:stretch;
    min-height:452px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    padding:24px 29px 27px;
    position:relative;
    isolation:isolate;
    overflow:hidden
}
.ks-workbench:before {
    content:'';
    position:absolute;
    inset:65px 28px 65px;
    background-image:radial-gradient(#cad4c922 .8px,transparent .8px);
    background-size:20px 20px;
    z-index:-1;
    mask-image:linear-gradient(90deg,transparent,black,transparent)
}
.ks-workbench-top {
    display:flex;
    align-items:center;
    gap:8px;
    color:#bec6bd;
    font-size:8px;
    letter-spacing:1.8px;
    font-weight:700
}
.ks-workbench-top>span:last-child {
    margin-left:auto;
    font-size:18px
}
.ks-art-dot {
    height:5px;
    width:5px;
    border-radius:50%;
    background:#8bbaa1
}
.ks-workbench-art {
    position:relative;
    margin:-6px -12px -22px;
    transform:translate(var(--art-x,0px),var(--art-y,0px));
    transition:transform .8s var(--ks-ease)
}
.ks-workbench-art svg {
    display:block;
    width:100%;
    height:auto
}
.ks-workbench-bottom {
    display:flex;
    align-items:center;
    justify-content:space-between;
    color:#e5e8de;
    font-size:15px;
    font-weight:700;
    letter-spacing:-.2px;
    position:relative
}
.ks-art-symbol {
    font-size:37px;
    color:#e4bb61;
    line-height:1
}
.ks-workbench #hero_workbench-dashboard,.ks-workbench #hero_workbench-code-editor,.ks-workbench #hero_workbench-pencil,.ks-workbench #hero_workbench-floating-report {
    transition:transform .9s var(--ks-ease)
}
.ks-workbench:hover #hero_workbench-floating-report {
    transform:translate(0,-8px)
}
.ks-workbench:hover #hero_workbench-pencil {
    transform:translate(3px,-5px)
}
.ks-workbench:hover #hero_workbench-code-editor {
    transform:translate(-3px,2px)
}
.ks-hero-footer {
    grid-column:1/-1;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-top:55px;
    padding:25px 0 27px;
    border-top:1px solid var(--ks-line);
    font-size:11px;
    color:var(--ks-muted)
}
.ks-hero-footer>span:first-child {
    display:flex;
    align-items:center;
    gap:9px
}
.ks-hero-footer i {
    display:inline-block;
    width:6px;
    height:6px;
    background:#78977d;
    border-radius:50%
}
/* The existing six illustrations are retained, with room to breathe. */
.ks-expertise {
    background:#eeefe9;
    margin-top:25px
}
.ks-section-heading {
    display:grid;
    grid-template-columns:1.5fr 1fr;
    gap:60px;
    align-items:end;
    margin-bottom:47px
}
.ks-section-heading .ks-eyebrow {
    margin-bottom:21px
}
.ks-section-intro {
    max-width:365px;
    font-size:15px;
    line-height:1.9;
    color:var(--ks-muted);
    margin:0!important;
    justify-self:end
}
.ks-services {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    column-gap:27px;
    row-gap:40px
}
.ks-service {
    min-width:0;
    display:block
}
.ks-service-art {
    position:relative;
    background:#40403e;
    border-radius:6px;
    overflow:hidden;
    isolation:isolate;
    margin-bottom:20px;
    aspect-ratio:1.85
}
.ks-service-art img {
    display:block;
    width:100%;
    height:100%!important;
    object-fit:cover;
    transition:transform .65s var(--ks-ease)
}
.ks-service-index {
    position:absolute;
    left:17px;
    top:12px;
    color:#b6b9b0;
    z-index:1;
    font-size:9px;
    letter-spacing:1px
}
.ks-service-arrow {
    position:absolute;
    bottom:13px;
    right:14px;
    width:28px;
    height:28px;
    border:1px solid #ffffff33;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#f0f1e9;
    font-size:16px;
    transition:transform .4s,background .4s
}
.ks-service:hover .ks-service-art img,.ks-service:focus-visible .ks-service-art img {
    transform:scale(1.045)
}
.ks-service:hover .ks-service-arrow {
    background:var(--ks-teal);
    transform:translateX(1px)
}
.ks-service h3 {
    font-size:20px;
    margin:0 0 10px!important
}
.ks-service p {
    font-size:13px;
    line-height:1.8;
    color:var(--ks-muted);
    margin:0;
    max-width:315px
}
.ks-service:hover h3 {
    color:var(--ks-teal)
}
/* Bespoke systems, presented as two deliberately contrasting workspaces. */
.ks-solution-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:26px
}
.ks-solution {
    border-radius:8px;
    overflow:hidden;
    display:flex;
    flex-direction:column
}
.ks-solution-data {
    background:var(--ks-dark);
    color:#f2f3ea
}
.ks-solution-software {
    background:#eadfd3;
    color:var(--ks-ink)
}
.ks-solution-visual {
    padding:28px 38px 0;
    position:relative;
    overflow:hidden
}
.ks-solution-visual .ks-eyebrow {
    font-size:9px!important;
    letter-spacing:1.65px;
    margin-bottom:0
}
.ks-solution-data .ks-eyebrow {
    color:#c3c9bd
}
.ks-solution-software .ks-eyebrow {
    color:#625e57
}
.ks-solution-visual img {
    display:block;
    width:90%;
    height:270px!important;
    object-fit:contain;
    margin:10px auto -3px;
    transition:transform .8s var(--ks-ease)
}
.ks-solution:hover .ks-solution-visual img {
    transform:translateY(-5px) scale(1.02)
}
.ks-solution-body {
    padding:22px 40px 38px;
    flex:1;
    display:flex;
    flex-direction:column
}
.ks-solution h3 {
    font-size:clamp(26px,2.6vw,36px);
    letter-spacing:-1.15px;
    line-height:1.16!important;
    margin-bottom:18px!important
}
.ks-solution-body>p {
    font-size:14px;
    line-height:1.9;
    max-width:430px;
    margin-bottom:23px
}
.ks-solution-data .ks-solution-body>p {
    color:#c5ccc3
}
.ks-solution-software .ks-solution-body>p {
    color:#666158
}
.ks-capabilities {
    list-style:none;
    display:flex;
    flex-wrap:wrap;
    gap:5px 15px;
    margin:0 0 23px;
    padding:0;
    font-size:10px
}
.ks-capabilities li {
    display:flex;
    align-items:center;
    gap:6px;
    white-space:nowrap
}
.ks-capabilities li:before {
    content:'+';
    font-size:14px;
    color:var(--ks-teal)
}
.ks-solution-data .ks-capabilities {
    color:#d6dfd1
}
.ks-solution-data .ks-capabilities li:before {
    color:#95c3a3
}
.ks-solution .ks-text-link {
    margin-top:auto;
    border-top:1px solid #ffffff25;
    padding-top:20px;
    font-size:13px
}
.ks-solution-software .ks-text-link {
    border-top-color:#292d2c25
}
.ks-approach {
    display:grid;
    grid-template-columns:1fr 1fr;
    column-gap:90px;
    padding-top:5px
}
.ks-approach-copy>p:last-child {
    font-size:15px;
    color:var(--ks-muted);
    max-width:350px;
    line-height:1.9;
    margin-top:26px
}
.ks-steps {
    list-style:none;
    padding:0;
    margin:0
}
.ks-steps li {
    display:flex;
    gap:24px;
    align-items:flex-start;
    border-top:1px solid var(--ks-line);
    padding:23px 0 26px
}
.ks-steps li:last-child {
    border-bottom:1px solid var(--ks-line)
}
.ks-step-number {
    font-size:11px;
    color:var(--ks-teal);
    padding-top:4px
}
.ks-steps h3 {
    font-size:20px;
    margin:0 0 9px!important
}
.ks-steps p {
    font-size:13px;
    line-height:1.85;
    color:var(--ks-muted);
    margin:0;
    max-width:340px
}
.ks-step-mark {
    width:15px;
    height:15px;
    flex:none;
    margin:5px 2px 0 auto
}
.ks-step-mark-0 {
    background:#e6bd65;
    border-radius:50%
}
.ks-step-mark-1 {
    background:var(--ks-coral);
    transform:rotate(45deg);
    width:12px;
    height:12px
}
.ks-step-mark-2 {
    background:#82a791
}
.ks-partners {
    grid-column:1/-1;
    display:flex;
    align-items:center;
    gap:36px;
    border-top:1px solid var(--ks-line);
    padding-top:32px;
    margin-top:65px
}
.ks-partners>span {
    font-size:11px;
    color:var(--ks-muted);
    margin-right:auto
}
.ks-partners a {
    font-size:17px;
    font-weight:900;
    letter-spacing:-.4px;
    color:#6a7068!important
}
.ks-partners a span {
    font-size:14px;
    font-weight:400;
    padding-left:7px
}
.ks-partners a:hover {
    color:var(--ks-teal)!important
}
.ks-cta {
    background:#dce6dd;
    padding:68px 0
}
.ks-cta .ks-shell {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:50px
}
.ks-cta .ks-eyebrow {
    font-size:10px!important;
    margin-bottom:20px
}
.ks-cta h2 {
    font-size:clamp(35px,4.4vw,62px);
    letter-spacing:-2.5px
}
.ks-cta p:last-child {
    font-size:14px;
    color:#59675d;
    margin:17px 0 0
}
/* Motion is progressive: without JS or motion permission everything is visible. */
.ks-enter {
    animation:ks-enter .95s var(--ks-ease) both;
    animation-delay:calc(var(--enter,0)*100ms)
}
@keyframes ks-enter {
    from {
        opacity:0;
        transform:translateY(24px)
    }
    to {
        opacity:1;
        transform:translateY(0)
    }
}
[data-reveal] {
    transition:opacity .8s var(--ks-ease),transform .8s var(--ks-ease);
    transition-delay:var(--delay,0ms)
}
[data-reveal].is-pending {
    opacity:0;
    transform:translateY(25px)
}
/* Navigation renders the new document directly. Keep motion within the page;
   document snapshots and entrance fades can leave the contact page washed out. */
@media(min-width:1450px) {
    .ks-workbench {
        min-height:480px
    }
    .ks-hero-footer {
        margin-top:70px
    }
}
@media(max-width:1150px) {
    .ks-shell {
        padding-inline:38px
    }
    .ks-navigation {
        gap:23px
    }
    .ks-hero {
        gap:30px;
        grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)
    }
    .ks-workbench {
        min-height:400px;
        padding:23px
    }
    .ks-hero-actions {
        gap:13px
    }
    .ks-section {
        padding-block:85px
    }
    .ks-approach {
        padding-top:5px;
        column-gap:60px
    }
    .ks-solution-visual {
        padding-inline:30px
    }
    .ks-solution-body {
        padding-inline:30px
    }
    .ks-capabilities {
        column-gap:11px
    }
    .ks-cta h2 {
        letter-spacing:-1.5px
    }
}
@media(max-width:900px) {
    .ks-shell {
        padding-inline:28px
    }
    .ks-nav-wrap {
        height:85px
    }
    .ks-logo img {
        width:127px
    }
    .ks-navigation {
        gap:18px;
        font-size:11px
    }
    .ks-nav-contact {
        gap:10px;
        padding:10px 12px
    }
    .ks-hero {
        grid-template-columns:minmax(0,1fr) minmax(0,1fr);
        gap:25px
    }
    .ks-workbench {
        min-height:350px;
        padding:19px
    }
    .ks-workbench-top {
        letter-spacing:.7px;
        font-size:7px
    }
    .ks-workbench-bottom {
        font-size:12px
    }
    .ks-hero-actions {
        align-items:flex-start;
        flex-direction:column;
        gap:8px
    }
    .ks-section-heading {
        gap:35px
    }
    .ks-section-intro {
        font-size:13px
    }
    .ks-services {
        gap:32px 20px
    }
    .ks-service h3 {
        font-size:17px
    }
    .ks-service p {
        font-size:12px
    }
    .ks-solution-grid {
        gap:18px
    }
    .ks-solution-visual {
        padding:24px 25px 0
    }
    .ks-solution-visual img {
        height:220px!important;
        width:100%
    }
    .ks-solution-body {
        padding:15px 25px 28px
    }
    .ks-solution-body>p {
        font-size:13px
    }
    .ks-solution h3 {
        font-size:28px
    }
    .ks-capabilities {
        display:block
    }
    .ks-capabilities li {
        margin-top:5px
    }
    .ks-approach {
        gap:35px
    }
    .ks-site h2 {
        letter-spacing:-1.3px
    }
    .ks-approach-copy>p:last-child {
        font-size:14px
    }
}
@media(max-width:700px) {
    html {
        scroll-padding-top:85px
    }
    .ks-shell {
        padding-inline:23px
    }
    .ks-header {
        border-bottom:1px solid var(--ks-line)
    }
    .ks-nav-wrap {
        height:76px
    }
    .ks-logo img {
        width:123px
    }
    .ks-menu-toggle {
        display:flex;
        align-items:center;
        gap:12px;
        background:none;
        border:1px solid var(--ks-line);
        border-radius:4px;
        padding:8px 11px;
        font-size:11px!important;
        color:var(--ks-ink)
    }
    .ks-menu-icon {
        width:15px;
        height:10px;
        position:relative;
        border-top:1px solid;
        border-bottom:1px solid;
        transition:transform .25s
    }
    .ks-menu-toggle[aria-expanded=true] .ks-menu-icon {
        transform:rotate(-45deg)
    }
    .ks-navigation {
        display:none;
        position:absolute;
        top:76px;
        left:0;
        right:0;
        background:var(--ks-paper);
        padding:18px 23px 26px;
        border-bottom:1px solid var(--ks-line);
        box-shadow:0 15px 25px #2930290c;
        font-size:15px;
        gap:6px;
        align-items:stretch
    }
    .ks-navigation.is-open {
        display:flex;
        flex-direction:column
    }
    .ks-navigation>a:not(.ks-nav-contact) {
        padding:10px 0
    }
    .ks-navigation .ks-nav-contact {
        margin-top:9px;
        justify-content:space-between;
        padding:12px 16px
    }
    .ks-language summary {
        font-size:12px
    }
    .ks-language-list {
        left:0;
        right:auto;
        z-index:2
    }
    .ks-hero {
        display:flex;
        flex-direction:column;
        align-items:stretch;
        gap:25px
    }
    .ks-hero-actions {
        flex-direction:row;
        align-items:center;
        gap:12px 22px
    }
    .ks-button {
        font-size:12px;
        padding:13px 17px;
        gap:18px
    }
    .ks-hero-actions .ks-text-link {
        font-size:11px
    }
    .ks-workbench {
        min-height:0;
        max-width:none;
        border-bottom-right-radius:50px;
        padding:20px 23px;
        margin-top:8px
    }
    .ks-workbench-art {
        margin:-5px 5px -22px;
        max-height:370px
    }
    .ks-workbench-art svg {
        max-height:370px
    }
    .ks-workbench-top {
        font-size:8px;
        letter-spacing:1.6px
    }
    .ks-workbench-bottom {
        font-size:13px
    }
    .ks-art-symbol {
        font-size:33px
    }
    .ks-hero-footer {
        margin-top:8px;
        padding-block:20px;
        font-size:10px;
        flex-wrap:wrap;
        gap:8px
    }
    .ks-hero-footer>span:last-child {
        font-size:9px
    }
    .ks-expertise {
        margin-top:8px
    }
    .ks-section {
        padding-block:62px
    }
    .ks-section-heading {
        display:block;
        margin-bottom:32px
    }
    .ks-section-heading .ks-eyebrow {
        margin-bottom:19px
    }
    .ks-site h2 {
        font-size:36px;
        letter-spacing:-1.4px
    }
    .ks-section-intro {
        max-width:440px;
        font-size:14px;
        line-height:1.8;
        margin-top:21px!important
    }
    .ks-services {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:28px 17px
    }
    .ks-service-art {
        aspect-ratio:1.5;
        margin-bottom:14px
    }
    .ks-service-art img {
        object-fit:cover
    }
    .ks-service-index {
        font-size:8px;
        left:10px;
        top:8px
    }
    .ks-service-arrow {
        width:23px;
        height:23px;
        font-size:13px;
        right:8px;
        bottom:8px
    }
    .ks-service h3 {
        font-size:18px;
        line-height:1.2!important;
        margin-bottom:7px!important
    }
    .ks-service p {
        font-size:12px;
        line-height:1.7
    }
    .ks-solution-grid {
        grid-template-columns:1fr;
        gap:24px
    }
    .ks-solution-visual {
        padding:26px 27px 0
    }
    .ks-solution-visual img {
        height:235px!important;
        margin-top:8px;
        width:85%
    }
    .ks-solution-body {
        padding:18px 27px 29px
    }
    .ks-solution h3 {
        font-size:31px
    }
    .ks-solution-body>p {
        font-size:14px
    }
    .ks-capabilities {
        display:flex;
        font-size:10px;
        gap:1px 14px
    }
    .ks-solution .ks-text-link {
        font-size:13px
    }
    .ks-approach {
        display:block;
        padding-top:0
    }
    .ks-approach-copy>p:last-child {
        max-width:440px;
        margin-bottom:35px
    }
    .ks-steps li {
        padding-block:23px;
        gap:21px
    }
    .ks-steps p {
        font-size:13px;
        max-width:370px
    }
    .ks-partners {
        margin-top:35px;
        gap:24px;
        flex-wrap:wrap;
        padding-top:25px
    }
    .ks-partners>span {
        width:100%;
        margin:0
    }
    .ks-partners a {
        font-size:16px
    }
    .ks-cta {
        padding-block:48px
    }
    .ks-cta .ks-shell {
        gap:20px
    }
    .ks-cta h2 {
        font-size:37px
    }
    .ks-cta .ks-eyebrow {
        font-size:8px!important;
        letter-spacing:1px;
        margin-bottom:15px
    }
    .ks-cta p:last-child {
        font-size:12px;
        line-height:1.7;
        max-width:250px
    }
}
@media(max-width:380px) {
    .ks-shell {
        padding-inline:19px
    }
    .ks-site h2 {
        font-size:32px
    }
    .ks-services {
        gap:25px 13px
    }
    .ks-service h3 {
        font-size:16px
    }
    .ks-service p {
        font-size:11px
    }
    .ks-solution-body {
        padding-inline:23px
    }
    .ks-solution h3 {
        font-size:29px
    }
}
@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }
    *,*:before,*:after {
        animation:none!important;
        transition:none!important;
        scroll-behavior:auto!important
    }
    [data-reveal].is-pending {
        opacity:1;
        transform:none
    }
    .ks-workbench-art {
        transform:none!important
    }
    .ks-workbench:hover #hero_workbench-floating-report,.ks-workbench:hover #hero_workbench-pencil,.ks-workbench:hover #hero_workbench-code-editor {
        transform:none
    }
}

/* Compact Material Outlined controls keep artwork and interface distinct. */
body.ks-site {
    min-height: 100vh;
    min-height: 100svh;
    display: flex;
    flex-direction: column;
}
.ks-header { flex: 0 0 auto; }
#main-content { flex: 1 0 auto; width: 100%; }
.ks-icon {
    display: inline-block;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    vertical-align: middle;
    fill: currentColor;
    overflow: visible;
}
.ks-button, .ks-nav-contact {
    gap: 10px;
    justify-content: center;
    border-radius: 8px;
}
.ks-button .ks-icon, .ks-nav-contact .ks-icon, .ks-text-link .ks-icon {
    transition: transform .25s var(--ks-ease);
}
.ks-button:hover .ks-icon, .ks-nav-contact:hover .ks-icon { transform: translateY(-1px); }
.ks-text-link { gap: 9px; justify-content: flex-start; }
.ks-language summary .ks-icon { width: 15px; height: 15px; flex-basis: 15px; }
.ks-hero-footer>span { display: inline-flex; align-items: center; gap: 8px; }
.ks-hero-footer .ks-icon { width: 14px; height: 14px; flex-basis: 14px; color: #78977d; }
.ks-partners a { display: inline-flex; align-items: center; gap: 8px; }
.ks-partners a .ks-icon { width: 15px; height: 15px; flex-basis: 15px; }
.ks-cta .ks-cta-link {
    flex: 0 0 auto;
    min-height: 50px;
    padding: 14px 23px;
    font-size: 13px;
}
/* The footer stays in normal flow and reaches the viewport edge on short pages. */
.ks-footer {
    flex: 0 0 auto;
    margin-top: auto;
    padding: 34px 0 0;
    background: #292f2c;
    color: #edf0e8;
    border-top: 1px solid #353f37;
}
.ks-footer-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 36px;
    padding-bottom: 28px;
}
.ks-footer-brand { display: flex; align-items: center; gap: 25px; }
.ks-footer-wordmark {
    font-size: 31px;
    font-weight: 900;
    letter-spacing: -1.4px;
    line-height: 1;
}
.ks-footer-brand p {
    font-size: 12px;
    color: #b7c3b6;
    margin: 0;
    padding-left: 25px;
    border-left: 1px solid #ffffff26;
}
.ks-footer-nav { display: flex; align-items: center; gap: 27px; }
.ks-footer-nav a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 40px;
    font-size: 12px;
    color: #e0e6dc;
    transition: color .2s, background .2s;
}
.ks-footer-nav .ks-icon { color: #a8c4ac; }
.ks-footer-nav a:hover { color: #a8d1b5; }
.ks-footer-nav .ks-back-top {
    width: 40px;
    justify-content: center;
    border: 1px solid #ffffff26;
    border-radius: 10px;
}
.ks-footer-nav .ks-back-top:hover { background: #ffffff0b; }
.ks-footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border-top: 1px solid #ffffff1c;
    padding: 17px 0;
    font-size: 10px;
    color: #aebcad;
}
.ks-footer-location { display: inline-flex; align-items: center; gap: 6px; }
.ks-footer-location .ks-icon { width: 14px; height: 14px; flex-basis: 14px; }
@media (max-width: 900px) {
    .ks-footer-brand { align-items: flex-start; flex-direction: column; gap: 10px; }
    .ks-footer-brand p { border: 0; padding: 0; }
    .ks-footer-nav { gap: 20px; }
}
@media (max-width: 700px) {
    .ks-cta .ks-shell { flex-wrap: wrap; gap: 25px; }
    .ks-footer { padding-top: 27px; }
    .ks-footer-main { align-items: flex-start; gap: 24px; flex-direction: column; padding-bottom: 19px; }
    .ks-footer-brand { flex-direction: row; align-items: center; gap: 20px; width: 100%; }
    .ks-footer-wordmark { font-size: 28px; }
    .ks-footer-brand p { font-size: 10px; max-width: 145px; }
    .ks-footer-nav { width: 100%; gap: 22px; }
    .ks-footer-nav a { font-size: 11px; }
    .ks-footer-nav .ks-back-top { margin-left: auto; }
    .ks-footer-bottom { gap: 12px; font-size: 9px; flex-wrap: wrap; }
    .ks-footer-location { gap: 5px; }
}
@media (prefers-reduced-motion: reduce) {
    .ks-button:hover .ks-icon, .ks-nav-contact:hover .ks-icon { transform: none; }
}

/* Small, finite gestures bring the original illustrations to life. */
.ks-language summary .ks-icon { transition: transform .25s var(--ks-ease); }
.ks-language[open] summary .ks-icon { transform: rotate(180deg); }
.ks-service h3 { transition: color .25s; }
.ks-service-index { transition: transform .45s var(--ks-ease), color .3s; }
.ks-service-art { transition: box-shadow .35s, border-radius .45s var(--ks-ease); }
.ks-service:focus-visible h3 { color: var(--ks-teal); }
.ks-service:focus-visible .ks-service-arrow { background: var(--ks-teal); }
.ks-solution:focus-within .ks-solution-visual img { transform: translateY(-5px) scale(1.02); }
.ks-navigation>a:focus-visible:after, .ks-text-link:focus-visible:after { transform: scaleX(1); opacity: .5; }
.ks-footer-nav .ks-icon { transition: transform .3s var(--ks-ease); }
.ks-button:active, .ks-nav-contact:active { transform: translateY(1px) scale(.985); box-shadow: none; }

@media (prefers-reduced-motion: no-preference) {
    .ks-language[open] .ks-language-list { animation: ks-menu-arrive .25s var(--ks-ease) both; }
    .ks-steps li.is-revealed .ks-step-mark { animation: ks-mark-arrive .7s var(--ks-ease) .12s backwards; }
    .ks-step-mark-1 { --mark-turn: 45deg; }
    .ks-solution.is-revealed .ks-solution-visual img { animation: ks-illustration-arrive 1s var(--ks-ease) .12s backwards; }
    .ks-cta [data-reveal].is-revealed .ks-button { animation: ks-enter .8s var(--ks-ease) .18s backwards; }
    .ks-workbench.is-assembled .ks-workbench-art>svg>g:not(.construction-lines) {
        animation: ks-piece-arrive 1s var(--ks-ease) var(--piece-delay,0s) backwards;
        animation-play-state: paused;
    }
    #hero_workbench-ruler { --piece-x: -18px; --piece-y: 9px; --piece-delay: .12s; }
    #hero_workbench-dashboard { --piece-x: 0px; --piece-y: 18px; --piece-delay: .18s; }
    #hero_workbench-pencil { --piece-x: 12px; --piece-y: -14px; --piece-delay: .27s; }
    #hero_workbench-code-editor { --piece-x: -18px; --piece-y: 14px; --piece-delay: .34s; }
    #hero_workbench-floating-report { --piece-x: 18px; --piece-y: 10px; --piece-delay: .44s; }
    #hero_workbench-server-cluster { --piece-x: 0px; --piece-y: 14px; --piece-delay: .52s; }
    #hero_workbench-studio-marks { --piece-x: 0px; --piece-y: 0px; --piece-delay: .64s; }
    .ks-workbench.is-assembled #hero_workbench-dashboard>path[stroke="#F5F3E9"] {
        stroke-dasharray: 360;
        animation: ks-chart-draw 1.3s var(--ks-ease) .65s backwards;
        animation-play-state: paused;
    }
    .ks-workbench.is-assembled #hero_workbench-floating-report>path[fill="#35B7C5"],
    .ks-workbench.is-assembled #hero_workbench-floating-report>path[fill="#EB816F"] {
        transform-box: fill-box;
        transform-origin: center bottom;
        animation: ks-bars-grow .9s var(--ks-ease) .8s backwards;
        animation-play-state: paused;
    }
    .ks-workbench.is-art-visible:not(.is-document-hidden) .ks-workbench-art>svg>g,
    .ks-workbench.is-art-visible:not(.is-document-hidden) #hero_workbench-dashboard>path,
    .ks-workbench.is-art-visible:not(.is-document-hidden) #hero_workbench-floating-report>path {
        animation-play-state: running;
    }
    @media (hover: hover) and (pointer: fine) {
        .ks-service:hover .ks-service-art { border-radius: 6px 6px 22px 6px; box-shadow: 0 9px 24px #293d3010; }
        .ks-service:hover .ks-service-art img { transform: translateY(-2px) rotate(-.4deg) scale(1.055); }
        .ks-service:hover .ks-service-index { transform: translateX(3px); color: #eff1e8; }
        .ks-service:hover .ks-service-arrow .ks-icon { animation: ks-icon-nudge .45s var(--ks-ease); }
        .ks-text-link:hover .ks-icon { transform: translateY(-2px); }
        .ks-partners a:hover .ks-icon { transform: translate(1px,-1px); }
        .ks-footer-nav .ks-back-top:hover .ks-icon { transform: translateY(-3px); }
    }
    @media (max-width: 700px) {
        .ks-navigation.is-open { animation: ks-menu-arrive .25s var(--ks-ease) both; }
    }
}
@keyframes ks-piece-arrive {
    from { opacity: 0; transform: translate(var(--piece-x,0px),var(--piece-y,0px)); }
    to { opacity: 1; transform: translate(0,0); }
}
@keyframes ks-chart-draw {
    from { stroke-dashoffset: 360; }
    to { stroke-dashoffset: 0; }
}
@keyframes ks-bars-grow {
    from { transform: scaleY(.12); }
    to { transform: scaleY(1); }
}
@keyframes ks-illustration-arrive {
    from { opacity: 0; transform: translateY(16px) scale(.96); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes ks-mark-arrive {
    from { opacity: 0; transform: translateY(8px) rotate(var(--mark-turn,0deg)) scale(.35); }
    to { opacity: 1; transform: translateY(0) rotate(var(--mark-turn,0deg)) scale(1); }
}
@keyframes ks-icon-nudge {
    45% { transform: translateX(3px); }
    65% { transform: translateX(-2px); }
    100% { transform: translateX(0); }
}
@keyframes ks-menu-arrive {
    from { opacity: 0; transform: translateY(-7px); }
    to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
    .ks-service:hover .ks-service-art img, .ks-service:focus-visible .ks-service-art img,
    .ks-solution:hover .ks-solution-visual img, .ks-solution:focus-within .ks-solution-visual img,
    .ks-button:hover, .ks-button:active, .ks-nav-contact:active { transform: none; }
}

/* Service summaries reveal useful scope before inviting a conversation. */
.ks-services { align-items: start; }
.ks-service-summary { display: block; list-style: none; cursor: pointer; border-radius: 7px; -webkit-tap-highlight-color: transparent; }
.ks-service-summary::-webkit-details-marker { display: none; }
.ks-service-summary::marker { content: ''; }
.ks-service-summary:focus-visible h3, .ks-service[open] h3 { color: var(--ks-teal); }
.ks-service-summary:focus-visible .ks-service-arrow, .ks-service[open] .ks-service-arrow { background: var(--ks-teal); }
.ks-service-prompt { display: flex; align-items: center; gap: 7px; margin-top: 13px; color: var(--ks-teal); font-size: 11px; font-weight: 700; line-height: 1.5; }
.ks-service-prompt .ks-icon { width: 16px; height: 16px; flex-basis: 16px; transition: transform .35s var(--ks-ease); }
.ks-service-less, .ks-service[open] .ks-service-more { display: none; }
.ks-service[open] .ks-service-less { display: inline; }
.ks-service[open] .ks-service-prompt .ks-icon, .ks-service[open] .ks-service-arrow { transform: rotate(180deg); }
.ks-service-details { margin-top: 18px; padding: 17px 0 4px; border-top: 1px solid var(--ks-line); }
.ks-service-details ul { list-style: none; margin: 0 0 17px; padding: 0; display: grid; gap: 9px; }
.ks-service-details li { display: flex; align-items: flex-start; gap: 9px; font-size: 13px; line-height: 1.6; }
.ks-service-details li .ks-icon { width: 16px; height: 16px; flex-basis: 16px; color: var(--ks-teal); margin-top: 2px; }
.ks-service-details .ks-service-cta { display: inline-flex; min-height: 44px; font-size: 12px; border-bottom: 1px solid #247d7833; }
@media (prefers-reduced-motion: no-preference) {
    .ks-service[open] .ks-service-details { animation: ks-details-arrive .38s var(--ks-ease) both; }
    @supports (interpolate-size: allow-keywords) {
        .ks-service { interpolate-size: allow-keywords; }
        .ks-service::details-content { block-size: 0; overflow: clip; transition: block-size .38s var(--ks-ease), content-visibility .38s allow-discrete; }
        .ks-service[open]::details-content { block-size: auto; }
    }
}
@keyframes ks-details-arrive { from { opacity: 0; transform: translateY(-7px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 700px) {
    .ks-service-prompt { font-size: 11px; }
    .ks-service-details li { font-size: 12px; }
}
@media (max-width: 560px) {
    .ks-services { grid-template-columns: minmax(0,1fr); gap: 32px; }
    .ks-service-art { aspect-ratio: 1.85; margin-bottom: 17px; }
    .ks-service h3 { font-size: 22px; }
    .ks-service p { font-size: 14px; max-width: 420px; }
    .ks-service-prompt, .ks-service-details li, .ks-service-details .ks-service-cta { font-size: 13px; }
    .ks-service-index { left: 15px; top: 11px; font-size: 9px; }
    .ks-service-arrow { width: 28px; height: 28px; right: 12px; bottom: 12px; }
}
