
    :root {
      --ink:#100d1a; --ink-soft:#625e70; --paper:#f8f7fc; --paper-deep:#eeeaf8;
      --surface:#fff; --line:rgba(49,39,82,.14); --line-strong:rgba(49,39,82,.32);
      --accent:#8b73d8; --accent-dark:#5d4eb1; --violet-bright:#bb75e6; --blue:#5261dc;
      --navy:#0d0a18; --white:#fff; --brand-gradient:linear-gradient(135deg,#c477e7 0%,#8b73d8 52%,#5261dc 100%);
      --max:1240px; --reading:760px; --radius-sm:6px; --radius-md:14px;
      --shadow:0 24px 70px rgba(32,22,66,.10); --ease:cubic-bezier(.22,.8,.28,1);
    }
    *{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;color:var(--ink);background:radial-gradient(circle at 90% 2%,rgba(139,115,216,.17),transparent 28rem),radial-gradient(circle at 8% 48%,rgba(82,97,220,.06),transparent 26rem),var(--paper);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased}
    a{color:inherit;text-decoration:none} button{font:inherit} img,svg{display:block;max-width:100%} ::selection{background:var(--accent);color:#fff}
    .shell{width:min(calc(100% - 40px),var(--max));margin-inline:auto} .skip-link{position:fixed;left:16px;top:-80px;z-index:1000;padding:10px 14px;background:var(--brand-gradient);color:#fff;border-radius:6px;transition:top .2s} .skip-link:focus{top:16px}
    .eyebrow{margin:0 0 18px;font-size:12px;line-height:1.2;font-weight:750;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-dark)}
    .display{margin:0;max-width:12ch;font-family:Georgia,"Times New Roman",serif;font-size:clamp(3.5rem,8vw,7rem);line-height:.93;letter-spacing:-.058em;font-weight:400}
    .display em{font-style:normal;background:var(--brand-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}
    .section-title{margin:0;max-width:14ch;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.35rem,5vw,4.5rem);line-height:1;letter-spacing:-.045em;font-weight:400}
    .lede{max-width:680px;margin:0;font-size:clamp(1.1rem,1.5vw,1.3rem);color:var(--ink-soft)}
    .site-header{position:sticky;top:0;z-index:100;background:rgba(13,10,24,.95);border-bottom:1px solid transparent;backdrop-filter:blur(16px);transition:border-color .2s,background .2s} .site-header.scrolled{border-bottom-color:rgba(255,255,255,.12);background:rgba(13,10,24,.99)}
    .nav{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:28px} .brand{display:inline-flex;align-items:center;width:132px;height:60px;overflow:hidden} .brand-mark{width:128px;height:auto;object-fit:contain}
    .nav-links{display:flex;align-items:center;gap:clamp(20px,3vw,40px);font-size:14px;font-weight:650;color:rgba(255,255,255,.86)} .nav-links a{position:relative;padding:8px 0} .nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:2px;height:1px;background:var(--violet-bright);transition:right .25s var(--ease)} .nav-links a:hover::after,.nav-links a:focus-visible::after,.nav-links a[aria-current="page"]::after{right:0} .nav-contact{padding:10px 16px!important;border:1px solid rgba(255,255,255,.32);border-radius:999px} .nav-contact::after{display:none} .nav-contact:hover,.nav-contact:focus-visible{background:var(--brand-gradient);border-color:transparent}
    .menu-button{display:none;border:0;background:transparent;padding:8px;cursor:pointer} .menu-button span{display:block;width:24px;height:1px;margin:6px 0;background:#fff}
    .hero{padding:clamp(78px,11vw,150px) 0 80px} .hero-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:clamp(54px,8vw,120px);align-items:end} .hero .lede{margin-top:34px} .hero-links{display:flex;flex-wrap:wrap;gap:28px;margin-top:40px}
    .text-link{display:inline-flex;align-items:center;gap:13px;font-size:14px;font-weight:720;border-bottom:1px solid var(--line-strong);padding-bottom:6px;transition:gap .25s var(--ease),border-color .25s} .text-link:hover,.text-link:focus-visible{gap:20px;border-color:var(--ink)}
    .cap-index{padding:28px;background:rgba(255,255,255,.78);border:1px solid var(--line);box-shadow:var(--shadow)} .cap-index-head{display:flex;justify-content:space-between;gap:18px;padding-bottom:18px;border-bottom:1px solid var(--line);font-size:11px;font-weight:750;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)} .cap-index ol{list-style:none;margin:10px 0 0;padding:0} .cap-index li+li{border-top:1px solid var(--line)} .cap-index a{display:grid;grid-template-columns:32px 1fr auto;gap:12px;align-items:center;padding:17px 0;font-size:14px;font-weight:680} .cap-index small{color:var(--accent-dark);font-weight:760} .cap-index a span:last-child{transition:transform .2s} .cap-index a:hover span:last-child{transform:translateX(5px)}
    .context-bar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:27px 0} .context-grid{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center} .context-grid p{margin:0;max-width:760px;font-size:14px;color:var(--ink-soft)} .context-tags{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px 22px;font-size:11px;font-weight:760;letter-spacing:.09em;text-transform:uppercase}
    .section{padding:clamp(90px,11vw,155px) 0} .section-head{display:grid;grid-template-columns:.72fr 1.28fr;gap:60px;align-items:start;margin-bottom:clamp(52px,7vw,92px)}
    .capability{scroll-margin-top:100px} .capability+.capability{border-top:1px solid var(--line)} .capability-layout{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);gap:clamp(52px,8vw,120px);align-items:start} .capability-sticky{position:sticky;top:122px} .cap-number{display:block;margin-bottom:34px;font-family:Georgia,serif;font-size:clamp(3rem,6vw,5.7rem);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(93,78,177,.45)} .capability-title{margin:0;max-width:9ch;font-family:Georgia,serif;font-size:clamp(2.45rem,4.7vw,4.5rem);line-height:.98;letter-spacing:-.045em;font-weight:400} .capability-intro{margin:28px 0 0;max-width:520px;color:var(--ink-soft)}
    .capability-main{display:grid;gap:28px} .outcome-panel{position:relative;overflow:hidden;padding:clamp(30px,4vw,46px);background:var(--navy);color:#fff;border-radius:var(--radius-sm)} .outcome-panel::before{content:"";position:absolute;width:310px;height:310px;right:-100px;top:-150px;border-radius:50%;background:radial-gradient(circle,rgba(187,117,230,.35),transparent 68%)} .outcome-label{margin:0 0 44px;font-size:11px;font-weight:760;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.62)} .outcome-panel h3{position:relative;margin:0;max-width:18ch;font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.7rem);line-height:1.02;letter-spacing:-.038em;font-weight:400} .outcome-panel p{position:relative;margin:25px 0 0;max-width:660px;color:#ffffff;-webkit-text-fill-color:#ffffff;opacity:1}
    .service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px} .service-card{min-height:205px;padding:27px;background:rgba(255,255,255,.75);border:1px solid var(--line);transition:transform .25s var(--ease),border-color .25s,background .25s} .service-card:hover{transform:translateY(-3px);border-color:var(--line-strong);background:#fff} .service-card small{display:block;margin-bottom:42px;font-size:11px;font-weight:760;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-dark)} .service-card h4{margin:0 0 10px;font-size:18px;line-height:1.25} .service-card p{margin:0;color:var(--ink-soft);font-size:14px;line-height:1.55}
    .capability-footer{display:flex;justify-content:space-between;gap:24px;align-items:center;padding-top:8px} .capability-footer p{margin:0;max-width:530px;font-size:13px;color:var(--ink-soft)}
    .connection{background:var(--navy);color:#fff} .connection .eyebrow{color:#bb75e6} .connection .lede{color:rgba(255,255,255,.66)} .connection-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:80px;align-items:start} .system-map{position:relative;min-height:520px;border:1px solid rgba(255,255,255,.15);background:linear-gradient(145deg,rgba(255,255,255,.05),rgba(139,115,216,.06));padding:34px} .system-core{position:absolute;left:50%;top:50%;translate:-50% -50%;display:grid;place-items:center;width:142px;aspect-ratio:1;border-radius:50%;background:var(--brand-gradient);font-weight:760;text-align:center;box-shadow:0 0 0 18px rgba(139,115,216,.08)} .system-node{position:absolute;width:175px;padding:16px 18px;border:1px solid rgba(255,255,255,.18);background:rgba(13,10,24,.74);font-size:13px} .system-node strong{display:block;margin-bottom:4px} .system-node span{color:rgba(255,255,255,.55);font-size:11px} .system-node:nth-of-type(1){top:42px;left:34px} .system-node:nth-of-type(2){top:42px;right:34px} .system-node:nth-of-type(3){bottom:42px;left:34px} .system-node:nth-of-type(4){bottom:42px;right:34px} .system-line{position:absolute;left:50%;top:50%;width:58%;height:1px;background:rgba(255,255,255,.16);transform-origin:left center} .system-line.l1{transform:rotate(220deg)} .system-line.l2{transform:rotate(320deg)} .system-line.l3{transform:rotate(140deg)} .system-line.l4{transform:rotate(40deg)}
    .principles{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:64px} .principle{padding:28px;border-top:1px solid rgba(255,255,255,.27)} .principle small{font-size:11px;color:#bb75e6;letter-spacing:.12em;text-transform:uppercase} .principle h3{margin:25px 0 10px;font-size:19px} .principle p{margin:0;color:rgba(255,255,255,.62);font-size:14px}
    .engagement-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px} .engagement-steps{counter-reset:step} .engagement-step{counter-increment:step;display:grid;grid-template-columns:44px 1fr;gap:18px;padding:27px 0;border-top:1px solid var(--line)} .engagement-step::before{content:"0" counter(step);color:var(--accent-dark);font-size:12px;font-weight:760;letter-spacing:.08em} .engagement-step h3{margin:0 0 8px;font-size:18px} .engagement-step p{margin:0;color:var(--ink-soft);font-size:14px}
    .contact-section{padding:clamp(82px,11vw,140px) 0;background:linear-gradient(135deg,#171024 0%,#0d0a18 58%,#21153a 100%);color:#fff} .contact-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:80px;align-items:end} .contact-section .eyebrow{color:#bb75e6} .contact-title{margin:0;max-width:14ch;font-family:Georgia,serif;font-size:clamp(2.7rem,5.8vw,5.4rem);line-height:.98;letter-spacing:-.05em;font-weight:400} .contact-aside p{margin:0 0 34px;color:rgba(255,255,255,.66)} .email-link{display:flex;justify-content:space-between;gap:24px;padding:18px 0;border-top:1px solid rgba(255,255,255,.28);border-bottom:1px solid rgba(255,255,255,.28);font-size:16px;font-weight:700}
    .site-footer{padding:58px 0 28px;background:#090711;color:rgba(255,255,255,.72)} .footer-grid{display:grid;grid-template-columns:1fr auto;gap:60px;align-items:start} .footer-brand{display:flex;align-items:center;gap:22px} .footer-logo{width:104px;height:auto} .footer-brand p{margin:0;font-size:12px;letter-spacing:.1em;text-transform:uppercase} .footer-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:15px 28px;font-size:13px} .legal{display:flex;justify-content:space-between;gap:30px;margin-top:46px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);font-size:11px;color:rgba(255,255,255,.42)}
    .reveal{opacity:0;transform:translateY(18px);transition:opacity .75s var(--ease),transform .75s var(--ease)} .reveal.in{opacity:1;transform:none} :focus-visible{outline:3px solid rgba(187,117,230,.55);outline-offset:4px}
    @media(max-width:900px){.menu-button{display:block} .nav-links{display:none;position:absolute;left:20px;right:20px;top:70px;flex-direction:column;align-items:stretch;gap:0;padding:18px;background:#171024;border:1px solid rgba(255,255,255,.13);box-shadow:var(--shadow)} .nav-links.open{display:flex} .nav-links a{padding:14px 8px;border-bottom:1px solid rgba(255,255,255,.08)} .nav-contact{margin-top:10px;text-align:center} .hero-grid,.section-head,.capability-layout,.connection-grid,.engagement-grid,.contact-grid{grid-template-columns:1fr} .capability-sticky{position:static} .context-grid{grid-template-columns:1fr} .context-tags{justify-content:flex-start} .system-map{min-height:470px} .principles{grid-template-columns:1fr} }
    @media(max-width:640px){body{font-size:16px} .shell{width:min(calc(100% - 28px),var(--max))} .brand{width:105px;height:54px} .brand-mark{width:104px} .hero{padding-top:62px} .display{font-size:clamp(3.15rem,16vw,5rem)} .service-grid{grid-template-columns:1fr} .service-card{min-height:auto} .capability-footer{align-items:flex-start;flex-direction:column} .system-map{min-height:590px;padding:22px} .system-node{width:145px} .system-node:nth-of-type(1){top:26px;left:20px} .system-node:nth-of-type(2){top:145px;right:20px} .system-node:nth-of-type(3){bottom:145px;left:20px} .system-node:nth-of-type(4){bottom:26px;right:20px} .system-line{display:none} .system-core{width:118px} .footer-grid,.legal{grid-template-columns:1fr;display:grid} .footer-links{justify-content:flex-start} }
    @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto} *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important} .reveal{opacity:1;transform:none}}
  

body.admin-bar .site-header{top:32px;}@media(max-width:782px){body.admin-bar .site-header{top:46px;}}

html{margin-top:0!important;} body.tdgx-redesign-page{margin:0!important;padding:0!important;}


/* Version 1.9: Capabilities page hero and practice-card contrast corrections. */
body.tdgx-redesign-page .tdgx-canvas[data-tdg-page="capabilities"] .hero {
  padding-top: clamp(42px, 5.2vw, 82px) !important;
  padding-bottom: clamp(54px, 6vw, 76px) !important;
}

body.tdgx-redesign-page .tdgx-canvas[data-tdg-page="capabilities"] .hero .display {
  max-width: 11.5ch !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: clamp(4rem, 8.9vw, 8.4rem) !important;
  line-height: .91 !important;
  letter-spacing: -.057em !important;
  font-weight: 400 !important;
}

/* The five right-side panels in every practice: one outcome panel plus four service cards. */
body.tdgx-redesign-page .tdgx-canvas[data-tdg-page="capabilities"] .capability-main > .outcome-panel,
body.tdgx-redesign-page .tdgx-canvas[data-tdg-page="capabilities"] .capability-main .service-grid > .service-card {
  background: linear-gradient(145deg, #0d0a18 0%, #1b1230 60%, #2b1849 100%) !important;
  border-color: rgba(255,255,255,.18) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

body.tdgx-redesign-page .tdgx-canvas[data-tdg-page="capabilities"] .capability-main > .outcome-panel :where(h1,h2,h3,h4,h5,h6,p,small,span,strong,em,a,li),
body.tdgx-redesign-page .tdgx-canvas[data-tdg-page="capabilities"] .capability-main .service-grid > .service-card :where(h1,h2,h3,h4,h5,h6,p,small,span,strong,em,a,li) {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

body.tdgx-redesign-page .tdgx-canvas[data-tdg-page="capabilities"] .capability-main > .outcome-panel .outcome-label,
body.tdgx-redesign-page .tdgx-canvas[data-tdg-page="capabilities"] .capability-main .service-grid > .service-card small {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  opacity: 1 !important;
}

body.tdgx-redesign-page .tdgx-canvas[data-tdg-page="capabilities"] .capability-main .service-grid > .service-card:hover {
  background: linear-gradient(145deg, #151022 0%, #25163e 60%, #3a205f 100%) !important;
  border-color: rgba(196,119,231,.55) !important;
}

@media (max-width: 760px) {
  body.tdgx-redesign-page .tdgx-canvas[data-tdg-page="capabilities"] .hero {
    padding-top: 38px !important;
  }

  body.tdgx-redesign-page .tdgx-canvas[data-tdg-page="capabilities"] .hero .display {
    max-width: 10ch !important;
    font-size: clamp(3.45rem, 15vw, 5.45rem) !important;
  }
}

/* Version 1.9.1: force the intended-outcome description beneath each heading to solid white. */
body.tdgx-redesign-page .tdgx-canvas[data-tdg-page="capabilities"] .capability-main > .outcome-panel > h3 + p,
body.tdgx-redesign-page .tdgx-canvas[data-tdg-page="capabilities"] .capability-main > .outcome-panel > p:not(.outcome-label) {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
