/* Capability editorial grid. Illustration is a separate information layer, never a wallpaper. */
#capabilities{padding-block:76px 88px}
#capabilities .section-heading{margin-bottom:34px;align-items:flex-end}
#capabilities .section-heading h2{font-size:34px;line-height:1.5;letter-spacing:-.025em}
#capabilities .section-heading p{font-size:14px;margin-top:18px}
.expertise-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.expertise-card{--ink:#23435f;--muted:#61778d;--wash:#c4dcf1;--accent:#407bd7;--accent-soft:#e3edff;--base:#f3f7fc;position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;grid-column:auto;min-height:310px;padding:27px 30px 22px;border:0;border-radius:22px;color:var(--ink);background:linear-gradient(120deg,#fafcff 5%,var(--base) 100%);box-shadow:0 10px 28px -24px #29496240,inset 0 1px 0 #ffffffb3;transition:transform .4s,box-shadow .4s}
.expertise-card:before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at 58% -36%,#fff 12%,#ffffffb8 35%,transparent 67%),radial-gradient(ellipse at 101% 18%,var(--wash),transparent 64%),radial-gradient(ellipse at 70% 108%,var(--reflection),transparent 63%),linear-gradient(112deg,#ffffff9c 18%,transparent 61%);opacity:.82;pointer-events:none;transition:opacity .6s}

/* Matte microtexture and softly fading registration marks sit behind the artwork. */
.expertise-surface{position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;background:url("capabilities/surface-grain.svg") repeat;opacity:.72;box-shadow:inset 0 1px 0 #ffffffe6,inset 0 -1px 0 #64809b0a}
.expertise-surface:before{content:"";position:absolute;inset:0 0 0 36%;background:url("capabilities/surface-detail.svg") center/100% 100% no-repeat;opacity:.64;mask-image:linear-gradient(90deg,transparent,#000 35%)}
.expertise-surface:after{content:"";position:absolute;width:90%;height:115%;right:-21%;top:-64%;border-radius:50%;background:linear-gradient(165deg,#ffffffb8,#ffffff08 71%);box-shadow:0 1px 0 #ffffff7a,0 12px 42px -29px var(--wash);transform:rotate(-18deg);opacity:.8}

.expertise-ai{--wash:#d8d9f6;--reflection:#d5e7f44d;--accent:#6267cd;--accent-soft:#e6e7ff;--base:#f1f3ff}
.expertise-data{--wash:#c2e8f2;--reflection:#c9def559;--accent:#227eb9;--accent-soft:#dceffa;--base:#edf8fc}
.expertise-services{--wash:#c8e9df;--reflection:#dfe9ce40;--accent:#158b80;--accent-soft:#d7f0e8;--base:#f0faf6}
.expertise-transformation{--wash:#dfd9f1;--reflection:#f0e3d952;--accent:#7767b8;--accent-soft:#ebe5f8;--base:#f6f3fb}
.expertise-topline{display:flex;align-items:center;gap:12px;font-size:9px;letter-spacing:.12em;color:var(--muted);line-height:1.4}
.expertise-topline>span:first-child{color:var(--accent);font-size:11px;letter-spacing:.04em;font-variant-numeric:tabular-nums}
.expertise-topline>span+span{padding-left:12px;border-left:1px solid #8aa4b94d}
.expertise-body{display:grid;grid-template-columns:.88fr 1.22fr;gap:14px;align-items:center;flex:1;margin:18px 0 22px;min-width:0}
.expertise-copy{min-width:0}
#capabilities .expertise-copy h3{font-size:25px;line-height:1.4;font-weight:600;letter-spacing:-.035em;color:var(--ink);margin:0 0 16px}
.expertise-copy p{font-size:13px;line-height:1.95;color:var(--muted);margin:0;max-width:320px;min-height:76px;text-wrap:balance}
.expertise-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;position:relative;z-index:2}
.expertise-topics{font-size:10px;color:var(--muted);line-height:1.6}
.expertise-link{display:inline-flex;align-items:center;gap:10px;flex-shrink:0;font-size:11px;color:var(--ink);line-height:1.7}
.expertise-link i{width:18px;height:18px;border-radius:50%;position:relative;background:var(--accent-soft);color:var(--accent);transition:background .35s,transform .35s}
.expertise-link i:before,.expertise-link i:after{content:"";position:absolute;background:currentColor;left:6px;top:8px;width:6px;height:1px}
.expertise-link i:after{transform:rotate(90deg)}
.expertise-visual{position:relative;pointer-events:none;min-width:0;transition:transform .6s cubic-bezier(.2,.7,.3,1)}
.expertise-card:hover,.expertise-card:focus-visible{transform:translateY(-4px);box-shadow:0 20px 40px -25px #21496e59,inset 0 1px 0 #fff;color:var(--ink)}
.expertise-card:hover:before,.expertise-card:focus-visible:before{opacity:1}
.expertise-card:hover .expertise-visual,.expertise-card:focus-visible .expertise-visual{transform:translateY(-3px)}
.expertise-card:hover .expertise-link i,.expertise-card:focus-visible .expertise-link i{background:var(--accent);color:#fff;transform:rotate(90deg)}
.expertise-card:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.expertise-card[data-glow]:after{z-index:-1;background:radial-gradient(320px circle at var(--glow-x) var(--glow-y),#aad6f421,transparent 70%)}

/* Precision SVGs preserve fine edges and type at every display density. */
.expertise-visual{width:100%;max-width:340px;aspect-ratio:360/236;align-self:center;justify-self:center;isolation:isolate}
.expertise-visual:before{content:"";position:absolute;inset:21% -8% -1%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 36%,#ffffffa3,transparent 66%),radial-gradient(ellipse at 50% 83%,#54708c10,transparent 54%);transform:scaleX(1.06)}
.expertise-visual > svg{display:block;width:100%;height:100%;filter:drop-shadow(0 3px 7px #2b5c8508);transition:filter .6s}
.expertise-card:hover .expertise-visual > svg,.expertise-card:focus-visible .expertise-visual > svg{filter:drop-shadow(0 6px 10px #2b5c8512)}

/* Each illustration plays a short sequence from its resting state. */
.expertise-scan { --art-animation: expertise-scan 650ms ease-in-out; }
.expertise-result { --art-animation: expertise-result 440ms 460ms ease-out; }
.expertise-bars {
  --art-animation: expertise-bars 460ms calc(var(--art-step) * 38ms) ease-out;
  transform-box: fill-box;
  transform-origin: center bottom;
}
.expertise-trace {
  --art-animation: expertise-trace 430ms calc(120ms + var(--art-step) * 300ms) ease-out;
  stroke-dasharray: 100;
  stroke-dashoffset: 100;
}
.expertise-service-layer {
  --art-animation: expertise-service-layer 440ms calc((2 - var(--art-step)) * 110ms) ease-out;
}
.expertise-flow-node {
  --art-animation: expertise-flow-node 390ms calc(var(--art-step) * 295ms) ease-out;
}

@media (prefers-reduced-motion: no-preference) {
  .expertise-card:focus-visible .expertise-motion { animation: var(--art-animation); }

  @media (hover: hover) and (pointer: fine) {
    .expertise-card:hover .expertise-motion { animation: var(--art-animation); }
  }
}

@keyframes expertise-scan {
  0% { opacity: 0; transform: translateY(0); }
  16%, 78% { opacity: 1; }
  100% { opacity: 0; transform: translateY(76px); }
}

@keyframes expertise-result {
  38% { transform: translateY(-4px); }
}

@keyframes expertise-bars {
  22% { transform: scaleY(.64); }
  72% { transform: scaleY(1.04); }
}

@keyframes expertise-trace {
  12% { opacity: .95; }
  78% { opacity: .95; stroke-dashoffset: 0; }
  100% { opacity: 0; stroke-dashoffset: 0; }
}

@keyframes expertise-service-layer {
  42% { transform: translateX(5px); }
}

@keyframes expertise-flow-node {
  42% { stroke: #8272b7; stroke-width: 1.45; }
}

@media(min-width:1600px){.expertise-card{min-height:330px;padding:30px 32px 25px}#capabilities .expertise-copy h3{font-size:27px}.expertise-copy p{font-size:13px}.expertise-body{gap:18px}}
@media(max-width:1100px){.expertise-card{padding:25px;min-height:385px}#capabilities .expertise-copy h3{font-size:23px}.expertise-body{grid-template-columns:1fr;gap:12px;align-content:start}.expertise-visual{max-width:285px;justify-self:center}.expertise-copy p{max-width:none}.expertise-footer{gap:10px;flex-wrap:wrap}.expertise-topics{font-size:9px}}
@media(max-width:600px){#capabilities{padding-block:54px 58px}#capabilities .section-heading h2{font-size:27px}#capabilities .section-heading p{font-size:12px}.expertise-grid{grid-template-columns:1fr;gap:16px}.expertise-card{padding:24px;border-radius:18px;min-height:410px}.expertise-body{margin:18px 0 18px;gap:12px}#capabilities .expertise-copy h3{font-size:24px;margin-bottom:12px}.expertise-copy p{font-size:12px;min-height:47px}.expertise-visual{max-width:300px}.expertise-footer{padding-top:14px;border-top:1px solid #95b0c525;gap:10px}.expertise-link{font-size:11px}.expertise-topics{font-size:9px}}
@media(prefers-reduced-motion:reduce){.expertise-card,.expertise-card:before,.expertise-visual,.expertise-visual > svg,.expertise-visual:after,.expertise-link i{transition:none!important}.expertise-card:hover,.expertise-card:focus-visible,.expertise-card:hover .expertise-visual,.expertise-card:focus-visible .expertise-visual,.expertise-card:hover .expertise-link i,.expertise-card:focus-visible .expertise-link i{transform:none}.expertise-visual:after{display:none}}
@media(max-width:1100px){.expertise-surface:before{inset:30% 0 0 0;opacity:.45;mask-image:linear-gradient(180deg,transparent,#000 40%)}.expertise-surface:after{right:-35%;top:-76%}}
