.curtain{visibility:hidden}.curtain.cover,.curtain.hold,.curtain.reveal{visibility:visible}

.cgroups{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(22px,3vw,48px);margin-top:4px}
.cgroup h3{font-size:14px;font-weight:400;letter-spacing:.06em;color:#A8C8E6;margin:0 0 6px}
.cgroup .clients{grid-template-columns:1fr;margin-top:0;max-width:none}
.cgroups .cgroup:last-child .clients{grid-template-columns:1fr 1fr;column-gap:26px}
.team .t-sub{display:block;margin-top:8px;font-size:14px;color:var(--muted)}
@media (max-width:1180px){ .cgroups,.cgroups .cgroup:last-child .clients{grid-template-columns:1fr} }



.float a.f-msg{background:var(--paper);color:var(--pine);border:1px solid rgba(59,90,124,.28);
  box-shadow:0 16px 34px -14px rgba(20,27,36,.35)}
.float a.f-msg:hover{background:var(--pine);color:#fff;border-color:var(--pine)}
.float a.f-msg svg{width:22px;height:22px}
.float a:first-child{background:#25D366}


.float a:nth-child(2){background:var(--brand,#3B5A7C);color:#fff;border:0}
.float a:nth-child(2):hover{background:var(--brand-dark,#2E4762)}
.float a.f-msg{background:var(--paper);color:var(--pine,#3B5A7C)}


.hdr-act .langsw{min-width:44px;padding:0 14px;font-weight:500;letter-spacing:.04em;border-color:var(--line-2)}
.hdr-act .langsw:hover{background:var(--pine);border-color:var(--pine);color:#fff}
.hero ~ * .langsw{}
@media (max-width:640px){ .hdr-act .langsw{display:inline-flex!important;height:34px} }


.reach{padding:clamp(20px,2.4vw,40px) 0 clamp(60px,6vw,100px);perspective:1800px;background:linear-gradient(180deg,var(--tint) 0%,var(--paper) 100%)}
.reach-stage{position:relative;border-radius:clamp(18px,2vw,28px);overflow:hidden;
  background:radial-gradient(70% 90% at 70% 40%,#2A4157 0%,#1D2E40 55%,#16232F 100%);
  box-shadow:0 80px 140px -90px rgba(20,27,36,.75),inset 0 0 0 1px rgba(143,169,196,.18);
  transform:rotateX(14deg);transform-origin:50% 100%;transition:transform .8s cubic-bezier(.16,.84,.3,1)}
.reach.in .reach-stage{transform:rotateX(0)}
.reach-map{display:block;width:100%;height:auto}
.rm-dots circle{fill:rgba(168,200,230,.16)}
.rm-arc{fill:none;stroke:url(#none);stroke:#8FA9C4;stroke-width:1.4;stroke-linecap:round;opacity:.9;
  stroke-dasharray:900;stroke-dashoffset:900;transition:stroke-dashoffset 1.21s cubic-bezier(.16,.84,.3,1) var(--d)}
.reach.in .rm-arc{stroke-dashoffset:0}
.rm-node{opacity:0;transition:opacity .54s ease var(--d,0s)}
.reach.in .rm-node{opacity:1}
.rm-node .core{fill:#E9EFF6}
.rm-node .halo{fill:rgba(143,169,196,.18);transform-box:fill-box;transform-origin:center;animation:rmPulse 2.8s ease-out infinite}
.rm-node.home .core{fill:#fff}.rm-node.home .halo{fill:rgba(168,200,230,.3)}
.rm-node text{fill:#DCE7F2;font:400 15px "Assistant",sans-serif;text-anchor:middle;paint-order:stroke;stroke:rgba(22,35,47,.8);stroke-width:4px}
.rm-node.home text{font-size:17px;fill:#fff}
@keyframes rmPulse{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.9);opacity:0}}
@media (prefers-reduced-motion:reduce){.rm-arc{stroke-dashoffset:0}.rm-node{opacity:1}.rm-node .halo{animation:none}.reach-stage{transform:none}}

.vcards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.4vw,20px);margin-top:clamp(26px,2.8vw,40px);perspective:1400px}
.vcard{position:relative;min-height:clamp(150px,13vw,200px);padding:clamp(20px,2vw,28px);border-radius:16px;overflow:hidden;
  background:linear-gradient(200deg,#F4F7FA 0%,#E6EDF4 100%);border:1px solid rgba(127,160,196,.25);
  display:flex;flex-direction:column;justify-content:space-between;transform-style:preserve-3d;
  transition:transform .54s cubic-bezier(.16,.84,.3,1),box-shadow .54s ease}
.vcard::before{content:"";position:absolute;inset:auto -30% -60% auto;width:80%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(59,90,124,.18),rgba(59,90,124,0) 70%);transition:transform .67s ease}
.vcard .vnum{font-family:"Jost",sans-serif;font-weight:200;font-size:clamp(34px,3vw,48px);color:var(--pine);line-height:1;transform:translateZ(30px)}
.vcard h3{margin:0;font-weight:300;font-size:clamp(16px,1.3vw,19px);color:var(--ink);transform:translateZ(20px)}
.vcard:hover{transform:translateY(-6px) rotateX(4deg);box-shadow:0 40px 80px -50px rgba(20,27,36,.45)}
.vcard:hover::before{transform:scale(1.3)}
@media (max-width:900px){.vcards{grid-template-columns:1fr}}



body::after{display:none!important}
.phero-glow,.pull-glow,.showcase::before,.ftr::before,.sect.dark-sec::before,.c-card::after,.intro::before,.ring3d::before,.lhero::before,.mnav::before,.preload::before{animation:none!important}



@media (max-width:640px){
  .stats .panel{grid-template-columns:1fr 1fr!important;row-gap:22px;padding:22px 8px}
  .stats .stat + .stat::after{display:none}
  .stats .stat:nth-child(odd){border-inline-end:1px solid var(--line)}
}
@media (max-width:1000px){
  .story-stage{position:static!important;top:auto!important;margin-bottom:26px}
  .story-plate{height:auto!important;aspect-ratio:4/5!important}
  .story-steps{gap:48px!important;padding:10px 0 0!important}
  .sstep{opacity:1!important;transform:none!important}
  .scount{display:none}
  .ring-stage{height:auto!important;perspective:none!important}
  .ring{position:static!important;width:auto!important;height:auto!important;transform:none!important;display:flex!important;gap:12px;overflow-x:auto;
    scroll-snap-type:x mandatory;padding:0 18px 6px;-webkit-overflow-scrolling:touch}
  .rpanel{position:relative!important;left:auto!important;top:auto!important;transform:none!important;flex:0 0 64%!important;width:auto!important;
    scroll-snap-align:center;opacity:1!important}
  .ring-floor{display:none}
  .prof-vis{position:static!important}
  .thero-head h1{font-size:clamp(52px,16vw,84px)}
  .tsel{padding:12px 14px}.tsel-mono{width:48px;height:48px;font-size:18px}
}



@view-transition{navigation:auto}
.hdr{view-transition-name:site-header}
.brand{view-transition-name:site-brand}
::view-transition-old(root){animation:vtOut .42s cubic-bezier(.4,0,.2,1) both}
::view-transition-new(root){animation:vtIn .47s cubic-bezier(.16,.84,.3,1) both}
@keyframes vtOut{to{opacity:0;transform:translateY(-18px) scale(.985)}}
@keyframes vtIn{from{opacity:0;transform:translateY(26px) scale(1.01)}}

@supports (animation-timeline: view()){
  .rv{transition:none!important;animation:sdaIn linear both;animation-timeline:view();animation-range:entry 0% entry 55%}
  .rv.d1{animation-range:entry 5% entry 60%}.rv.d2{animation-range:entry 10% entry 65%}.rv.d3{animation-range:entry 15% entry 70%}
  @keyframes sdaIn{from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}
  .band img,.sec-bg img,.cta-bg img,.i3-bg img{animation:sdaPar linear both;animation-timeline:view();will-change:auto}
  @keyframes sdaPar{from{transform:translateY(-5%) scale(1.08)}to{transform:translateY(5%) scale(1.08)}}
}
@media (prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}.rv,.band img,.sec-bg img,.cta-bg img,.i3-bg img{animation:none!important}}
