/* inline CSS from contact */

:root{--ink:#111827;--muted:#526078;--blue:#1255ef;--line:#dce4f0;--dark:#0d1524;--max:1364px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;display:block}.container{width:min(calc(100% - 72px),var(--max));margin:auto}
.site-header{height:99px;background:white;border-bottom:1px solid #e8edf5;position:relative;z-index:10}.nav{height:98px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand img{width:285px;height:auto}.nav-links{display:flex;gap:36px;align-items:center;margin-left:auto;margin-right:auto;font-size:14px;font-weight:500}.nav-links a:hover,.text-link:hover{color:var(--blue)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;padding:16px 28px;background:var(--blue);color:white;min-height:54px;font-size:14px;font-weight:600;white-space:nowrap;transition:background .2s}.button:hover{background:#073fc8}.button span{font-size:22px;font-weight:400}.nav>.button{width:211px}.menu-toggle{display:none;background:none;border:0;font-size:26px;cursor:pointer}
.hero{position:relative;overflow:hidden;background:linear-gradient(130deg,#fff 0%,#fff 43%,#eaf2ff 75%,#dae7fa 100%)}.hero-inner{min-height:557px;position:relative;display:flex;align-items:flex-start}.hero-content{width:60%;position:relative;z-index:2;padding:47px 0 0}.eyebrow{display:flex;align-items:center;gap:15px;font-size:11px;letter-spacing:2.6px;text-transform:uppercase;font-weight:700;color:#52617a}.eyebrow:before{content:"";height:2px;width:59px;background:var(--blue)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(51px,5.65vw,89px);line-height:1.01;letter-spacing:-.065em;font-weight:550;margin:33px 0 22px;white-space:nowrap}h1 em{font-style:normal;color:var(--blue)}.hero-content>p{font-size:18px;line-height:1.45;color:#4d5a72;max-width:560px;margin-bottom:0}.hero-actions{display:flex;align-items:center;gap:38px;margin-top:25px}.hero-actions .button{min-width:270px}.text-link{display:inline-flex;gap:20px;align-items:center;font-size:14px;font-weight:600}.text-link span{font-size:20px}
.hero-visual{position:absolute;z-index:1;right:calc((min(100vw - 72px,var(--max)) - 100vw)/2);top:0;width:min(708px,calc(50vw - 60px));height:auto;aspect-ratio:708 / 556;overflow:visible;background:transparent}.hero-visual img{display:block;width:100%;height:auto;aspect-ratio:708 / 556;object-fit:contain;max-width:none}.hero-visual:before{content:"";position:absolute;z-index:-1;inset:0 0 0 -160px;background:linear-gradient(130deg,transparent,#e4eeff)}
.projects-strip{height:118px;margin-top:-118px;position:relative;z-index:3;background:linear-gradient(90deg,#fff 0%,#fff 49%,rgba(255,255,255,.82) 58%,rgba(255,255,255,0) 79%);border-bottom:1px solid var(--line)}.strip-inner{height:118px;display:flex;align-items:center;gap:40px}.strip-label{font-size:11px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:#62718c;white-space:nowrap}.strip-items{display:flex;align-items:center;gap:48px;white-space:nowrap;color:#45516a}.strip-items b{font-size:24px;letter-spacing:-1px}.strip-items b:nth-child(3){letter-spacing:0;font-size:20px}.strip-items b:nth-child(4){font-style:italic}
section{scroll-margin-top:15px}.section{padding:35px 0 26px}.section-top{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:19px}.section-top h2{font-size:clamp(38px,4vw,54px);letter-spacing:-.06em;font-weight:550;line-height:1.08;margin:20px 0 0}.section-top>p{max-width:480px;color:var(--muted);line-height:1.55;font-size:16px;margin:0}.services{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.service{border:1px solid var(--line);min-height:110px;padding:19px 25px;position:relative;display:grid;grid-template-columns:47px 1fr;grid-template-rows:auto auto;align-content:center;column-gap:16px}.service-icon{color:var(--blue);font-size:32px;grid-row:1/3;align-self:start;line-height:1}.service-icon svg{width:32px;height:32px;display:block;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none}.service h3{font-size:16px;letter-spacing:-.02em;margin:0 0 5px}.service p{font-size:13px;line-height:1.4;color:var(--muted);margin:0;max-width:190px}.service .arrow{position:absolute;right:17px;bottom:16px;color:var(--blue);font-size:21px}
.work{background:var(--dark);color:white;position:relative;overflow:hidden;padding:28px 0 75px}.work:before{content:"";position:absolute;width:700px;height:700px;right:-180px;top:-520px;border:1px solid #2453a3;transform:rotate(45deg)}.work .eyebrow{color:#b3bed0}.work .section-top p{color:#bdc8d9}.work-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.work-card{background:#18263d;min-height:270px;padding:30px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;border:1px solid #293c5d}.work-card:before{content:"";position:absolute;width:280px;height:280px;right:-90px;top:-90px;border:35px solid #205bd3;opacity:.35;transform:rotate(45deg)}.work-card:nth-child(2){background:#22293a}.work-card:nth-child(3){background:#122e43}.work-card:nth-child(4){background:#25243a}.work-card .index{font-size:11px;letter-spacing:2px;color:#a9b8d1}.work-card h3{font-size:45px;letter-spacing:-.05em;margin:50px 0 9px;position:relative}.work-card p{font-size:13px;color:#bfc9dc;position:relative}.work-card .corner{position:absolute;right:25px;bottom:25px;color:#72a4ff;font-size:25px}
.approach-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:35px}.step{border-top:2px solid var(--blue);padding-top:20px}.step small{color:var(--blue);font-weight:700;letter-spacing:2px}.step h3{font-size:25px;margin:25px 0 12px}.step p{color:var(--muted);line-height:1.65;font-size:15px}.contact{background:#eaf1ff;padding:65px 0}.contact-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}.contact h2{font-size:clamp(38px,5vw,65px);line-height:1.06;letter-spacing:-.065em;margin:20px 0 0;font-weight:550}.footer{background:white;padding:35px 0}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;color:#64718a;font-size:12px}.footer img{width:200px}.footer-links{display:flex;gap:24px}
@media(max-width:1200px){.container{width:calc(100% - 64px)}.nav-links{gap:19px}.brand img{width:245px}.hero-content{width:65%}h1{font-size:clamp(46px,5.5vw,72px)}.hero-visual{right:-32px;width:51vw}.strip-items{gap:25px}.strip-items b{font-size:19px}.service{padding:15px;column-gap:8px;grid-template-columns:35px 1fr}}
@media(max-width:760px){.container{width:calc(100% - 38px)}.site-header,.nav{height:76px}.brand img{width:205px}.nav>.button{display:none}.menu-toggle{display:block}.nav-links{display:none;position:absolute;top:76px;left:0;right:0;background:white;padding:24px;flex-direction:column;align-items:flex-start;box-shadow:0 15px 20px #10182722}.nav-links.open{display:flex}.hero-inner{min-height:unset;display:flex;flex-direction:column}.hero-content{width:100%;padding:42px 0 20px}h1{font-size:clamp(43px,9vw,68px);white-space:normal}.hero-content>p{font-size:16px}.hero-actions{flex-wrap:wrap;gap:20px}.hero-visual{position:relative;right:auto;top:auto;width:calc(100% + 38px);margin:0 -19px;height:auto;aspect-ratio:708 / 556;overflow:hidden}.hero-visual img{width:100%;height:auto;object-fit:contain;object-position:center}.projects-strip{margin-top:0;height:auto;background:white}.strip-inner{height:auto;padding:25px 0;display:block}.strip-label{margin-bottom:17px}.strip-items{flex-wrap:wrap;gap:15px 25px}.strip-items b{font-size:18px}.section{padding:50px 0}.section-top{display:block}.section-top>p{margin-top:18px}.services,.work-grid,.approach-grid{grid-template-columns:1fr}.service{min-height:125px;grid-template-columns:50px 1fr}.work-card{min-height:240px}.contact-inner{display:block}.contact .button{margin-top:28px}.footer-inner{align-items:flex-start;flex-direction:column}.footer-links{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* Portfolio redesign based on the approved dark visual proof */
.work{padding:72px 0 76px;background:radial-gradient(ellipse at 72% -35%,#14396a 0%,#0b1626 45%,#07111d 100%);position:relative;overflow:hidden}
.work:before{width:550px;height:550px;right:-150px;top:-480px;border:1px solid #2670c8;transform:rotate(42deg);pointer-events:none}
.work .container{position:relative;z-index:1}
.work-heading{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(240px,.58fr) auto;align-items:end;gap:32px;margin-bottom:31px}
.work-heading h2{font-size:clamp(42px,4.6vw,70px);line-height:1.05;margin-top:27px;white-space:nowrap;font-weight:540}
.work-heading h2 em{font-style:normal;color:#2583ff}
.work-heading>p{margin:0 0 10px;font-size:16px;line-height:1.55;color:#b7c5d9}
.work-all{display:flex;align-items:center;justify-content:center;gap:35px;padding:18px 23px;min-height:63px;border:1px solid #2583ff;border-radius:5px;white-space:nowrap;font-size:15px;transition:background .2s}
.work-all:hover{background:#174a86}.work-all span{font-size:23px;color:#2789ff}
.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.portfolio-card{display:block;position:relative;min-width:0;min-height:345px;overflow:hidden;border:1px solid #2d4967;border-radius:7px;background:#101d2d;color:#fff;isolation:isolate}
.portfolio-photo{position:absolute;z-index:-2;top:0;right:0;bottom:0;width:69%;background-position:center;background-size:cover;transition:transform .45s ease}
.portfolio-card:hover .portfolio-photo{transform:scale(1.045)}
.pace-card .portfolio-photo{background-image:url('/assets/project-pace.jpg');background-position:50% 50%}
.ebuy-card .portfolio-photo{background-image:url('/assets/project-ebuygum.jpg');background-position:53% 50%}
.opus-card .portfolio-photo{background-image:url('/assets/project-opus.jpg');background-position:40% 50%}
.vx-card .portfolio-photo{background-image:url('/assets/project-vx27.jpg');background-position:50% 50%}
.portfolio-shade{position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#09121f 0%,rgba(9,18,31,.97) 26%,rgba(9,18,31,.72) 43%,rgba(9,18,31,.12) 70%,transparent 100%)}
.portfolio-info{height:100%;min-height:345px;padding:28px 28px 24px;display:flex;flex-direction:column;justify-content:space-between}
.portfolio-category{font-size:12px;letter-spacing:2.1px;color:#e3eaf5}.portfolio-category strong{color:#2889ff;font-size:14px;letter-spacing:1px;font-weight:700}.portfolio-category:after{content:"";display:block;width:30px;height:2px;background:#2489ff;margin-top:14px}
.portfolio-copy{position:relative;z-index:2}.portfolio-copy h3{font-size:clamp(32px,3.3vw,47px);font-weight:650;letter-spacing:-.05em;margin:0 0 12px;line-height:1.05}.portfolio-copy p{font-size:14px;line-height:1.5;color:#d2dce9;margin:0 0 25px}.portfolio-arrow{display:flex;width:54px;height:54px;align-items:center;justify-content:center;border:1px solid #3975bb;border-radius:50%;font-size:26px;font-weight:300;transition:background .2s,transform .2s}.portfolio-card:hover .portfolio-arrow{background:#1455bc;transform:translateX(4px)}
@media(max-width:1050px){.work-heading{grid-template-columns:1fr auto}.work-heading>p{grid-column:1;grid-row:2}.work-all{grid-column:2;grid-row:1/3}.portfolio-card,.portfolio-info{min-height:300px}.portfolio-photo{width:77%}}
@media(max-width:760px){.work{padding:55px 0}.work-heading{display:block}.work-heading h2{font-size:clamp(39px,8vw,58px);white-space:normal}.work-heading>p{margin:18px 0}.work-all{display:inline-flex;min-height:50px;margin:8px 0 0}.work-grid{grid-template-columns:1fr;gap:13px}.portfolio-card,.portfolio-info{min-height:320px}.portfolio-photo{width:80%}.portfolio-shade{background:linear-gradient(90deg,#09121f 0%,rgba(9,18,31,.94) 22%,rgba(9,18,31,.6) 53%,rgba(9,18,31,.08) 100%)}.portfolio-info{padding:22px}.portfolio-copy h3{font-size:39px}.portfolio-copy p{max-width:270px}}
.veyra-card .portfolio-photo{background-image:url('/assets/project-veyra.jpg');background-position:center 43%;background-size:cover}.emberlyn-card .portfolio-photo{background-image:url('/assets/project-emberlyn.jpg');background-position:center 50%;background-size:cover}
/* Six project device showcase — updated from the approved visual proof */
.work{padding:57px 0 66px;background:radial-gradient(ellipse at 70% -25%,#163b70 0%,#0b182a 43%,#07111e 100%)}
.work-heading{margin-bottom:25px}
.work-heading h2{font-size:clamp(43px,4.5vw,66px)}
.work-grid{gap:12px}
.portfolio-card{min-height:275px;border-color:#32465d;border-radius:9px;background:#0c1727}
.portfolio-info{min-height:275px;padding:22px 24px 19px}
.portfolio-photo{width:72%;height:100%;top:0;right:0;bottom:auto;background-repeat:no-repeat;background-size:cover;background-position:center}
.portfolio-shade{background:linear-gradient(90deg,#091421 0%,rgba(9,20,33,.98) 23%,rgba(9,20,33,.77) 38%,rgba(9,20,33,.05) 65%,transparent 100%)}
.portfolio-category{font-size:11px;letter-spacing:1.9px}
.portfolio-category:after{margin-top:11px}
.portfolio-copy h3{font-size:clamp(31px,3vw,43px);margin-bottom:8px}
.portfolio-copy p{font-size:12px;max-width:310px;margin-bottom:21px}
.portfolio-arrow{width:48px;height:48px}
.pace-card .portfolio-photo{background-image:url('/assets/project-pace.jpg');background-position:center}
.ebuy-card .portfolio-photo{background-image:url('/assets/project-ebuygum.jpg');background-position:center}
.opus-card .portfolio-photo{background-image:url('/assets/project-opus.jpg');background-position:center}
.vx-card .portfolio-photo{background-image:url('/assets/project-vx27.jpg');background-position:center}
.veyra-card .portfolio-photo{background-image:url('/assets/project-veyra.jpg');background-position:center}
.emberlyn-card .portfolio-photo{background-image:url('/assets/project-emberlyn.jpg');background-position:center}
@media(max-width:760px){
 .work{padding:48px 0}
 .portfolio-card,.portfolio-info{min-height:275px}
 .portfolio-photo{width:77%;background-size:cover}
 .portfolio-info{padding:20px}
 .portfolio-copy h3{font-size:35px}
 .portfolio-copy p{max-width:220px}
}
.cta-arrow{display:block;flex:none;width:21px;height:21px}.button .cta-arrow{color:#fff}.work-all .cta-arrow,.service .cta-arrow{color:#2889ff}.service .arrow{display:flex;align-items:center;justify-content:center}.button:hover .cta-arrow,.work-all:hover .cta-arrow{transform:translate(2px,-2px);transition:transform .2s ease}/* Portfolio navigation: fixed optical centring and consistent heavy SVG stroke. */
.portfolio-arrow{display:grid!important;place-items:center!important;flex:0 0 48px;padding:0!important;line-height:0!important;font-size:0!important;box-sizing:border-box}
.portfolio-arrow-icon{display:block;width:24px;height:24px;flex:none;transform:translateX(0);overflow:visible}

/* Restrained, GPU-friendly entrance motion; content remains visible without JS. */
@media (prefers-reduced-motion: no-preference) {
  .motion-ready .reveal {opacity:0;transform:translate3d(var(--reveal-x,0px),var(--reveal-y,28px),0);transition:opacity 850ms cubic-bezier(.22,1,.36,1),transform 1050ms cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0ms)}
  .motion-ready .reveal.is-visible {opacity:1;transform:translate3d(0,0,0)}
  .motion-ready .reveal.from-left {--reveal-x:-44px;--reveal-y:0px}
  .motion-ready .reveal.from-right {--reveal-x:44px;--reveal-y:0px}
  .motion-ready .reveal.from-bottom {--reveal-y:35px}
  .motion-ready .portfolio-card .portfolio-photo {transition:transform 1400ms cubic-bezier(.22,1,.36,1),filter 1100ms ease;transform:scale(1.055)}
  .motion-ready .portfolio-card.is-visible .portfolio-photo {transform:scale(1)}
  .motion-ready .portfolio-card.is-visible:hover .portfolio-photo {transform:scale(1.045)}
  .motion-ready .hero-visual img {animation:hero-breathe 9s ease-in-out infinite alternate;transform-origin:60% 55%}
  @keyframes hero-breathe {from{transform:scale(1)}to{transform:scale(1.018)}}
}
@media (prefers-reduced-motion: reduce) {
 .reveal,.portfolio-photo,.hero-visual img {opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
}

.subhero{padding:95px 0 72px;background:linear-gradient(130deg,#fff,#eff5ff);border-bottom:1px solid var(--line)}.subhero h1{white-space:normal;font-size:clamp(49px,6.5vw,88px);max-width:1040px}.subhero p{font-size:19px;line-height:1.65;color:var(--muted);max-width:700px}.subhero .eyebrow{margin-bottom:25px}.subsection{padding:80px 0}.subsection h2{font-size:clamp(35px,4vw,55px);letter-spacing:-.055em;font-weight:560}.subsection p{line-height:1.75;color:var(--muted);font-size:17px}.case-image{width:100%;border-radius:12px;display:block;object-fit:cover;max-height:640px;background:#0a1626}.case-banner{padding:70px 0;background:#0b1524;color:white}.case-banner h2{font-size:clamp(35px,4vw,58px);letter-spacing:-.05em}.case-banner p{color:#b8c7dd;max-width:700px;line-height:1.7}.case-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.case-grid img{width:100%;border-radius:9px}.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.mini-card{padding:28px;border:1px solid var(--line);min-height:180px}.mini-card h3{font-size:22px}.mini-card p{font-size:15px}.project-list{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.project-link{position:relative;overflow:hidden;background:#101a2b;color:white;min-height:300px;border:1px solid #34455d;border-radius:8px;display:flex;align-items:flex-end;padding:28px}.project-link img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.65;transition:transform .6s}.project-link:hover img{transform:scale(1.04)}.project-link:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#091421 0%,transparent 100%);z-index:1}.project-link>span{position:relative;z-index:2}.project-link strong{font-size:35px;display:block;letter-spacing:-.04em}.project-link small{letter-spacing:2px;text-transform:uppercase}.breadcrumb{display:inline-flex;gap:10px;font-size:13px;color:#6a7890;margin-bottom:28px}.breadcrumb a:hover{color:var(--blue)}.subcta{padding:65px 0;background:#eaf1ff}.subcta-inner{display:flex;align-items:center;justify-content:space-between;gap:25px}.subcta h2{font-size:clamp(34px,4vw,55px);letter-spacing:-.05em;margin:0}.contact-panel{max-width:850px;padding:38px;border:1px solid var(--line);background:#fff}.contact-panel a.email{font-size:clamp(22px,3.5vw,40px);color:var(--blue);overflow-wrap:anywhere}.service-detail{border-top:1px solid var(--line);padding:34px 0;display:grid;grid-template-columns:1fr 1fr;gap:40px}.service-detail h3{font-size:27px;letter-spacing:-.04em}.service-detail p{font-size:16px}.subpage .site-header .brand img{width:285px}
@media(max-width:760px){.subhero{padding:58px 0}.subhero h1{font-size:clamp(43px,10vw,65px)}.subsection{padding:55px 0}.case-grid,.mini-grid,.project-list,.service-detail{grid-template-columns:1fr}.subcta-inner{display:block}.subcta .button{margin-top:22px}.project-link{min-height:260px}}
@media(prefers-reduced-motion:reduce){.project-link img{transition:none}}


/* original /assets/site-header.css */

/* Unified site navigation, consistent on every page */
.ka-header{height:86px!important;background:#fff!important;color:#142033!important;border-bottom:1px solid #e2e8f1!important;position:relative!important;z-index:50!important;font-family:Arial,Helvetica,sans-serif}
.ka-header .ka-nav{width:min(1320px,calc(100% - 72px));height:100%!important;margin:auto;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:24px!important;padding:0!important}
.ka-header .ka-brand{display:block!important;flex:none!important}
.ka-header .ka-brand img{display:block!important;width:228px!important;height:auto!important;max-width:100%!important;filter:none!important;background:none!important;padding:0!important;border-radius:0!important}
.ka-header .ka-links{display:flex!important;align-items:center!important;gap:clamp(13px,2.1vw,32px)!important;margin:0 auto!important;font-size:13px!important;font-weight:600!important}
.ka-header .ka-links a{color:#26354a!important;white-space:nowrap!important}
.ka-header .ka-links a:hover,.ka-header .ka-links a[aria-current="page"]{color:#1558e9!important}
.ka-header .ka-talk{display:inline-flex!important;align-items:center!important;justify-content:space-between!important;gap:20px!important;min-width:145px!important;min-height:45px!important;padding:12px 16px!important;background:#1558e9!important;color:#fff!important;font-size:13px!important;font-weight:700!important;border:0!important;border-radius:2px!important;white-space:nowrap!important;margin:0!important}
.ka-header .ka-talk:hover{background:#0947c8!important}
.ka-header .ka-talk svg{width:19px;height:19px;flex:none}
.ka-header .ka-toggle{display:none!important;color:#142033!important;background:transparent!important;border:1px solid #d5e0ed!important;padding:7px 11px!important;font-size:22px!important;cursor:pointer!important}
@media(max-width:920px){
 .ka-header .ka-nav{width:calc(100% - 40px)}
 .ka-header .ka-brand img{width:192px!important}
 .ka-header .ka-links{gap:12px!important;font-size:12px!important}
 .ka-header .ka-talk{min-width:115px!important;gap:8px!important}
}
@media(max-width:760px){
 .ka-header{height:70px!important}
 .ka-header .ka-brand img{width:182px!important}
 .ka-header .ka-talk{margin-left:auto!important;min-width:0!important;min-height:40px!important}
 .ka-header .ka-toggle{display:block!important}
 .ka-header .ka-links{display:none!important;position:absolute!important;top:70px!important;left:0!important;right:0!important;background:#fff!important;padding:22px!important;box-shadow:0 18px 30px #06182d24!important;flex-direction:column!important;align-items:stretch!important;gap:0!important}
 .ka-header .ka-links.open{display:flex!important}
 .ka-header .ka-links a{padding:13px 5px!important;border-bottom:1px solid #e8eef6!important}
}
@media(max-width:400px){.ka-header .ka-brand img{width:145px!important}.ka-header .ka-talk{font-size:11px!important;padding:9px!important}}


/* original /assets/page-motion.css */
/* Kinetic Axis unified motion.
   Animation starts on adding .ka-is-visible, even when initial page styles are
   calculated within the same browser paint. Content is visible with JS off. */
@media (prefers-reduced-motion: no-preference) {
  html.kad-motion-prep [data-ka-reveal],
  html.kad-motion-ready [data-ka-reveal] {
    opacity: 0;
    transform: translate3d(var(--ka-x, 0px), var(--ka-y, 28px), 0);
  }
  html [data-ka-reveal="left"]  { --ka-x: -44px; --ka-y: 0px; }
  html [data-ka-reveal="right"] { --ka-x:  44px; --ka-y: 0px; }
  html [data-ka-reveal="up"]    { --ka-x:   0px; --ka-y: 32px; }
  /* Full-bleed device photography fades only, keeping screen geometry intact. */
  html [data-ka-reveal="fade"]  { --ka-x:   0px; --ka-y: 0px; }

  html.kad-motion-ready [data-ka-reveal].ka-is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    animation-name: ka-reveal-opacity, ka-reveal-movement;
    animation-duration: 850ms, 1050ms;
    animation-timing-function: cubic-bezier(.22,1,.36,1), cubic-bezier(.22,1,.36,1);
    animation-delay: var(--ka-delay, 0ms), var(--ka-delay, 0ms);
    /* Backwards fills the delayed hidden pose; after animation the normal
       final rule takes over, so hover transforms are not permanently blocked. */
    animation-fill-mode: backwards, backwards;
    animation-iteration-count: 1, 1;
  }
  @keyframes ka-reveal-opacity { from { opacity: 0; } to { opacity: 1; } }
  @keyframes ka-reveal-movement {
    from { transform: translate3d(var(--ka-x, 0px), var(--ka-y, 28px), 0); }
    to   { transform: translate3d(0, 0, 0); }
  }

  html.kad-motion-ready .portfolio-card .portfolio-photo {
    transition: transform 1400ms cubic-bezier(.22,1,.36,1), filter 1100ms ease;
    transform: scale(1.055);
  }
  html.kad-motion-ready .portfolio-card.ka-is-visible .portfolio-photo {
    transform: scale(1);
  }
  html.kad-motion-ready .portfolio-card.ka-is-visible:hover .portfolio-photo {
    transform: scale(1.045);
  }
  html.kad-motion-ready .hero-visual img {
    animation: ka-hero-breathe 9s ease-in-out infinite alternate;
    transform-origin: 60% 55%;
  }
  @keyframes ka-hero-breathe { from {transform:scale(1)} to {transform:scale(1.018)} }
}
@media (prefers-reduced-motion: reduce) {
  [data-ka-reveal], .portfolio-photo, .hero-visual img {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
  }
}


/* original /assets/footer-contact.css */

.kad-footer,.kad-footer *{box-sizing:border-box}
.kad-footer{background:#101b2b!important;color:#e8eef9!important;padding:63px 0 0!important;border:0!important;line-height:1.55;font:14px/1.55 Arial,Helvetica,sans-serif}
.kad-footer__wrap{width:min(1364px,calc(100% - 64px));margin-inline:auto}
.kad-footer__grid{display:grid;grid-template-columns:minmax(235px,1.65fr) repeat(3,minmax(130px,.7fr)) minmax(165px,.9fr);gap:34px;padding-bottom:50px}
.kad-footer__brand img{width:210px;height:auto;background:white;border-radius:3px;padding:5px 10px;max-width:100%}
.kad-footer__brand p{color:#bac8dc;max-width:320px;font-size:14px;line-height:1.65;margin:20px 0 16px}
.kad-footer__brand a.kad-email{display:inline-block;font-weight:600;color:#fff;text-decoration:underline;text-decoration-color:#4e87e8;text-underline-offset:5px;overflow-wrap:anywhere}
.kad-footer__col h2{font:700 12px Arial,Helvetica,sans-serif;letter-spacing:1.9px;text-transform:uppercase;color:#7aacf9;margin:6px 0 20px}
.kad-footer__col a{display:block;color:#d3dfef;text-decoration:none;font-size:14px;margin:0 0 12px;width:max-content;max-width:100%}
.kad-footer__col a:hover,.kad-footer__col a[aria-current="page"]{color:#70a9ff;text-decoration:underline;text-underline-offset:4px}
.kad-footer__bottom{border-top:1px solid #304157;padding:20px 0;display:flex;justify-content:space-between;align-items:center;gap:20px;color:#aab9cc;font-size:12px}
.kad-footer__bottom a{color:#dce7f5;text-decoration:underline;text-underline-offset:3px}
@media(max-width:1080px){.kad-footer__grid{grid-template-columns:1.5fr repeat(2,1fr);gap:30px}.kad-footer__brand{grid-row:span 2}}
@media(max-width:640px){.kad-footer{padding-top:40px!important}.kad-footer__wrap{width:calc(100% - 40px)}.kad-footer__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:23px}.kad-footer__brand{grid-column:1/-1;grid-row:auto}.kad-footer__bottom{flex-direction:column;align-items:flex-start}}
.kad-contact *{box-sizing:border-box}.kad-contact{padding:22px 0 50px}
.kad-contact-grid{display:grid;grid-template-columns:minmax(260px,.79fr) minmax(0,1.21fr);gap:clamp(28px,6vw,100px);align-items:start}
.kad-contact-intro h2{font-size:clamp(32px,3.5vw,47px);letter-spacing:-.055em;line-height:1.12;margin:20px 0}
.kad-contact-intro p{font-size:16px;line-height:1.7;color:#52617a;max-width:450px}
.kad-contact-intro a{overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:5px;color:#1255ef;font-weight:700}
.kad-form{background:#fff;border:1px solid #dae3f1;border-radius:10px;padding:clamp(22px,3vw,42px);box-shadow:0 22px 55px #15355d10}
.kad-form__title{font-size:22px;letter-spacing:-.03em;margin:0 0 8px;color:#142033}
.kad-form__help{font-size:13px;color:#63738a;line-height:1.6;margin:0 0 25px}
.kad-form__row{display:grid;grid-template-columns:1fr 1fr;gap:17px}
.kad-form__field{margin:0 0 20px}.kad-form__field label{display:block;margin-bottom:9px;font-size:13px;color:#1d2e48;font-weight:700}
.kad-form__field input,.kad-form__field select,.kad-form__field textarea{width:100%;border:1px solid #c9d5e5;border-radius:4px;background:#fff;color:#142033;padding:13px 14px;font:15px/1.45 Arial,Helvetica,sans-serif;min-height:49px}
.kad-form__field textarea{min-height:160px;resize:vertical}
.kad-form__field input:focus,.kad-form__field select:focus,.kad-form__field textarea:focus{border-color:#115af4;outline:3px solid #115af421}
.kad-form__field small{font-size:12px;color:#66768d;display:block;margin-top:6px}
.kad-form__bot{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
.kad-form__notice{font-size:13px;line-height:1.55;color:#4f6179;margin:0 0 22px}
.kad-form__notice a{color:#0c55e5;text-decoration:underline}
.kad-form__submit{display:inline-flex;justify-content:center;align-items:center;gap:19px;background:#1359ec;color:#fff;border:1px solid #1359ec;border-radius:3px;font:700 14px Arial,Helvetica,sans-serif;padding:16px 25px;min-height:51px;cursor:pointer}
.kad-form__submit:hover{background:#0844c7}.kad-form__submit:disabled{opacity:.65;cursor:wait}
.kad-form__status{min-height:21px;line-height:1.5;font-size:13px;margin:14px 0 0;color:#324967}
.kad-form__status[data-state="success"]{color:#167044}.kad-form__status[data-state="error"]{color:#ae2536}
@media(max-width:780px){.kad-contact-grid{grid-template-columns:1fr}.kad-form__row{grid-template-columns:1fr;gap:0}}

/* Match the site's heavier SVG CTA arrows, optically centred. */
.kad-form__submit-icon{display:block;flex:0 0 22px;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.7;stroke-linecap:square;stroke-linejoin:miter;transition:transform .2s ease}
.kad-form__submit:not(:disabled):hover .kad-form__submit-icon{transform:translate(2px,-2px)}
.kad-form__submit-label{display:block;line-height:1.2}

/* Prevent transformed scroll-reveal content from causing horizontal scroll on phones. */
html,body{overflow-x:clip}


/* original /assets/button-nav-polish.css */
/* Kinetic Axis: one consistent CTA system and an accessible Services navigation. */
:root{--kad-nav-blue:#1558ef;--kad-nav-text:#26354a}
/* Text and arrow should be one balanced, optically centred unit instead of far apart. */
a.button:not(.header-cta),button.button:not(.header-cta),a.mkt-btn,.kad-form__submit{
  display:inline-flex!important;flex-flow:row nowrap!important;align-items:center!important;
  justify-content:center!important;column-gap:16px!important;
  width:max-content;max-width:100%;min-height:54px;
  padding:14px 23px!important;text-align:center;line-height:1.25;vertical-align:middle;
}
a.button:not(.header-cta) svg,button.button:not(.header-cta) svg,
a.mkt-btn svg,.kad-form__submit svg{
  display:block!important;flex:0 0 21px!important;width:21px!important;height:21px!important;
  align-self:center!important;stroke-width:2.7!important;
}
/* Preserve natural CTA widths and avoid distributing label and icon across a wide box. */
.hero-actions .button{min-width:0!important}
.site-header a.ka-talk,.site-header a.header-cta{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  gap:14px!important;min-height:46px!important;white-space:nowrap!important;
  text-align:center!important;
}
.site-header a.ka-talk svg,.site-header a.header-cta svg{
  flex:0 0 20px!important;display:block!important;width:20px!important;height:20px!important;
  stroke-width:2.7!important;align-self:center!important;
}
.kad-form__submit{cursor:pointer;width:auto}
/* Service menu works in either header used by the existing website. */
.services-nav-item{position:relative;flex:none;display:flex;align-items:center;z-index:60;min-width:0}
.services-nav-head{display:flex;align-items:center;min-height:40px;white-space:nowrap}
.ka-header .ka-links .services-nav-head>a,
.header-nav .services-nav-head>a{padding:0!important;border:0!important;color:inherit;text-decoration:none}
.services-nav-item.is-current .services-nav-overview,
.services-nav-item .services-nav-overview[aria-current=page]{color:var(--kad-nav-blue)!important}
.services-nav-toggle{width:27px;height:38px;padding:0!important;display:inline-flex;align-items:center;justify-content:center;
  border:0;background:transparent;color:var(--kad-nav-text);cursor:pointer;flex:none;border-radius:4px;margin-left:3px;
}
.services-nav-chevron{transition:transform .2s ease;display:block}
.services-nav-item.is-open .services-nav-chevron{transform:rotate(180deg)}
.services-nav-toggle:focus-visible,.services-dropdown-link:focus-visible,.services-nav-overview:focus-visible{
  outline:2px solid #1762ec!important;outline-offset:4px;
}
.services-dropdown{position:absolute;top:calc(100% + 14px);left:-18px;
  width:min(330px,calc(100vw - 24px));padding:18px 12px 12px;border:1px solid #dbe5f3;
  background:#fff;border-radius:8px;box-shadow:0 20px 50px rgba(11,28,55,.18);
  opacity:0;visibility:hidden;pointer-events:none;transform:translateY(7px);
  transition:opacity .18s ease,transform .22s ease,visibility .18s ease;z-index:100;
}
.services-dropdown::before{content:"";position:absolute;left:0;right:0;top:-17px;height:18px;background:transparent}
.services-nav-item.is-open>.services-dropdown{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);
}
.services-dropdown-label{display:block;color:#7c8ba2;letter-spacing:2px;font-size:10px;font-weight:800;padding:4px 12px 12px}
.ka-header .ka-links .services-dropdown a,
.header-nav .services-dropdown a{display:flex!important;align-items:center!important;justify-content:space-between;
  white-space:normal!important;color:#24334b!important;text-align:left;
  font-size:13px!important;font-weight:600!important;line-height:1.35!important;
  border:0!important;border-radius:5px;min-height:38px;padding:10px 12px!important;letter-spacing:0!important;
}
.ka-header .ka-links .services-dropdown a:hover,.header-nav .services-dropdown a:hover,
.ka-header .ka-links .services-dropdown a[aria-current=page],.header-nav .services-dropdown a[aria-current=page]{
  background:#edf4ff!important;color:#1255ed!important;
}
.services-dropdown-all{margin-bottom:8px;border-bottom:1px solid #e3eaf3!important}
.services-dropdown-small-arrow{font-size:20px;line-height:1}
/* Prevent the old header's active underline from being duplicated on dropdown links. */
.header-nav .services-dropdown a[aria-current=page]::after{display:none!important}
/* Small screens use expandable in-flow links, not an overlaid popup. */
@media(max-width:760px){
  .services-nav-item{display:block;width:100%;flex:none;z-index:auto}
  .services-nav-head{width:100%;display:flex;justify-content:space-between;min-height:45px;border-bottom:1px solid #e8eef6}
  .ka-header .ka-links .services-nav-head>a,
  .header-nav .services-nav-head>a{padding:11px 5px!important;flex:1;line-height:1.35;border:0!important}
  .services-nav-toggle{min-width:42px;min-height:44px;margin:0;color:#1558ef;align-self:center}
  .services-dropdown{display:none;position:static;top:auto;left:auto;width:100%;border:0;border-radius:0;
    background:#f5f8fe;box-shadow:none;padding:6px 10px 9px;
    transform:none!important;opacity:1;visibility:visible;pointer-events:auto;
  }
  .services-dropdown::before{display:none}
  .services-nav-item:not(.is-open)>.services-dropdown{display:none}
  .services-nav-item.is-open>.services-dropdown{display:block}
  .services-dropdown-label{padding:9px 12px 6px}
  .ka-header .ka-links .services-dropdown a,
  .header-nav .services-dropdown a{padding:10px 12px!important;min-height:39px;border:0!important;font-size:13px!important}
  .site-header .ka-talk{gap:10px!important}
  .site-header a.header-cta{display:none!important}
}
@media(prefers-reduced-motion:reduce){.services-dropdown,.services-nav-chevron{transition:none!important}}


/* original /assets/arrow-system.css */
/* Shared arrow system. No glyph arrows: one substantial 3px-stroke SVG everywhere. */
svg.ka-heavy-arrow {
  display:inline-block!important;
  width:20px!important;height:20px!important;
  flex:0 0 20px!important;
  stroke:currentColor!important;stroke-width:3!important;
  stroke-linecap:square!important;stroke-linejoin:miter!important;
  fill:none!important;vertical-align:-.22em;
  shape-rendering:geometricPrecision;
}
.services-dropdown-small-arrow {
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  width:24px!important;height:24px!important;flex:0 0 24px!important;
  line-height:0!important;font-size:0!important;
}
.services-dropdown-small-arrow > svg.ka-heavy-arrow{
  width:21px!important;height:21px!important;flex:0 0 21px!important;stroke-width:3.2!important;
}
.services-nav-chevron.ka-heavy-arrow{width:17px!important;height:17px!important;flex:0 0 17px!important}
.portfolio-arrow svg.ka-heavy-arrow{width:24px!important;height:24px!important;flex:0 0 24px!important}
.service .arrow svg.ka-heavy-arrow{width:21px!important;height:21px!important;flex:0 0 21px!important}
.work-all svg.ka-heavy-arrow,.mkt-textlink svg.ka-heavy-arrow{vertical-align:-.26em}
.ka-commercial-bridge__links svg.ka-heavy-arrow{margin-left:8px}
@media(prefers-reduced-motion:reduce){svg.ka-heavy-arrow{transition:none!important}}


/* original /assets/cta-alignment-final.css */
/* Kinetic Axis CTA geometry: 30 September 2026.
   Labels remain left aligned. The label has its own full-height flex box
   so its rendered text is vertically centred, rather than relying on an
   anonymous text flex-item and its baseline. No top/bottom padding. */
:is(a.button:not(.header-cta),button.button:not(.header-cta),a.mkt-btn,button.mkt-btn,
    button.kad-form__submit,.site-header a.ka-talk,.site-header a.header-cta,a.work-all){
  box-sizing:border-box!important;
  display:inline-flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  justify-content:space-between!important;
  align-items:center!important;
  gap:22px!important;
  min-height:54px!important;
  padding:0 24px!important; /* no extra vertical offset */
  text-align:left!important;
  vertical-align:middle!important;
  line-height:1.2!important;
}
:is(a.button:not(.header-cta),button.button:not(.header-cta),a.mkt-btn,button.mkt-btn,
    button.kad-form__submit,.site-header a.ka-talk,.site-header a.header-cta,a.work-all) > .kad-cta-label{
  display:inline-flex!important;
  align-self:stretch!important;
  align-items:center!important;
  justify-content:flex-start!important;
  flex:0 1 auto!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  font-family:inherit!important;
  font-size:inherit!important;
  font-style:inherit!important;
  font-weight:inherit!important;
  line-height:1.2!important;
  text-align:left!important;
  white-space:inherit!important;
  position:static!important;
  transform:none!important;
}
:is(a.button:not(.header-cta),button.button:not(.header-cta),a.mkt-btn,button.mkt-btn,
    button.kad-form__submit,.site-header a.ka-talk,.site-header a.header-cta,a.work-all) > svg:last-child{
  display:block!important;
  flex:0 0 21px!important;
  align-self:center!important;
  position:static!important;
  inset:auto!important;
  width:21px!important;
  height:21px!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  stroke:currentColor!important;
  stroke-width:3!important;
  stroke-linecap:square!important;
  stroke-linejoin:miter!important;
  fill:none!important;
  pointer-events:none!important;
}
/* Homepage primary CTA: one fixed, symmetric vertical geometry. */
.hero-actions > .button{
  height:56px!important;
  min-height:56px!important;
  padding-block:0!important;
}
/* Preserve the compact header CTA and the wider portfolio CTA. */
.site-header :is(a.ka-talk,a.header-cta){
  min-height:46px!important;
  padding:0 17px!important;
  gap:16px!important;
  white-space:nowrap!important;
}
.site-header :is(a.ka-talk,a.header-cta)>svg:last-child{
  flex-basis:19px!important;
  width:19px!important;
  height:19px!important;
}
a.work-all{min-height:63px!important;}
/* Icon-only secondary links retain their original layout. */
a.text-link,a.mkt-textlink{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  column-gap:14px!important;
  line-height:1.3!important;
  text-align:left!important;
}
a.text-link>span{display:inline-flex!important;align-items:center!important;justify-content:center!important;line-height:1!important;}
a.text-link svg,a.mkt-textlink svg{display:block!important;align-self:center!important;flex:none!important;width:21px!important;height:21px!important;margin:0!important;stroke-width:3!important;}
@media(max-width:620px){
  :is(a.button:not(.header-cta),button.button:not(.header-cta),a.mkt-btn,button.mkt-btn,
      button.kad-form__submit,a.work-all){padding-inline:18px!important;gap:16px!important;}
  .site-header :is(a.ka-talk,a.header-cta){min-height:40px!important;padding:0 12px!important;gap:10px!important;}
  .site-header :is(a.ka-talk,a.header-cta)>svg:last-child{flex-basis:18px!important;width:18px!important;height:18px!important;}
}


/* original /assets/layout-consistency.css */
/* Kinetic Axis / shared content alignment (2026)
   One gutter, one breadcrumb position and one top-of-hero rhythm across inner pages.
   Homepage is intentionally exempt from breadcrumbs and hero height changes. */
:root { --ka-inner-max:1320px; --ka-inner-gutter:36px; --ka-hero-top:48px; --ka-crumb-gap:22px; }

/* Consistent horizontal alignment with the existing main navigation. */
main.mkt-page .mkt-wrap,
.site-root.subpage main .container,
.site-root.kad-policy-page main .container,
.site-root.ka-project-page .page-width {
  width:min(var(--ka-inner-max),calc(100% - (var(--ka-inner-gutter) * 2)))!important;
  margin-inline:auto!important;
}

/* Breadcrumb appears in the same position on every inner page. */
main .ka-crumb,
main .mkt-breadcrumb {
  display:flex!important;flex-wrap:nowrap!important;align-items:center!important;
  width:100%; min-width:0; min-height:20px;
  gap:9px; margin:0 0 var(--ka-crumb-gap)!important; padding:0!important;
  color:#56677e; font-family:Arial,Helvetica,sans-serif;
  font-weight:500; font-size:13px!important; letter-spacing:0!important; line-height:20px!important;
  text-transform:none!important; text-align:left!important;
}
main .ka-crumb a,main .mkt-breadcrumb a { color:inherit;flex:none;white-space:nowrap;text-decoration:none; }
main .ka-crumb a:hover,main .mkt-breadcrumb a:hover { color:#1558e9; }
main .ka-crumb > [aria-hidden="true"],main .mkt-breadcrumb > [aria-hidden="true"] { flex:none;opacity:.7; }
main .ka-crumb > [aria-current="page"],main .mkt-breadcrumb > [aria-current="page"] {
  min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
}

/* Seven marketing heroes: remove vertical centring based on copy length.
   UI/UX, Web Design, Software, Web Apps, Mobile, Services and Work now share
   a fixed top start for the breadcrumb, kicker and illustration. */
main.mkt-page .mkt-hero-grid {
  display:grid;align-items:start!important;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(30px,4.1vw,64px);
  padding-block:var(--ka-hero-top) 60px!important;
  min-height:660px;
}
main.mkt-page .mkt-hero-grid > :first-child { min-width:0;align-self:start; }
main.mkt-page .mkt-hero-grid > .mkt-hero-art { align-self:start!important;margin-top:0!important; }
main.mkt-page .mkt-hero-grid .mkt-kicker { margin:0!important;min-height:15px; }
main.mkt-page .mkt-hero-grid h1 { margin:22px 0 21px!important; }
main.mkt-page .mkt-hero-grid .mkt-lead { margin:0!important; }
main.mkt-page .mkt-hero-grid .mkt-actions { margin-top:26px!important; }

main.mkt-page .mkt-hero--dark .ka-crumb,
main.mkt-page .mkt-hero--dark .mkt-breadcrumb {color:#c8d7e9;}

/* The three studio/contact/process heroes start on exactly the same gutter and
   breadcrumb baseline, but stay compact because they have no illustration. */
.site-root.subpage main .subhero {padding-block:var(--ka-hero-top) 64px!important;}
.site-root.subpage main .subhero .eyebrow {margin:0 0 22px!important;min-height:15px;}
.site-root.subpage main .subhero h1 {margin-top:0!important;}

/* Legal pages use the same breadcrumb and start line as other inner pages. */
.site-root.kad-policy-page main .kad-legal-hero {padding-block:var(--ka-hero-top) 64px!important;}
.site-root.kad-policy-page main .kad-legal-hero .eyebrow {margin:0 0 22px!important;min-height:15px;}
.site-root.kad-policy-page main .kad-legal-hero h1 {margin-top:0!important;}

/* Keep the approved photographic project imagery, align its header and copy. */
.site-root.ka-project-page .site-header {height:86px!important;}
.site-root.ka-project-page .header-inner {height:100%!important;}
.site-root.ka-project-page .hero-copy {padding-top:var(--ka-hero-top)!important;}
.site-root.ka-project-page .hero-copy > .ka-crumb {color:#d4dfed;margin-bottom:26px!important;}
.site-root.ka-project-page .hero-copy > .ka-crumb a:hover {color:#8cbbff;}

@media(max-width:920px){
 :root{--ka-inner-gutter:20px;--ka-hero-top:40px;}
 main.mkt-page .mkt-hero-grid {grid-template-columns:minmax(0,1fr) minmax(0,.94fr);gap:24px;min-height:0;}
}
@media(max-width:800px){
 main.mkt-page .mkt-hero-grid {display:block!important;padding-block:var(--ka-hero-top) 52px!important;min-height:0;}
 /* A consistent left-column minimum reserves the same image starting position
    across the five service pages even when a title uses fewer lines. */
 main.mkt-page.ka-detail-service .mkt-hero-grid > :first-child {min-height:450px;}
 main.mkt-page .mkt-hero-grid > .mkt-hero-art {margin-top:26px!important;}
}
@media(max-width:760px){
 .site-root.ka-project-page .site-header {height:70px!important;}
 .site-root.ka-project-page .header-inner {height:70px!important;}
}
@media(max-width:560px){
 :root{--ka-hero-top:28px;--ka-crumb-gap:19px;}
 main.mkt-page .mkt-hero-grid {padding-bottom:40px!important;}
 main.mkt-page.ka-detail-service .mkt-hero-grid > :first-child {min-height:0;}
 main.mkt-page .mkt-hero-grid > .mkt-hero-art {margin-top:30px!important;}
 .site-root.ka-project-page .site-header{height:70px!important;}
 .site-root.kad-policy-page main .kad-legal-hero,.site-root.subpage main .subhero{padding-bottom:43px!important;}
}


/* original /assets/feature-heroes.css */
/* Kinetic Axis Digital / three signature editorial heroes
   Approach, Studio and Contact. The original site structure, header, gallery,
   navigation, form and scroll motion stay shared with the full website. */

.site-root.subpage main .subhero.ka-feature-hero {
  min-height: 722px; overflow: hidden;
  padding-block:var(--ka-hero-top) 64px!important;
  background:
   radial-gradient(ellipse 55% 75% at 82% 51%, rgba(206,225,255,.64), transparent 72%),
   linear-gradient(114deg,#fff 3%,#fbfdff 43%,#f1f6ff 100%);
  border-bottom:1px solid #e5edf9;
}
.ka-feature-hero .ka-feature-grid {
  display:grid; grid-template-columns:minmax(0, .99fr) minmax(0, 1.01fr);
  align-items:start; gap:clamp(38px,4.7vw,78px); min-height:505px;
}
.ka-feature-hero .ka-feature-copy {min-width:0; padding-top:39px;}
.site-root.subpage main .ka-feature-hero .eyebrow {
  font-size:11px; line-height:1.25;letter-spacing:2.5px;
  font-weight:800;color:#1359de; margin:0 0 29px!important;
  display:flex;align-items:center;gap:11px;
}
.ka-feature-hero .eyebrow:before{content:"";background:#195df0;width:28px;height:2px;display:inline-block;flex:none;}
.site-root.subpage main .ka-feature-hero h1 {
  font-size:clamp(49px,5.2vw,77px);line-height:1.06;
  letter-spacing:-.06em;max-width:640px;margin:0 0 23px!important;
  color:#152238;font-weight:700;white-space:normal;
}
.ka-feature-accent{color:#185be8;}
.site-root.subpage main .ka-feature-hero .ka-feature-copy > p {
  max-width:560px;margin:0!important;color:#50617a;
  font-size:clamp(16px,1.23vw,18px);line-height:1.7;
}
.ka-feature-actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:29px;}
.ka-feature-btn{
  display:inline-flex;align-items:center;justify-content:space-between;gap:23px;
  text-decoration:none;font-size:13px;font-weight:700;min-height:50px;
  padding:0 17px;border-radius:3px;border:1px solid #1b5ce8;
  transition:background .2s,color .2s,box-shadow .2s;
}
.ka-feature-btn svg{width:19px;height:19px;flex:none;stroke-width:2.8;}
.ka-feature-btn--primary{background:#165aea;color:#fff;box-shadow:0 9px 23px rgba(22,90,234,.12);}
.ka-feature-btn--primary:hover{background:#0d46c8;}
.ka-feature-btn--outline{color:#1654d9;background:rgba(255,255,255,.75);}
.ka-feature-btn--outline:hover{background:#e9f1ff;}
.ka-feature-footnote{display:flex;align-items:center;gap:13px;letter-spacing:1.35px;
 color:#647995;font-size:10px;font-weight:800;margin-top:43px;}
.ka-feature-rule{height:1px;background:#2e68ed;width:31px;flex:none;}
.ka-hero-scene{height:506px;min-width:0;position:relative;isolation:isolate;}
.ka-scene-grid{position:absolute;inset:15px 8px 0 8px;pointer-events:none;
 background-image:linear-gradient(#155cec0c 1px,transparent 1px),linear-gradient(90deg,#155cec0c 1px,transparent 1px);
 background-size:37px 37px;mask-image:linear-gradient(to bottom,transparent 0%,black 19%,black 80%,transparent 100%);}
/* Approach: five joined floating editorial tiles, not a static banner image. */
.ka-process-scene{background:radial-gradient(ellipse at 47% 48%,#dce9ff 0%,#f2f7ff 47%,transparent 73%);}
.ka-process-route{position:absolute;width:100%;height:100%;inset:0;overflow:visible;}
.ka-process-node{position:absolute;width:222px;min-height:73px;display:flex;align-items:center;gap:14px;padding:13px 16px;
 background:linear-gradient(135deg,rgba(255,255,255,.97),rgba(243,248,255,.96));
 border:1px solid #dbe7ff;border-radius:12px;box-shadow:0 20px 37px rgba(49,95,168,.13),0 3px 7px rgba(32,77,145,.045);
 transform:perspective(650px) rotateY(-8deg) rotateX(3deg);}
.ka-process-icon{background:#e7f0ff;border:1px solid #d9e7ff;display:grid;place-items:center;width:43px;height:43px;flex:none;border-radius:9px;color:#135eef;}
.ka-process-icon svg{width:21px;height:21px;stroke-width:2;}
.ka-process-node__text{display:flex;flex-direction:column;gap:6px;min-width:0;}
.ka-process-node__text small{font-size:10px;letter-spacing:1.8px;color:#1758d4;font-weight:800;text-transform:uppercase;}
.ka-process-node__text strong{font-size:14px;font-weight:700;letter-spacing:-.025em;color:#152b50;line-height:1.25;white-space:nowrap;}
.ka-process-node--1{left:41%;top:1%;}
.ka-process-node--2{left:14%;top:20%;}
.ka-process-node--3{left:45%;top:39%;}
.ka-process-node--4{left:13%;top:58%;}
.ka-process-node--5{left:38%;top:77%;}
.ka-process-scene__caption{position:absolute;bottom:2px;left:5px;font-size:9px;font-weight:800;letter-spacing:1.35px;color:#6684b5;}
/* Studio: clean editorial system, matching the approach/contact heroes without reusing the home-page K. */
.ka-studio-scene{border-radius:13px;overflow:hidden;background:linear-gradient(135deg,#f6f9ff 0%,#eef4ff 52%,#e7f0ff 100%);box-shadow:0 26px 48px rgba(26,61,113,.11);border:1px solid #d8e6ff;}
.ka-studio-scene__plane{position:absolute;inset:30px 24px 28px 28px;border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(241,246,255,.92));border:1px solid #d7e5ff;box-shadow:0 22px 40px rgba(41,92,174,.12);}
.ka-studio-scene__halo{position:absolute;right:-38px;top:-24px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle at 42% 40%,rgba(89,151,255,.46),rgba(38,96,234,.28) 40%,rgba(31,86,209,.08) 67%,transparent 72%);}
.ka-studio-scene__grid{position:absolute;inset:0;background-image:linear-gradient(#195ceb12 1px,transparent 1px),linear-gradient(90deg,#195ceb12 1px,transparent 1px);background-size:68px 68px;opacity:.45;}
.ka-studio-scene__top,.ka-studio-scene__bottom{position:absolute;font-weight:700;z-index:2;}
.ka-studio-scene__top{left:28px;top:25px;font-size:10px;letter-spacing:2.7px;color:#6b7f9d;}
.ka-studio-cluster{position:absolute;z-index:2;inset:74px 42px 74px 42px;}
.ka-studio-card{position:absolute;background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(247,250,255,.95));border:1px solid #d6e5ff;border-radius:18px;box-shadow:0 18px 36px rgba(37,83,159,.12),0 3px 8px rgba(28,71,139,.05);color:#152846;}
.ka-studio-card small{display:block;margin-bottom:10px;font-size:10px;letter-spacing:1.8px;font-weight:800;color:#155be7;}
.ka-studio-card strong{display:block;font-size:28px;line-height:1.02;letter-spacing:-.055em;font-weight:800;color:#162742;}
.ka-studio-card p{margin:12px 0 0;font-size:13px;line-height:1.5;color:#5d6f89;}
.ka-studio-card--main{left:0;top:20px;width:62%;min-height:265px;padding:26px 26px 22px;transform:perspective(800px) rotateY(-8deg) rotateX(3deg);}
.ka-studio-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;}
.ka-studio-tags span{display:inline-flex;align-items:center;min-height:27px;padding:0 10px;border-radius:999px;background:#eef4ff;border:1px solid #dce9ff;color:#2158bf;font-size:11px;font-weight:700;}
.ka-studio-card--support{width:31%;min-height:118px;padding:16px 16px 14px;}
.ka-studio-card--support strong{font-size:18px;line-height:1.08;letter-spacing:-.04em;}
.ka-studio-card--support p{font-size:12px;line-height:1.45;margin-top:9px;}
.ka-studio-card--a{right:0;top:0;transform:perspective(800px) rotateY(8deg) rotateX(3deg);}
.ka-studio-card--b{right:4%;top:150px;transform:perspective(800px) rotateY(6deg) rotateX(-2deg);}
.ka-studio-card--c{right:11%;bottom:0;transform:perspective(800px) rotateY(7deg) rotateX(2deg);}
.ka-studio-scene__bottom{bottom:24px;left:28px;right:28px;font-size:9px;letter-spacing:1.45px;color:#63789a;display:flex;align-items:center;gap:10px;z-index:3;}
.ka-studio-scene__serial{margin-left:auto;white-space:nowrap;}
.ka-studio-scene__pulse{width:7px;height:7px;display:block;background:#2c83ff;box-shadow:0 0 0 4px #3187ff33;transform:rotate(45deg);flex:none;}
/* Contact: a three-stage conversation; editable, crisp vector icons, no stock mockup. */
.ka-contact-scene{background:radial-gradient(ellipse at 55% 48%,#cfdefe 0%,#eaf2ff 45%,transparent 75%);}
.ka-contact-scene__plane{position:absolute;inset:32px 0 18px 26px;clip-path:polygon(23% 7%,100% 21%,86% 87%,0 75%);
 background:linear-gradient(140deg,#ffffff9c,#4b88fa13 65%,#1963eb22);border:1px solid #afccff;}
.ka-message-card{position:absolute;display:flex;align-items:center;gap:15px;max-width:85%;width:350px;min-height:91px;
 padding:18px 18px;border:1px solid #d4e4fd;border-radius:13px;
 background:linear-gradient(120deg,rgba(255,255,255,.99),rgba(248,251,255,.97));
 box-shadow:0 22px 43px rgba(47,103,187,.15),0 3px 10px rgba(28,75,149,.04);
 transform:perspective(700px) rotateY(-6deg) rotateZ(3deg);}
.ka-message-icon{flex:none;display:grid;place-items:center;width:48px;height:48px;border-radius:10px;background:#e8f0ff;color:#145ced;border:1px solid #d9e7ff;}
.ka-message-icon svg{width:24px;height:24px;}
.ka-message-card > span:nth-child(2){min-width:0;display:flex;flex-direction:column;gap:7px;}
.ka-message-card strong{font-weight:800;color:#142640;letter-spacing:-.022em;font-size:15px;white-space:nowrap;}
.ka-message-card small{color:#6c7f9a;font-size:12px;line-height:1.4;white-space:nowrap;}
.ka-message-card--one{left:23%;top:15%;transform:perspective(700px) rotateY(-5deg) rotateZ(4deg);}
.ka-message-card--two{left:11%;top:40%;transform:perspective(700px) rotateY(5deg) rotateZ(-5deg);}
.ka-message-card--three{left:25%;top:65%;transform:perspective(700px) rotateY(-5deg) rotateZ(3deg);}
.ka-message-card__dot{height:7px;width:7px;margin-left:auto;align-self:flex-start;border-radius:50%;background:#84b5fd;flex:none;}
.ka-message-card__dot--blue{background:#1560f3;box-shadow:0 0 0 4px #dfeaff;}
.ka-message-card__step{margin-left:auto;align-self:flex-start;flex:none;display:grid;place-items:center;
 min-width:26px;height:25px;padding:0 5px;border:1px solid #dbe7fa;border-radius:6px;
 color:#527ebc;background:#eff5ff;font-size:10px;font-weight:800;letter-spacing:.8px;}
.ka-contact-scene__footer{position:absolute;bottom:15px;left:8%;right:5%;display:flex;align-items:center;gap:8px;
 color:#5a79ac;font-size:9px;letter-spacing:1.25px;font-weight:800;white-space:nowrap;}

.ka-contact-scene__live{width:7px;height:7px;background:#1766f2;transform:rotate(45deg);flex:none;}
#our-process,#enquiry-form{scroll-margin-top:115px;}
@media(max-width:1080px){
 .ka-feature-hero .ka-feature-grid{gap:25px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
 .site-root.subpage main .ka-feature-hero h1{font-size:clamp(44px,5.2vw,62px);}
 .ka-process-node{width:195px;min-height:68px;padding:11px;gap:10px;}
 .ka-process-node__text strong{font-size:13px;}
 .ka-process-node--2{left:3%;}.ka-process-node--4{left:3%;}
 .ka-message-card{width:305px;}
 .ka-message-card--one{left:17%;}.ka-message-card--two{left:5%;}.ka-message-card--three{left:19%;}
}
@media(max-width:820px){
 .site-root.subpage main .subhero.ka-feature-hero{min-height:0;padding-bottom:55px!important;}
 .ka-feature-hero .ka-feature-grid{display:flex;flex-direction:column;align-items:stretch;gap:32px;}
 .ka-feature-hero .ka-feature-copy{padding-top:8px;}
 .site-root.subpage main .ka-feature-hero h1{font-size:clamp(48px,8vw,69px);max-width:700px;}
 .ka-hero-scene{height:445px;width:min(100%,630px);margin-inline:auto;}
 .ka-process-node{width:222px;min-height:73px;padding:13px 16px;gap:14px;}
 .ka-process-node--2{left:14%;}.ka-process-node--4{left:13%;}
 .ka-feature-footnote{margin-top:30px;}
 .ka-message-card{width:350px;}.ka-message-card--one{left:23%;}.ka-message-card--two{left:11%;}.ka-message-card--three{left:25%;}
}
@media(max-width:540px){
 .site-root.subpage main .subhero.ka-feature-hero{padding-bottom:36px!important;}
 .site-root.subpage main .ka-feature-hero h1{font-size:clamp(42px,10vw,54px);letter-spacing:-.057em;}
 .site-root.subpage main .ka-feature-hero .eyebrow{margin-bottom:24px!important;}
 .site-root.subpage main .ka-feature-hero .ka-feature-copy > p{font-size:16px;line-height:1.62;}
 .ka-feature-actions{display:flex;flex-direction:column;align-items:stretch;}
 .ka-feature-btn{width:100%;min-height:51px;}
 .ka-feature-footnote{margin-top:25px;font-size:9px;letter-spacing:.9px;}
 .ka-hero-scene{height:365px;}
 .ka-process-scene__caption{font-size:7px;left:1%;}
 .ka-process-node{width:178px;min-height:55px;padding:8px 9px;gap:8px;border-radius:8px;}
 .ka-process-icon{width:32px;height:32px;border-radius:7px;}
 .ka-process-icon svg{width:16px;height:16px;}
 .ka-process-node__text small{font-size:8px;letter-spacing:.8px;}
 .ka-process-node__text strong{font-size:10px;}
 .ka-process-node--1{left:38%;}.ka-process-node--2{left:4%;}.ka-process-node--3{left:40%;}.ka-process-node--4{left:4%;}.ka-process-node--5{left:33%;}
 .ka-message-card{max-width:84%;width:276px;min-height:72px;padding:12px;gap:9px;border-radius:10px;}
 .ka-message-icon{width:35px;height:35px;border-radius:8px;}.ka-message-icon svg{width:19px;height:19px;}
 .ka-message-card strong{font-size:12px;}.ka-message-card small{font-size:10px;}
 .ka-message-card--one{left:15%;}.ka-message-card--two{left:3%;}.ka-message-card--three{left:16%;}
 .ka-contact-scene__footer{font-size:7px;letter-spacing:.65px;}
 .ka-studio-scene__top{left:17px;top:18px;font-size:8px;}
 .ka-studio-cluster{inset:54px 16px 54px 16px;}
 .ka-studio-card--main{width:68%;min-height:178px;padding:16px 15px 14px;}
 .ka-studio-card--main strong{font-size:20px;}
 .ka-studio-card--main p{font-size:11px;line-height:1.42;}
 .ka-studio-tags{gap:6px;margin-top:13px;}
 .ka-studio-tags span{min-height:23px;padding:0 8px;font-size:9px;}
 .ka-studio-card--support{width:38%;min-height:82px;padding:11px 10px 10px;}
 .ka-studio-card--support small{font-size:7px;letter-spacing:1px;margin-bottom:6px;}
 .ka-studio-card--support strong{font-size:12px;}
 .ka-studio-card--support p{font-size:9px;line-height:1.35;margin-top:6px;}
 .ka-studio-card--a{top:2px;} .ka-studio-card--b{top:112px;right:2%;} .ka-studio-card--c{right:7%;bottom:0;}
 .ka-studio-scene__bottom{left:16px;right:16px;bottom:17px;font-size:7px;letter-spacing:.8px;}
}

/* Studio page: remove unused height beneath its editorial illustration.
   The original shared 722px minimum left a large empty tail on this page;
   together with the next section's default 80px top padding it created an
   unintentional visual gap. Preserve the established top line and breadcrumb. */
@media (min-width: 821px) {
  .site-root.subpage main .subhero.ka-feature-hero--studio {
    min-height: 0;
    padding-bottom: 38px !important;
  }
  .site-root.subpage main .ka-feature-hero--studio + .subsection {
    padding-top: 50px;
  }
}

/* Let the Studio's 1100x770 SVG keep its natural ratio at the actual column
   width. The HTML dimensions reserve layout space, but must not stretch its
   rendered box to 770px when displayed as a half-width responsive image. */
.site-root.subpage main .ka-feature-hero--studio + .subsection .case-grid > img {
  height: auto;
  aspect-ratio: 1100 / 770;
}


/* original /assets/a11y-enhancements.css */
/* Universal keyboard accessibility.  Not dependent on JavaScript or animation. */
.ka-skip-link {
  position:fixed!important;top:12px;left:12px;z-index:100000!important;
  transform:translateY(-160%);display:inline-flex;align-items:center;
  border-radius:5px;padding:13px 18px;background:#fff;color:#12284d!important;
  font:700 15px/1.3 Arial,Helvetica,sans-serif;text-decoration:none;
  box-shadow:0 0 0 2px #1359ec,0 5px 19px #1326452b;
}
.ka-skip-link:focus,.ka-skip-link:focus-visible {transform:translateY(0);outline:3px solid #1359ec!important;outline-offset:3px}
main#main-content{scroll-margin-top:16px}
:where(a,button,input,select,textarea,summary):focus-visible{
  outline:3px solid #1559ec!important;outline-offset:4px!important;
}
:where(.kad-footer,.pace-hero,.case-banner) a:focus-visible{
  outline-color:#fff!important;box-shadow:0 0 0 5px #1263ed;
}
.ka-visually-hidden {position:absolute!important;width:1px!important;height:1px!important;padding:0!important;
 margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;
 white-space:nowrap!important;border:0!important;clip-path:inset(50%)!important;}
@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto!important}}


/* original /assets/contact-whatsapp.css */
/* Optional direct-message contact option; visually related to site CTAs. */
.kad-contact-intro .kad-whatsapp{display:flex;gap:15px;align-items:flex-start;max-width:455px;
 margin:28px 0 22px;padding:20px;border:1px solid #c9e6d6;border-radius:9px;
 background:linear-gradient(125deg,#f5fbf7,#eef8f3);box-shadow:0 10px 26px #19523a0a;}
.kad-whatsapp__icon{flex:0 0 45px;width:45px;height:45px;display:grid;place-items:center;
 color:#0d7549;background:#dff3e7;border-radius:10px;}
.kad-whatsapp__icon svg{display:block;}
.kad-whatsapp__body{min-width:0}
.kad-whatsapp h3{font-size:19px;line-height:1.2;color:#172b38;font-weight:750;letter-spacing:-.025em;margin:0 0 7px;}
.kad-contact-intro .kad-whatsapp p{font-size:14px;line-height:1.48;color:#445d52;margin:0 0 12px;}
.kad-contact-intro .kad-whatsapp a.kad-whatsapp__link{display:inline-flex;align-items:center;flex-wrap:wrap;
 gap:7px 9px;font-size:14px;line-height:1.4;font-weight:750;color:#075d3c;text-decoration:underline;
 text-decoration-thickness:1.5px;text-underline-offset:4px;overflow-wrap:normal;}
.kad-whatsapp__number{font-size:13px;font-weight:650;white-space:nowrap;}
.kad-whatsapp__link svg{display:block;flex:none;}
.kad-whatsapp__link:hover{color:#03432a!important;}
@media(max-width:430px){.kad-contact-intro .kad-whatsapp{padding:16px;gap:12px}.kad-whatsapp__icon{flex-basis:39px;width:39px;height:39px}.kad-contact-intro .kad-whatsapp a.kad-whatsapp__link{font-size:13px}.kad-whatsapp__number{font-size:12px}}

.site-root{min-height:100vh;}
