:root{--sans:"Geist",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--sans-system:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--ink:#060D19;--navy:#0B1A30;--gold:#C6A05A;--blue:#2F80ED;--cream:#F4F7FB;--mute:#94A1B4;--body:#BFC9D6;--lede:#D8E0EA;--line:rgba(244,247,251,.14);--red:#FF4D4F}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--ink);color:var(--cream);font-family:var(--sans);font-weight:300;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible, button:focus-visible, select:focus-visible, input:focus-visible, textarea:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.wrap{max-width:1280px;margin:0 auto;padding:0 48px}header{position:absolute;top:0;left:0;right:0;z-index:20}header .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:22px;padding-bottom:22px}.brand{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.brand img{width:66px;height:auto}.brand b{display:block;font-weight:500;letter-spacing:.2em;font-size:16px;line-height:1.3}.brand span{display:block;color:var(--gold);letter-spacing:.62em;font-size:10px;font-weight:400;margin-top:3px}.nav{display:flex;align-items:center;gap:34px;font-size:15px;font-weight:400}.nav>a:not(.pill){color:var(--lede);background:none;border:0;font:inherit;cursor:pointer}.nav>a:not(.pill):hover, .nav [aria-current=page]{color:#fff}.nav [aria-current=page]{border-bottom:1px solid var(--blue)}.pill{display:inline-flex;align-items:center;gap:12px;border-radius:999px;padding:14px 26px;font-weight:500;font-size:15px;transition:background .2s;cursor:pointer;border:0;font-family:inherit}.pill.solid{background:var(--cream);color:var(--ink)}.pill.solid:hover{background:#fff}.pill.ghost{border:1px solid rgba(244,247,251,.55);color:var(--cream);background:none}.pill.ghost:hover{background:rgba(244,247,251,.08)}.pill.small{padding:10px 20px;font-size:14px}.hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden}.hero.inner{min-height:82vh}.hero .media{position:absolute;inset:0 0 0 38%;background-size:cover;background-position:center;animation:drift 24s ease-in-out infinite alternate}.hero .shade{position:absolute;inset:0;background:linear-gradient(90deg,var(--ink) 34%,rgba(6,13,25,.6) 56%,rgba(6,13,25,0) 82%)}.hero .copy{position:relative;z-index:2;max-width:680px;padding-top:150px}h1{font-weight:300;font-size:clamp(52px,7.4vw,112px);line-height:.98;letter-spacing:-.025em;margin-bottom:34px}h1 em{font-style:normal;display:block}.inner h1{font-size:clamp(42px,5.4vw,80px);line-height:1.02}.crumb{color:var(--gold);font-size:15px;font-weight:500;margin-bottom:22px;display:block}.lede{font-size:21px;color:var(--lede);max-width:520px;margin-bottom:44px}.ctas{display:flex;gap:16px;flex-wrap:wrap}section.band{padding:120px 0;border-top:1px solid var(--line)}section.band.first{border-top:0}.head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:64px}h2{font-weight:300;font-size:clamp(34px,4vw,56px);line-height:1.08;letter-spacing:-.015em;max-width:720px}.head p{color:var(--mute);max-width:380px;font-size:17px}.statement{font-weight:300;font-size:clamp(28px,3.2vw,46px);line-height:1.25;max-width:1000px;letter-spacing:-.012em}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:0 56px}.item{padding:30px 0 34px;border-top:1px solid var(--line)}h3{font-weight:400;font-size:24px;line-height:1.25;margin-bottom:12px;letter-spacing:-.005em}.item p{color:var(--body);font-size:17px}.more{border-bottom:1px solid var(--blue);padding-bottom:4px;font-weight:400;display:inline-block;margin-right:26px;margin-bottom:10px}.note{color:var(--mute);font-size:14px;margin-top:40px;max-width:760px}footer{padding:56px 0 48px;border-top:1px solid var(--line);font-size:13px;color:var(--mute);font-weight:400}.fcols{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px}.fcols b{display:block;color:var(--cream);font-weight:500;margin-bottom:12px;font-size:14px}.fcols a{display:block;margin-bottom:8px}.fcols a:hover{color:var(--cream)}@media (max-width:900px){.wrap{padding:0 24px}header .wrap{padding-top:16px;padding-bottom:16px}.brand img{width:52px}.brand b{font-size:14px}.nav{display:none;position:absolute;top:136px;left:16px;right:16px;flex-direction:column;align-items:stretch;gap:0;background:rgba(11,26,48,.98);border:1px solid var(--line);border-radius:16px;padding:12px}.nav>a{padding:12px;text-align:left}.hero .media{inset:0}.hero .shade{background:linear-gradient(180deg,rgba(6,13,25,.35),var(--ink) 78%)}.hero{align-items:flex-end;padding-bottom:110px}.head{flex-direction:column;align-items:start}.fcols{grid-template-columns:1fr 1fr}section.band{padding:80px 0}}@media (prefers-reduced-motion:reduce){.hero .media{animation:none}}.cond.on{display:grid;gap:22px}.fbar{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.fbar a{margin-left:22px}.fbar a:hover{color:var(--cream)}.brand b{padding-left:.2em}.brand span{padding-left:.62em}.stepnav{display:flex;flex-wrap:wrap;gap:8px}.stepnav a{border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--body)}.stepnav a:hover{border-color:var(--blue);color:var(--cream)}.stepnav a[aria-current=page]{background:var(--blue);border-color:var(--blue);color:var(--ink);font-weight:500}.hero.full .media{inset:0;background-position:center 70%;animation:drift 40s ease-in-out infinite alternate}.hero.full .shade{background:linear-gradient(90deg,rgba(6,13,25,.88) 0%,rgba(6,13,25,.62) 30%,rgba(6,13,25,.12) 58%,rgba(6,13,25,0) 75%),linear-gradient(180deg,rgba(6,13,25,.55) 0%,rgba(6,13,25,0) 28%,rgba(6,13,25,0) 70%,var(--ink) 100%)}@media (max-width:900px){.hero.full .media{background-position:48% center}.hero.full .shade{background:linear-gradient(180deg,rgba(6,13,25,.5),rgba(6,13,25,.2) 35%,var(--ink) 82%)}}@media (max-width:900px){.hero.full .shade{background:linear-gradient(180deg,rgba(6,13,25,.45),rgba(6,13,25,.4) 30%,rgba(6,13,25,.75) 55%,var(--ink) 85%)}}.hero .media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero.plain{min-height:64vh;background:radial-gradient(ellipse 80% 70% at 78% 30%,rgba(43,74,122,.45),rgba(6,13,25,0) 70%),var(--ink)}.hero.plain .copy{padding-top:150px}@media (max-width:900px){.hero.plain{min-height:auto;padding:190px 0 70px;align-items:flex-start}.hero.plain .copy{padding-top:0}}@media (prefers-reduced-motion:reduce){.hero .media video{display:none}}.hero.inner .shade{background:linear-gradient(180deg,rgba(6,13,25,.78) 0%,rgba(6,13,25,.25) 24%,rgba(6,13,25,0) 45%,rgba(6,13,25,0) 80%,var(--ink) 100%),linear-gradient(90deg,var(--ink) 34%,rgba(6,13,25,.6) 56%,rgba(6,13,25,.1) 82%)}.hero.inner.full .media{inset:0}.hero.inner.full .shade{background:linear-gradient(90deg,rgba(6,13,25,.9) 0%,rgba(6,13,25,.66) 32%,rgba(6,13,25,.18) 60%,rgba(6,13,25,.05) 78%),linear-gradient(180deg,rgba(6,13,25,.7) 0%,rgba(6,13,25,0) 26%,rgba(6,13,25,0) 72%,var(--ink) 100%)}.img-engineer{background-position:right center}.img-data{background-position:70% center}.img-shard{background-position:center 35%}.img-robot{background-position:65% center}@media (max-width:900px){.hero.inner.full .shade{background:linear-gradient(180deg,rgba(6,13,25,.55),rgba(6,13,25,.45) 35%,rgba(6,13,25,.8) 60%,var(--ink) 90%)}}.img-robot, .img-meeting{filter:brightness(.68) contrast(1.08)!important}.hero.inner.full .shade{background:linear-gradient(90deg,rgba(6,13,25,.92) 0%,rgba(6,13,25,.72) 36%,rgba(6,13,25,.22) 62%,rgba(6,13,25,.05) 80%),linear-gradient(180deg,rgba(6,13,25,.7) 0%,rgba(6,13,25,0) 26%,rgba(6,13,25,0) 72%,var(--ink) 100%)}@media (max-width:900px){.hero.inner.full .shade{background:linear-gradient(180deg,rgba(6,13,25,.55),rgba(6,13,25,.5) 35%,rgba(6,13,25,.82) 60%,var(--ink) 90%)}}:root{--font:"Geist"}body,.pill,button,input,select,textarea{font-family:var(--sans)}body{font-weight:400}h1, h2, h3, .statement{font-weight:500;letter-spacing:-.035em}h1{letter-spacing:-.045em}.lede, .item p, .statement{font-weight:400}.statement{font-weight:400;letter-spacing:-.025em}.crumb{text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:600}.brand b{font-weight:600}.pill{border-radius:2px;padding:15px 24px;letter-spacing:.01em}.pill.small{padding:10px 18px}.pill:after{content:"\2192";font-weight:300;margin-left:4px;transition:transform .2s}.pill:hover:after{transform:translateX(4px)}.stepnav a{border-radius:0!important}.head{border-top:1px solid var(--line);padding-top:26px}section.band.first .head{border-top:0;padding-top:0}header{position:fixed;transition:background .3s,border-color .3s;border-bottom:1px solid transparent}header .wrap{transition:padding .3s}header.scrolled{background:rgba(6,13,25,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom-color:var(--line)}header.scrolled .wrap{padding-top:10px;padding-bottom:10px}header.scrolled .brand div{display:none}header.scrolled .brand img{width:40px}.stepnav{display:grid;grid-template-columns:repeat(9,1fr);gap:0}.stepnav a{border:0!important;border-top:2px solid rgba(244,247,251,.14)!important;padding:14px 10px 0 0;font-size:11px;letter-spacing:.14em;background:none!important;color:var(--mute)!important;font-weight:600}.stepnav a[aria-current=page]{border-top-color:var(--blue)!important;color:var(--cream)!important}.stepnav a:has(~ a[aria-current=page]){border-top-color:rgba(47,128,237,.5)!important;color:var(--body)!important}.stepnav a:hover{color:var(--cream)!important}@media (max-width:900px){.stepnav{overflow-x:auto;grid-template-columns:repeat(9,120px)}}@media (prefers-reduced-motion:reduce){.hero.full h1 em, .hero.full .lede, .hero.full .ctas{animation:none}}.stepnav a{border-top-width:3px!important}.brand span{color:#C6A05A}.journey.on .jline i{width:100%}.js{display:block;padding:0 4px 6px}.journey.on .jd{opacity:1;transform:none}.js:last-child .jd{width:18px;height:18px;margin-top:-3px;margin-bottom:13px;background:var(--gold);border-color:var(--gold)}.js:hover .jt, .js:focus-visible .jt{color:var(--gold)}.journey.on .js:hover .jd{transform:scale(1.4);background:var(--blue)}.journey.on .js:last-child:hover .jd{background:var(--gold)}@media (max-width:900px){.journey.on .jline i{height:100%;width:100%}.js{display:grid;grid-template-columns:42px 34px 1fr;align-items:center;padding:0}.js:last-child .jd{margin:0 0 0 12px}}.stepnav{grid-template-columns:repeat(var(--n,9),1fr)}@media (max-width:900px){.stepnav{grid-template-columns:repeat(var(--n,9),120px)}}.mintro{max-width:780px;color:var(--lede);font-size:20px;line-height:1.6;margin:26px 0 44px}section.band{padding:76px 0}.head{margin-bottom:44px}section.band:has(> .wrap > .head:only-child){padding-bottom:32px}section.band > .wrap > .head:only-child{margin-bottom:0}.hero.plain{min-height:52vh}.statement{margin:0}@media (max-width:900px){section.band{padding:56px 0}.hero.plain{min-height:auto}}.hero.inner{min-height:74vh}.brand img{width:58px}header .wrap{padding-top:18px;padding-bottom:18px}.hero .copy{padding-top:120px}@media (max-width:900px){.brand img{width:48px}.nav{top:92px!important}}/* premium buttons */
.pill{position:relative;padding:17px 30px;font-size:15px;font-weight:500;letter-spacing:.02em;overflow:hidden;transition:background .3s,color .3s,border-color .3s,transform .3s}.pill:after{margin-left:10px;font-weight:300;font-size:17px;opacity:.85}.pill.solid{background:rgba(244,247,251,.06);color:var(--cream);border:1px solid rgba(244,247,251,.34);backdrop-filter:blur(8px)}.pill.solid:hover{background:rgba(198,160,90,.12);border-color:var(--gold);color:#fff;transform:translateY(-1px)}.pill.ghost{border:1px solid rgba(244,247,251,.34);color:var(--cream);background:rgba(244,247,251,.03);backdrop-filter:blur(6px)}.pill.ghost:hover{border-color:var(--gold);background:rgba(198,160,90,.10);color:#fff;transform:translateY(-1px)}.pill.small{padding:11px 20px;font-size:14px}.ctas{gap:18px;align-items:center}.pill.solid:after{opacity:.85}.band .pill.solid{background:rgba(244,247,251,.05)}header .pill.solid{background:rgba(244,247,251,.08);border-color:rgba(244,247,251,.4)}.stepnav a{padding-right:12px}.stepnav a:first-child{color:var(--gold)!important}.stepnav{display:block!important;font-size:0;white-space:nowrap;overflow-x:auto;overflow-y:hidden;padding-bottom:4px}.stepnav a{display:inline-block!important;width:auto!important;min-width:112px;font-size:11px;white-space:normal;vertical-align:top;padding:12px 26px 0 0;line-height:1.35}.stepnav a[aria-current=page]{color:var(--cream)!important}.stepnav{scrollbar-width:none;-ms-overflow-style:none}.stepnav::-webkit-scrollbar{display:none;width:0;height:0}.pitem{display:inline-block;width:49.8%;vertical-align:top;font-size:16px;box-sizing:border-box;padding-right:56px;border-top:1px solid var(--line);padding-top:26px}.pitem h3{font-size:22px;margin-bottom:8px}.pitem p{color:var(--body);margin-bottom:16px}@media (max-width:900px){.pitem{width:100%;padding-right:0}}/* consistent vertical rhythm: no trailing space inside a section */
section.band > .wrap > *:last-child{margin-bottom:0!important}section.band > .wrap > .head:last-child{margin-bottom:0!important}.mintro:last-child, .statement:last-child, .note:last-child, .grid:last-child{margin-bottom:0!important}.pitem{padding-bottom:26px}/* the section bar fits without scrolling */
.stepnav{white-space:normal;overflow:visible;display:block!important}.stepnav a{min-width:0;padding:12px 0 0 0;margin-right:2.2%;font-size:10.5px;letter-spacing:.1em}.stepnav a:last-child{margin-right:0}@media (max-width:1100px){.stepnav a{font-size:10px;margin-right:1.6%}}@media (max-width:760px){.stepnav{white-space:nowrap;overflow-x:auto}.stepnav a{margin-right:18px}}footer .fcols>div{width:100%;max-width:640px;padding-right:0}footer .fcols>div b{display:block;margin-bottom:10px}@media (max-width:760px){footer .fcols>div{width:100%}}/* even rhythm across every block of services, figures and cards */
.grid{margin-right:-48px}.grid > .item{padding:24px 48px 28px 0;border-top:1px solid var(--line);box-sizing:border-box}.grid > .item h3{margin:0 0 8px;font-size:19px;line-height:1.3}.grid > .item p{margin:0;font-size:16px;line-height:1.55}.pitem{padding-top:24px;padding-bottom:28px}.barlab{display:block;color:var(--gold);font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;margin-bottom:12px}section.band h2{font-size:34px;line-height:1.15;letter-spacing:-.02em;margin:0 0 18px;max-width:20ch}section.band p{max-width:78ch;margin:0 0 16px}section.band h3{font-size:20px;margin:26px 0 8px}.evs{display:block;margin-top:8px}section.band .head{display:block;font-size:0;margin-bottom:30px}section.band .head h2{display:inline-block;width:56%;vertical-align:top;font-size:34px;margin:0;padding-right:5%;box-sizing:border-box}section.band .head p{display:inline-block;width:39%;vertical-align:top;font-size:16px;color:var(--mute);margin:8px 0 0}@media (max-width:900px){section.band .head h2, section.band .head p{display:block;width:100%;padding-right:0}}.lede2{color:var(--lede);font-size:18px;line-height:1.6;max-width:62ch;margin:18px 0 0}section.band .head h2{font-size:32px}section.band{padding:64px 0}
section.band{padding:72px 0}section.band .head{margin-bottom:34px}section.band .head h2{width:54%;padding-right:6%;font-size:32px;line-height:1.18}section.band .head p{width:40%;font-size:16px;line-height:1.6;margin:10px 0 0}section.band .wrap > p{margin:0 0 18px}section.band .wrap > p:last-child{margin-bottom:0}.evs{margin-top:4px}.grid{margin-top:8px}.mintro{margin-bottom:26px}section.band .head p{color:var(--lede);font-size:17px}/* type scale, applied site-wide
   display 76 / 96 home | h2 32 | h3 20 | standfirst 19 | body 18 | small 16 | caption 13 */
.hero h1{font-size:76px;line-height:1.04;font-weight:500;letter-spacing:-.03em}.hero.full:not(.inner) h1{font-size:92px}.hero .lede{font-size:20px;line-height:1.6;color:var(--lede)}.lede2{font-size:18px;line-height:1.65;color:var(--body)}section.band .head h2{font-size:32px;line-height:1.18;font-weight:500;letter-spacing:-.02em}section.band .head p{font-size:19px;line-height:1.6;color:var(--lede)}.mintro{font-size:19px;line-height:1.6;color:var(--lede)}section.band .wrap > p{font-size:18px;line-height:1.65;color:var(--body)}section.band h3, .grid > .item h3{font-size:20px;line-height:1.35;font-weight:500;color:var(--cream)}.grid > .item p{font-size:17px;line-height:1.6}.crumb{font-size:11px;font-weight:600;letter-spacing:.16em}.barlab{font-size:11px;font-weight:600;letter-spacing:.16em}.stepnav a{font-size:11px;font-weight:600;letter-spacing:.1em}.nav a, .nav button{font-size:15px;font-weight:400}.pill{font-size:15px;font-weight:500}footer, footer a{font-size:14px;line-height:1.7}@media (max-width:900px){.hero h1, .hero.full:not(.inner) h1{font-size:46px}section.band .head h2{font-size:26px}}.futil{border-top:1px solid var(--line);padding-top:22px;margin-top:30px}.futil a{display:inline-block;color:var(--body);font-size:14px;margin:0 26px 10px 0;text-decoration:none}.futil a:hover{color:var(--gold)}/* layout without grid or flex, so restricted viewers render it correctly */
.wrap{max-width:1280px;margin:0 auto;padding:0 48px}header .wrap{display:block!important;text-align:left;font-size:0}.brand{display:inline-block!important;vertical-align:middle}.nav{display:inline-block!important;vertical-align:middle;float:right;font-size:15px}.nav>a{display:inline-block!important;vertical-align:middle;margin-left:30px}.hero{display:block!important;position:relative;padding-top:120px;padding-bottom:90px}.hero .copy{padding-top:0!important}.ctas{display:block!important;font-size:0}.ctas>*{display:inline-block!important;vertical-align:middle;margin:0 16px 12px 0;font-size:15px}.pill{display:inline-block!important;vertical-align:middle}.head{display:block!important}.head h2{display:inline-block;vertical-align:bottom;width:62%}.head p{display:inline-block;vertical-align:bottom;width:34%;padding-left:3%}.stepnav{display:block!important;font-size:0}.stepnav>a{display:inline-block!important;width:12.4%;font-size:11px;box-sizing:border-box}.grid{display:block!important;font-size:0}.grid>.item{display:inline-block!important;width:33.2%;vertical-align:top;font-size:16px;box-sizing:border-box;padding-right:48px}.fcols{display:block!important;font-size:0}.fcols>div{display:inline-block!important;width:19.8%;vertical-align:top;font-size:13px;box-sizing:border-box;padding-right:24px}.fbar{display:block!important}.fbar>span{display:inline-block;vertical-align:middle}.fbar>span:last-child{float:right}@media (max-width:1100px){.grid>.item{width:50%}.fcols>div{width:33.33%;margin-bottom:24px}}@media (max-width:900px){.wrap{padding:0 20px}.nav{float:none;display:block!important;margin-top:10px}.nav>a{margin:0 18px 8px 0}.head h2, .head p{display:block;width:100%;padding-left:0}}@media (max-width:760px){.grid>.item, .fcols>div{width:100%}.stepnav>a{width:100%;text-align:left}.nav{float:none;display:block!important}}.hero .media{position:absolute;inset:0}.hero.plain{padding-top:150px;padding-bottom:90px}/* cards, sections and their spacing */
section.band{padding:0;background:none;border:0}section.band + section.band{border-top:0}section.band > .wrap{padding-top:0;padding-bottom:0}.cardwrap{padding:22px 0}.nacard{position:relative;background:rgba(244,247,251,.028);border:1px solid rgba(244,247,251,.10);
  padding:40px 44px 42px;box-sizing:border-box;transition:border-color .35s,background .35s,transform .35s,box-shadow .35s}.nacard:hover{border-color:rgba(198,160,90,.55);background:rgba(198,160,90,.05);transform:translateY(-3px);
  box-shadow:0 18px 44px rgba(0,0,0,.34)}.nacard .num{display:block;color:var(--gold);font-size:12px;font-weight:600;letter-spacing:.18em;margin-bottom:16px;transition:color .35s}.nacard h2{font-size:26px;line-height:1.22;font-weight:500;letter-spacing:-.01em;margin:0 0 14px;color:var(--cream)}.nacard .stand{color:var(--lede);font-size:18px;line-height:1.6;margin:0 0 18px;max-width:70ch}.nacard p{color:var(--body);font-size:17px;line-height:1.68;margin:0 0 14px;max-width:78ch}.nacard p:last-child{margin-bottom:0}.nacard h3{font-size:18px;margin:22px 0 8px;color:var(--cream)}.nacard:after{content:"";position:absolute;left:0;top:0;width:2px;height:0;background:var(--gold);transition:height .45s}.nacard:hover:after{height:100%} two across, equal height, symmetrical 
.cards2{display:block;padding:8px 0 40px}.crow{display:table;width:100%;table-layout:fixed;border-spacing:24px 24px;margin:0 -24px;height:1px}.ccell{display:table-cell;vertical-align:top}.cardwrap{padding:0;height:100%;display:block}.nacard{height:100%;min-height:100%;box-sizing:border-box}/* grids and figures inside a card */
.nacard .grid{margin-right:-40px}.nacard .grid > .item{padding:22px 40px 24px 0;border-top:1px solid rgba(244,247,251,.09)}.nacard .grid > .item:hover h3{color:var(--gold)}.nacard .grid > .item{width:50%}@media (max-width:900px){.cards2 > .cardwrap{width:100%;padding-right:0}.nacard{padding:26px 22px 28px}.nacard h2{font-size:22px}.cardwrap{padding:12px 0}}.hero.full:not(.inner) h1{max-width:12ch}.hero h1 .tl{display:block;line-height:1.02;margin:0 0 6px}.hero h1 .tl:last-child{margin-bottom:0}.nacard.wide{}.crow:has(.nacard.wide){table-layout:auto}/* the two service columns */
.oboxes{display:table;width:100%;table-layout:fixed;border-spacing:28px 0;margin:22px -28px 0}.obox{display:table-cell;width:50%;vertical-align:top}.obox .olab{display:block;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);
  border-top:2px solid var(--gold);padding-top:14px;margin-bottom:14px}.obox .oline{font-size:16px;line-height:1.6;color:var(--lede);margin:0 0 18px}.osvc{list-style:none;margin:0;padding:0}.osvc li{font-size:16px;line-height:1.5;color:var(--cream);padding:12px 0;border-top:1px solid rgba(244,247,251,.09)}.osvc li:before{content:"";display:inline-block;width:5px;height:5px;background:var(--gold);margin-right:12px;vertical-align:middle}@media (max-width:900px){.oboxes{display:block;margin:16px 0 0}.obox{display:block;width:100%;padding:0 0 22px}}/* rows line up across the two boxes */
.oboxes{display:table;width:100%;table-layout:fixed;border-spacing:14px 0;margin:16px -14px 0}.obox{display:table-cell;width:50%;padding:0;vertical-align:top}@media (max-width:900px){.oboxes{display:block;margin:12px 0 0}.obox{display:block;width:100%}}.ohd{margin-bottom:12px}.ohd .ostage{display:inline-block;vertical-align:middle;color:var(--gold);font-size:13px;font-weight:600;letter-spacing:.18em;
  border:1px solid rgba(198,160,90,.45);padding:7px 11px;margin-right:16px}.ohd h2{display:inline-block;vertical-align:middle;margin:0}.nacard.wide .stand{max-width:88ch;margin-bottom:8px}/* space under the stage bar, and around the chain */
section.band.first{padding:30px 0 0}section.band.first + section.band{padding-top:44px}section.band.first .stepnav{padding-bottom:22px;border-bottom:1px solid rgba(244,247,251,.08)}/* keep the chain on one line and balanced */
.nacard.wide .grid{margin-right:-40px;margin-top:10px}.nacard.wide .grid > .item{width:24.9%;padding:20px 40px 22px 0;border-top:1px solid rgba(244,247,251,.10)}@media (max-width:1100px){.nacard.wide .grid > .item{width:49.8%}}@media (max-width:760px){.nacard.wide .grid > .item{width:100%;padding-right:0}}/* the stage bar */
.stepnav{display:table!important;width:100%;table-layout:fixed;border-spacing:10px 0;margin:0 -10px;white-space:normal;overflow:visible}.stepnav a.step{display:table-cell!important;width:auto!important;border:0!important;border-top:2px solid rgba(244,247,251,.13)!important;
  padding:12px 0 0!important;margin:0!important;text-decoration:none;transition:border-color .3s,color .3s}.stepnav a.step .sn{display:block;font-size:11px;letter-spacing:.14em;color:var(--mute);margin-bottom:5px;transition:color .3s}.stepnav a.step .st{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--body);transition:color .3s}.stepnav a.step.done{border-top-color:rgba(198,160,90,.35)!important}.stepnav a.step.done .sn, .stepnav a.step.done .st{color:var(--body)}.stepnav a.step.on{border-top-color:var(--gold)!important}.stepnav a.step.on .sn{color:var(--gold)}.stepnav a.step.on .st{color:var(--cream)}.stepnav a.step:hover{border-top-color:rgba(198,160,90,.7)!important}.stepnav a.step:hover .st{color:var(--cream)}.stepnav a.step:hover .sn{color:var(--gold)}@media (max-width:900px){.stepnav{display:block!important;white-space:nowrap;overflow-x:auto;margin:0}.stepnav a.step{display:inline-block!important;min-width:104px;margin-right:16px!important}}.stepnav a.step.done .sn{color:var(--gold);opacity:.75}/* a card with no partner spans the width and sets its body in two columns */
.crow.full{width:100%}.nacard.solo{padding:40px 44px 42px}.nacard.solo h2{max-width:28ch}.nacard.solo .stand{max-width:80ch}.nacard.solo p{max-width:none}.nacard.solo > p:not(.stand){display:inline-block;width:49.6%;vertical-align:top;box-sizing:border-box;padding-right:40px;font-size:17px}@media (max-width:900px){.nacard.solo{padding:26px 22px}.nacard.solo > p:not(.stand){display:block;width:100%;padding-right:0}}.nacard.wide > h3{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:600;margin:28px 0 6px}.nacard.wide > h3:first-of-type{margin-top:14px}.ev-n{color:var(--gold);font-weight:500}.ev-src{display:block;margin-top:8px;font-size:12px;color:var(--mute)}.ev-src a{color:var(--mute)}/* a one-line assertion reads as a statement, not a half-empty card */
.nacard.assert{background:rgba(198,160,90,.05);border-color:rgba(198,160,90,.28)}.nacard.assert h2{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:14px}.nacard.assert .stand, .nacard.assert p{font-size:26px;line-height:1.35;color:var(--cream);max-width:34ch;margin:0}.nacard.assert .num{color:var(--gold)}@media (max-width:900px){.hero .media{right:0;max-width:100%}section.band.first > .wrap{padding-right:0}.stepnav{padding-right:20px}body{overflow-x:hidden}}@media (max-width:900px){section.band.first > .wrap{overflow:hidden}.stepnav{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:900px){.crow{display:block!important;width:100%;margin:0;border-spacing:0}.ccell{display:block!important;width:100%}.cardwrap{margin-bottom:14px}}.evline{margin-top:16px;padding-top:16px;border-top:1px solid rgba(244,247,251,.09);font-size:16px;line-height:1.6;color:var(--body)}.evline .ev-src{display:block;margin-top:8px;font-size:12px;color:var(--mute)}.obox .oline{min-height:80px}@media (max-width:900px){.obox .oline{min-height:0}}/* one colour rule: cream for headings, body grey for text, gold for figures and labels */
.osvc li{color:var(--body)}.osvc li:hover{color:var(--cream)}.nacard p:not(.stand), .evline{color:var(--body)}.nacard .stand, .obox .oline{color:var(--lede)}.ev-n{color:var(--gold);font-weight:500}.ev-src, .ev-src a{color:var(--mute)}/* one evidence pattern site-wide */
.evs{margin-top:10px}.evline{margin:0;padding:18px 0 16px;border-top:1px solid rgba(244,247,251,.09);
  font-size:17px;line-height:1.62;color:var(--body);max-width:82ch}.evline:first-child{border-top:1px solid rgba(244,247,251,.09)}.evline .ev-n{color:var(--gold);font-weight:500}.evline .ev-src{display:block;margin-top:8px;font-size:12px;line-height:1.5;color:var(--mute)}.nacard h2{font-size:30px;line-height:1.2}.nacard .stand{font-size:18px;line-height:1.62;color:var(--lede);margin-bottom:18px}.nacard p:not(.stand):not(.evline){font-size:17px;line-height:1.66;color:var(--body)}.obox .olab{margin-bottom:6px}/* fewer rules: the hierarchy is carried by size and colour */
.evline{border-top:0!important;padding:0;margin:16px 0 0;max-width:88ch}.evline .ev-src{display:block;margin-top:6px}.evs .evline{margin-top:18px}.nacard .stand + .evline{margin-top:14px}.osvc li{border-top:0;padding:9px 0}.osvc li:before{margin-right:11px}.obox .olab{border-top:2px solid var(--gold);padding-top:13px;margin-bottom:12px}.grid > .item{border-top:1px solid rgba(244,247,251,.08)}/* breathing room now that the rules are gone */
.nacard.wide .stand{margin-bottom:0}.evline{margin-top:20px}.oboxes{margin-top:34px}/* a label beside its paragraph */ on a full-width card the heading sits beside the text 
.nacard.solo{display:table;width:100%;table-layout:fixed}.nacard.solo > .num, .nacard.solo > h2{display:block}.nacard.solo > .num{color:var(--gold)}.nacard.solo:before{content:"";display:none}.nacard.solo > h2{width:auto}.solo-head{display:table-cell;width:34%;vertical-align:top;padding-right:48px;box-sizing:border-box}.solo-body{display:table-cell;vertical-align:top}.solo-body > p:not(.stand){display:block!important;width:auto!important;padding-right:0!important}@media (max-width:900px){.nacard.solo, .solo-head, .solo-body{display:block;width:100%;padding-right:0}}.nacard.solo .solo-body > p:not(.stand){display:block!important;width:auto!important;padding-right:0!important;max-width:74ch}.solo-head{width:30%}.nacard.solo h2{font-size:26px;max-width:18ch}@media (max-width:900px){.nacard.solo .solo-body > p:not(.stand){display:block!important;width:100%!important;padding-right:0!important}}.stand .evjoin{color:var(--body)}.stand .ev-src{margin-left:6px;font-size:12px;color:var(--mute);white-space:nowrap}.stand .ev-n{color:var(--gold);font-weight:500}/* full-width card: fill the card, keep the same type scale */
.nacard.solo{display:table!important;width:100%!important;table-layout:fixed;box-sizing:border-box}.solo-head{display:table-cell!important;width:32%!important;vertical-align:top;padding-right:56px;box-sizing:border-box}.solo-body{display:table-cell!important;width:68%!important;vertical-align:top;box-sizing:border-box}.solo-body > p:not(.stand){max-width:none!important;width:auto!important}.nacard.solo h2{font-size:30px;line-height:1.2;max-width:none}.nacard.solo .stand{font-size:18px;margin-bottom:0}.nacard.solo .solo-body > p:first-child{margin-top:0}.nacard.solo{padding:38px 44px 40px;border-collapse:separate}.nacard.solo > .solo-head, .nacard.solo > .solo-body{float:none}.crow.full .ccell{width:100%}.crow.full{table-layout:auto}/* solo card columns, without table quirks */
.nacard.solo{display:block!important;font-size:0}.solo-head{display:inline-block!important;width:32%!important;vertical-align:top;padding-right:4%;box-sizing:border-box;font-size:16px}.solo-body{display:inline-block!important;width:64%!important;vertical-align:top;box-sizing:border-box;font-size:16px}/* one scale, and no dead space at the foot of a card */
section.band .head h2, .nacard h2{font-size:30px!important;line-height:1.2}.nacard.assert h2{font-size:13px!important}.nacard .stand, .nacard.solo .stand{font-size:18px}.nacard p:not(.stand):not(.evline), .evline, .grid > .item p{font-size:17px}.osvc li{font-size:16px}.nacard > *:last-child{margin-bottom:0!important}.nacard{padding-bottom:34px}.ccell{height:auto}.crow{height:auto}/* the body column must never collapse */
.solo-body{min-height:1px}.solo-body > .mintro{font-size:18px;line-height:1.62;color:var(--lede);margin:0 0 16px;max-width:none}.solo-body p{display:block}b.ev-n{color:var(--gold);font-weight:500}.osvc b.ev-n{font-weight:500}.hero .claim{margin:20px 0 0;padding-top:18px;border-top:1px solid rgba(198,160,90,.4);max-width:44ch;
  font-size:17px;line-height:1.55;color:var(--cream);font-weight:500;letter-spacing:.01em}@media (max-width:900px){.hero .claim{font-size:15px;max-width:none}}.hero .ctas{margin-top:0}/* the positioning line: gold first clause, lighter second */
.hero .claim{border-top:0;border-bottom:1px solid rgba(198,160,90,.4);max-width:52ch;margin:26px 0 20px;padding:0 0 16px}.hero .claim .c1{display:block;color:var(--gold);font-size:22px;line-height:1.3;font-weight:500;letter-spacing:-.005em}@media (max-width:900px){.hero .claim .c1{font-size:18px}}/* ===== one type scale, applied last so it wins =====
   display 88 | page 64 | section 28 | sub 19 | standfirst 19 | body 17 | list 16 | small 12 | label 11 */
.hero.full:not(.inner) h1{font-size:88px!important;line-height:1.02;font-weight:500;letter-spacing:-.03em}.hero.inner h1{font-size:64px!important;line-height:1.08;font-weight:500;letter-spacing:-.025em}section.band .head h2, .nacard h2, .ohd h2{font-size:28px!important;line-height:1.22;font-weight:500;letter-spacing:-.015em}.nacard.assert h2{font-size:11px!important;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}.nacard.assert .stand, .nacard.assert p{font-size:24px!important;line-height:1.4;color:var(--cream)}section.band h3, .grid > .item h3, .nacard.wide > h3{font-size:19px!important;line-height:1.35;font-weight:500}.nacard.wide > h3{font-size:11px!important;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:600}.hero .lede{font-size:19px!important;line-height:1.6}.hero .claim .c1{font-size:22px!important}.nacard .stand, .obox .oline, .mintro, .solo-body > .mintro{font-size:19px!important;line-height:1.6}.nacard p:not(.stand):not(.evline):not(.mintro), .evline, .grid > .item p, .lede2{font-size:17px!important;line-height:1.66}.osvc li{font-size:16px!important;line-height:1.5}.ev-src, .ev-src a, .note{font-size:12px!important}.crumb, .barlab, .stepnav a .sn, .stepnav a .st, .olab, .nacard .num{font-size:11px!important;letter-spacing:.15em;font-weight:600}.stepnav a .st{font-size:12px!important}.pill, .pill.small{font-size:15px!important;font-weight:500}.nav a, .nav button{font-size:15px!important}footer, footer a, .futil a{font-size:14px!important}@media (max-width:900px){.hero.full:not(.inner) h1{font-size:44px!important}.hero.inner h1{font-size:36px!important}section.band .head h2, .nacard h2, .ohd h2{font-size:24px!important}.nacard.assert p, .nacard.assert .stand{font-size:20px!important}.nacard .stand, .obox .oline, .mintro{font-size:17px!important}}section.band > .wrap > p{font-size:17px!important;line-height:1.66}.ohd .ostage{font-size:11px!important}/* tighter rhythm between labelled rows */.nacard.wide .stand{margin-bottom:2px}.evline{margin-top:14px!important}.nacard.wide .stand + .evline{margin-top:10px!important}.oboxes{margin-top:30px!important} paragraphs inside a card sit close together 
.nacard .mintro{margin:0 0 14px}.nacard .mintro + .mintro{margin-top:0}.nacard p + p{margin-top:0}.nacard p{margin:0 0 14px}.nacard > *:last-child{margin-bottom:0}.solo-body > p{margin:0 0 14px}.osvc li:before{background:rgba(198,160,90,.75);width:4px;height:4px}/* services grouped into boxes that open */
.svcgs{margin-top:4px}.svcg{border:1px solid rgba(244,247,251,.12);margin-bottom:10px;background:rgba(244,247,251,.02);
  transition:border-color .3s,background .3s}.svcg[open]{border-color:rgba(198,160,90,.45);background:rgba(198,160,90,.04)}.svcg:hover{border-color:rgba(198,160,90,.4)}.svcg > summary{list-style:none;cursor:pointer;padding:15px 18px;display:block;position:relative;
  color:var(--cream);font-size:17px;line-height:1.4;font-weight:500}.svcg > summary::-webkit-details-marker{display:none}.svcg > summary:after{content:"+";position:absolute;right:18px;top:13px;color:var(--gold);font-size:18px;font-weight:400}.svcg[open] > summary:after{content:"\2212"}.svcg .sg-c{display:inline-block;margin-left:10px;color:var(--gold);font-size:12px;font-weight:600;letter-spacing:.1em;vertical-align:1px}.svcg .osvc{padding:0 18px 14px}.svcg .osvc li{border-top:1px solid rgba(244,247,251,.08);padding:11px 0;font-size:16px;color:var(--body)}.svcg .osvc li:first-child{border-top:0}/* emphasis inside body copy */.nacard strong, .evline strong, section.band strong{color:var(--gold);font-weight:500} one hero hierarchy on every page: headline, gold line, supporting line, note 
.hero .copy{max-width:56ch}.hero.full:not(.inner) h1{font-size:82px!important}.hero.inner h1{font-size:58px!important}.hero .claim .c1{font-size:24px!important;line-height:1.3}.hero .lede{font-size:21px!important;line-height:1.55;color:var(--lede);margin:0}.hero .lede2{font-size:16px!important;line-height:1.62;color:var(--mute);margin-top:16px;max-width:52ch}.hero .crumb{margin-bottom:18px;display:block}@media (max-width:900px){.hero.full:not(.inner) h1{font-size:42px!important}.hero.inner h1{font-size:34px!important}.hero .claim .c1{font-size:18px!important}.hero .lede{font-size:17px!important}.hero .lede2{font-size:15px!important}}.hero.inner .claim{border-bottom:1px solid rgba(198,160,90,.35);padding-bottom:16px;margin:22px 0 18px;max-width:52ch}.hero.inner .crumb{margin-bottom:14px}.hero .lede2{margin-top:0}/* gold marks the headings that carry the message, nothing else */
.nacard h2, section.band .head h2, .ohd h2{color:var(--gold)!important}.nacard.assert h2{color:var(--gold)!important}.obox .olab{color:var(--gold)!important}.hero .claim .c1{color:var(--gold)!important}b.ev-n{color:inherit!important;font-weight:500}.evline b, .stand b{color:var(--cream)!important}.nacard strong, section.band strong{color:var(--cream)!important}.svcg > summary{color:var(--cream)}/* the stage bar: clear space under the label, with a marker pointing to it */
.barlab{display:block;margin-bottom:22px;position:relative}/* a marker over the current stage */
.stepnav a.step{position:relative}.stepnav a.step .hint{position:absolute;top:-24px;left:0;color:var(--gold);font-size:15px;line-height:1;
  animation:barnudge 2.2s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.stepnav a.step .hint{animation:none}}section.band.first{padding-top:44px}/* less empty space beneath the hero text */
.hero{min-height:0!important;padding:112px 0 72px!important}.hero.full:not(.inner){min-height:0!important;padding:150px 0 96px!important}@media (max-width:900px){.hero{padding:88px 0 52px!important}.hero.full:not(.inner){padding:96px 0 60px!important}}/* no gold rules above the service columns */
.obox .olab{border-top:0!important;padding-top:0!important}.oboxes{margin-top:26px!important}.hero .claim{border-bottom:0!important;padding-bottom:0!important;margin-bottom:16px!important}.nacard.assert{border-color:rgba(244,247,251,.12)!important}.barlab{font-size:13px!important;letter-spacing:.17em;margin-bottom:30px}.stepnav a.step .hint{top:-22px}.barlab{font-size:17px!important;letter-spacing:.06em;text-transform:none;font-weight:500;margin-bottom:32px}.hero .claim{max-width:46ch}.hero .claim .c1{display:inline;font-size:24px!important;color:var(--gold)}@media (max-width:900px){.hero .claim .c1{font-size:18px!important}}/* card headings sit below the section label in weight and size */
.nacard h2, section.band .head h2, .ohd h2{font-size:23px!important;line-height:1.25;font-weight:500;letter-spacing:-.005em}.nacard .stand{font-size:18px!important}.nacard p:not(.stand):not(.evline):not(.mintro):not(.widecopy):not(.oline), .evline, .grid > .item p{font-size:16px!important;line-height:1.66}.nacard .mintro, .obox .oline{font-size:17px!important}.svcg > summary{font-size:16px!important}.osvc li{font-size:15px!important}@media (max-width:900px){.nacard h2, section.band .head h2, .ohd h2{font-size:20px!important}}.stepnav a.step .hint{left:50%;transform-origin:center;margin-left:-8px;top:-26px;font-size:19px;width:16px;text-align:center}/* the audience is the heading for its list */
.obox .olab{font-size:20px!important;font-weight:500;letter-spacing:0!important;text-transform:none!important;
  color:var(--gold)!important;margin:0 0 10px;border:0!important;padding:0!important}.obox .oline{line-height:1.62;color:var(--body);margin:0 0 18px;max-width:46ch}.oboxes{margin-top:30px!important}.img-hero{background-image:url("./img-hero.jpg")}.img-shard{background-image:url("./img-shard.jpg")}.img-meeting{background-image:url("./img-meeting.jpg")}.img-engineer{background-image:url("./img-engineer.jpg")}.img-eye{background-image:url("./img-eye.jpg")}.img-robot{background-image:url("./img-robot.jpg")}.img-data{background-image:url("./img-data.jpg")}.img-crew{background-image:url("./img-crew.jpg")}.img-plant{background-image:url("./img-plant.jpg")}.img-bridges{background-image:url("./img-bridges.jpg")}
.skip-link{position:fixed;left:12px;top:-60px;z-index:9999;background:#fff;color:#060D19;padding:10px 14px;font-weight:600}.skip-link:focus{top:12px}.section-kicker, .classification{display:block;color:var(--gold);font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;margin-bottom:12px}.statement-block{max-width:980px}.supporting, .widecopy{color:var(--body);font-size:18px;max-width:900px;margin-top:22px}.clean-list{list-style:none;margin-top:14px}.clean-list li{border-top:1px solid var(--line);padding:10px 0;color:var(--body)}.proofgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:10px 0 48px}.proof{background:var(--ink);padding:30px}.proof b{display:block;color:var(--gold);font-size:34px;font-weight:500;line-height:1.05;margin-bottom:12px}.proof span{color:var(--body);font-size:15px}.proof a{display:inline;border-bottom:1px solid var(--line);color:var(--mute)}.routegrid, .founders{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}.routecard, .founders article{background:var(--ink);padding:34px}.routecard>span, .roleline{color:var(--gold);font-size:12px;text-transform:uppercase;letter-spacing:.14em;font-weight:600}.routecard p, .founders p{color:var(--body);margin:12px 0 18px}.principle-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.principle-grid div{padding:24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:20px}.value-tags{display:flex;flex-wrap:wrap;gap:10px}.value-tags span{border:1px solid var(--line);padding:10px 14px;color:var(--lede);font-size:14px}.sector-class{padding:32px 0!important}.mandate-note{padding:26px 0!important}.sectorgrid, .sourcegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.sectorcard, .sourcecard{display:block;background:var(--ink);padding:30px;min-height:230px}.sectorcard span, .sourcecard>span{display:block;color:var(--gold);font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;margin-bottom:14px}.sectorcard p, .sourcecard p{color:var(--body);margin:12px 0 18px}.sectorcard b{color:var(--gold);font-weight:500}.cta-band{padding-top:70px!important}.cta-panel{display:flex;justify-content:space-between;align-items:end;gap:40px;border-top:1px solid var(--line);padding-top:38px}.cta-panel h2{font-size:36px}.enquiry-form{max-width:920px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid label, .enquiry-form>label{display:block;color:var(--mute);font-size:14px}.form-grid .full{grid-column:1/-1}.enquiry-form input, .enquiry-form select, .enquiry-form textarea{display:block;width:100%;margin-top:8px;background:rgba(244,247,251,.04);border:1px solid var(--line);color:var(--cream);padding:14px 16px;font:inherit;border-radius:0}.enquiry-form select option{background:var(--navy)}.enquiry-form fieldset{border:1px solid var(--line);padding:24px;margin:30px 0}.enquiry-form legend{padding:0 8px;color:var(--gold);font-weight:600}.enquiry-form .check{margin:18px 0;color:var(--body);font-size:14px}.enquiry-form .check input{display:inline-block;width:auto;margin:0 9px 0 0}.enquiry-form .check a{border-bottom:1px solid var(--blue)}.conditional{display:none}.conditional.on{display:block}.form-note, .form-status{color:var(--mute);font-size:13px;margin:16px 0}.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.sourcecard{min-height:210px}.sourcecard h3{font-size:20px}.sourcecard a{margin-top:10px}.hero.plain .copy{max-width:760px}@media(max-width:900px){.proofgrid, .sectorgrid, .sourcegrid, .principle-grid{grid-template-columns:1fr 1fr}.routegrid, .founders, .form-grid{grid-template-columns:1fr}.cta-panel{display:block}.cta-panel .ctas{margin-top:24px}}@media(max-width:600px){.proofgrid, .sectorgrid, .sourcegrid, .principle-grid{grid-template-columns:1fr}}
@media(max-width:900px){header .nav{display:flex;position:static;flex-direction:row;align-items:center;gap:0;background:none;border:0;border-radius:0;padding:0}header .nav>a{padding:10px 16px;text-align:center}}@media(max-width:760px){.grid, .nacard .grid{margin-right:0!important}}@media(max-width:900px){header .wrap{display:flex!important;align-items:center;justify-content:space-between;text-align:left;font-size:initial}header .brand{display:flex!important;flex-direction:column;align-items:center;margin:0}header .nav{display:flex!important;position:static;float:none;flex-direction:row;align-items:center;margin:0;gap:0;background:none;border:0;border-radius:0;padding:0}header .nav>a{margin:0!important;padding:9px 15px!important;text-align:center;font-size:13px!important}}
/* section cards: content sections read as boxes, as on the stage pages */




section.band{padding:14px 0}
section.band.first{padding:44px 0 0}
@media (max-width:900px){
  
  section.band{padding:10px 0}
}

/* grids fill their rows evenly. The build labels each grid with its column count, and the
   layout stays inline-block so it renders identically in the single-file preview. */
.grid{display:block!important;font-size:0;margin-right:-48px}
.grid > .item{display:inline-block!important;vertical-align:top;font-size:16px;box-sizing:border-box;
  padding:24px 48px 26px 0;width:33.2%}
.grid.c1 > .item{width:100%}
.grid.c2 > .item{width:49.8%}
.grid.c3 > .item{width:33.2%}
.grid.c4 > .item{width:24.9%}
.grid.c5 > .item{width:19.9%}
.nacard .grid.c2 > .item,.nacard.wide .grid.c2 > .item{width:49.8%}
.nacard .grid.c3 > .item,.nacard.wide .grid.c3 > .item{width:33.2%}
.nacard .grid.c4 > .item,.nacard.wide .grid.c4 > .item{width:24.9%}
@media (max-width:1100px){.grid > .item,.grid.c3 > .item,.grid.c4 > .item,.grid.c5 > .item,
  .nacard .grid.c3 > .item,.nacard .grid.c4 > .item,.nacard.wide .grid.c3 > .item,.nacard.wide .grid.c4 > .item{width:49.8%}}
@media (max-width:760px){.grid,.grid > .item{margin-right:0}
  .grid > .item,.grid.c2 > .item,.grid.c3 > .item,.grid.c4 > .item,.grid.c5 > .item,
  .nacard .grid > .item,.nacard.wide .grid > .item{width:100%;padding-right:0}}

/* stage links inside the model card */
.nacard.wide .grid > .item h3 a{color:var(--cream);text-decoration:none;transition:color .3s}
.nacard.wide .grid > .item h3 a:hover{color:var(--gold)}
.nacard.wide .widecopy{margin-top:22px}

/* the model: eight stages that open */
.stagegrid{display:block;font-size:0;margin:6px -12px 0}
.stagegrid > .svcg.stage{display:inline-block;width:49.6%;vertical-align:top;font-size:16px;box-sizing:border-box;margin:0 12px 12px 0}
.svcg.stage > summary{padding:15px 18px}
.svcg.stage .sg-d{display:block;margin-top:6px;color:var(--body);font-size:15px;font-weight:400;line-height:1.55;padding-right:18px}
.stagebody{padding:0 18px 16px}
.stagebody p{margin:0 0 10px;font-size:15px;line-height:1.6;color:var(--body)}
.stagebody p b{color:var(--cream);font-weight:500}
.stagebody .stagelink{margin:0}
.stagebody .stagelink a{color:var(--gold);font-size:15px;text-decoration:none}
.stagebody .stagelink a:hover{text-decoration:underline}
@media (max-width:760px){.stagegrid{margin-right:0}.stagegrid > .svcg.stage{width:100%;margin-right:0}}

/* layout containment: nothing may push the page wider than the viewport */
.grid{margin-right:0}
.stagegrid{margin:6px 0 0}
.stagegrid > .svcg.stage{width:calc(50% - 7px);margin:0 12px 12px 0}
.stagegrid > .svcg.stage:nth-child(2n){margin-right:0}
@media (max-width:1024px){
  .stepnav{display:block!important;white-space:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0}
  .stepnav a.step{display:inline-block!important;min-width:104px;margin-right:16px!important}
  section.band.first > .wrap{overflow:hidden}
}
@media (max-width:820px){
  .stagegrid > .svcg.stage{width:100%;margin-right:0}
}
html,body{overflow-x:hidden}

/* one container rule: the measure is the wrap, the visible box is the card or the panel */
section.band > .wrap{max-width:1280px;margin:0 auto;padding:0 48px;box-sizing:border-box}
.cards2{margin:0}
.crow.full{border-spacing:0;margin:0;width:100%}
.crow.full > .ccell{width:100%}
.panel{background:rgba(244,247,251,.028);border:1px solid rgba(244,247,251,.10);
  padding:40px 44px 34px;box-sizing:border-box;position:relative;
  transition:border-color .35s,background .35s,transform .35s,box-shadow .35s}
.panel:hover{border-color:rgba(198,160,90,.55);background:rgba(198,160,90,.05);
  transform:translateY(-3px);box-shadow:0 18px 44px rgba(0,0,0,.34)}
.panel:after{content:"";position:absolute;left:0;top:0;width:2px;height:0;background:var(--gold);transition:height .45s}
.panel:hover:after{height:100%}
.panel > *:last-child{margin-bottom:0!important}
@media (max-width:900px){
  section.band > .wrap{padding:0 20px}
  .panel{padding:26px 22px 28px}
}

/* a paired row uses the same outer edges as a full-width row */
.crow{border-spacing:24px 0;margin:0 -24px;width:calc(100% + 48px)}
.crow.full{border-spacing:0;margin:0;width:100%}

/* a sub-heading inside a card */
.nacard.wide .subhead{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);
  font-weight:600;margin:26px 0 12px}

/* ===== one type scale, applied last =====
   h1 82/58 | page statement 30 | section heading 28 | sub-heading 19 | standfirst 18
   body 16 | list 15 | small 12 | label 11 */
.hero.full:not(.inner) h1{font-size:82px!important}
.hero.inner h1{font-size:58px!important}
.panel .statement,.statement-block .statement{font-size:30px!important;line-height:1.28;font-weight:500;color:var(--cream)}
main h2,.ohd h2,section.band .head h2,.nacard h2,.cta-panel h2{font-size:28px!important;line-height:1.24;font-weight:500;letter-spacing:-.01em}
.nacard.assert h2{font-size:11px!important;letter-spacing:.16em;text-transform:uppercase;font-weight:600}
main h3{font-size:19px!important;line-height:1.35;font-weight:500}
.nacard.wide .subhead,.nacard.wide > h3{font-size:11px!important;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--gold)}
.olab{font-size:20px!important}
.nacard .stand,.panel .supporting,.obox .oline,.row2 .rtxt p,.mintro{font-size:18px!important;line-height:1.62}
main p:not(.stand):not(.statement):not(.supporting):not(.oline):not(.mintro):not(.widecopy):not(.ev-src):not(.pnote):not(.claim):not(.lede2):not(.c1):not(.ed){font-size:16px!important;line-height:1.66}
.osvc li,.inc.wide li,.stagebody p{font-size:15px!important;line-height:1.6}
.ev-src,.pnote,.fieldnote{font-size:12px!important;line-height:1.6}
.svcg > summary{font-size:16px!important;font-weight:500}
.svcg.stage .sg-d{font-size:15px!important}

/* the number badge sits on the same optical line as its heading */
.ohd{display:block;margin-bottom:14px}
.ohd .ostage{display:inline-block;vertical-align:middle;width:38px;height:38px;line-height:36px;
  text-align:center;padding:0;margin:0 16px 0 0;font-size:12px;letter-spacing:.08em;
  border:1px solid rgba(198,160,90,.45);color:var(--gold);box-sizing:border-box}
.ohd h2{display:inline-block;vertical-align:middle;margin:0;max-width:calc(100% - 64px)}
@media (max-width:900px){
  .hero.full:not(.inner) h1{font-size:42px!important}
  .hero.inner h1{font-size:34px!important}
  .panel .statement,.statement-block .statement{font-size:22px!important}
  main h2,.ohd h2,.nacard h2,.cta-panel h2{font-size:22px!important}
  .ohd .ostage{width:32px;height:32px;line-height:30px;margin-right:12px}
}
.mintro,.nacard .stand,.solo-body > .mintro{font-size:18px!important}
.nacard.assert .stand,.nacard.assert p{font-size:22px!important;line-height:1.4}
.grid > .item h3,.stagebody p b{font-size:19px}
.nacard.wide .grid > .item h3{font-size:19px!important}
/* final pass: every lead paragraph and every column heading at one size */
.nacard .stand,.panel .supporting,.obox .oline,.row2 .rtxt p,.mintro,p.mintro,.solo-body p.mintro,.widecopy{font-size:18px!important;line-height:1.62}
.obox .olab,h3.olab{font-size:19px!important}
main h3:not(.subhead):not(.olab){font-size:19px!important}
.obox .oline,p.oline{font-size:17px!important;line-height:1.62;color:var(--lede)}
.mintro,p.mintro{font-size:17px!important}
.widecopy,p.widecopy{font-size:17px!important}
/* these carry a class, so they must beat the generic paragraph rule that follows them */
.nacard .oline,.nacard .widecopy,.nacard .mintro,
.panel .oline,.panel .widecopy,.panel .mintro,
main .oline,main .widecopy,main .mintro{font-size:17px!important;line-height:1.64}
.nacard.assert .stand,.nacard.assert p{font-size:22px!important}
main .stand:not(.assert){font-size:18px!important}

/* one scale, final */
html body main .mintro,html body main .widecopy,html body main .oline{font-size:17px!important;line-height:1.64!important}
html body main .stand{font-size:18px!important;line-height:1.62!important}
html body main .nacard.assert .stand,html body main .nacard.assert p{font-size:22px!important;line-height:1.4!important}

/* number and heading centred on each other, and the heading takes the full width */
.ohd{display:table!important;width:100%;table-layout:auto;margin-bottom:16px}
.ohd .ostage{display:table-cell!important;vertical-align:middle;width:38px;height:38px;
  text-align:center;line-height:1;padding:0;margin:0;font-size:12px;letter-spacing:.08em;
  border:1px solid rgba(198,160,90,.45);color:var(--gold);box-sizing:border-box}
.ohd h2{display:table-cell!important;vertical-align:middle;max-width:none!important;
  padding-left:18px;margin:0;width:auto}
@media (max-width:900px){
  .ohd .ostage{width:32px;height:32px}
  .ohd h2{padding-left:14px}
}

/* the marker over the current stage */
.stepnav a.step .hint{font-size:24px!important;top:-30px;margin-left:-10px;width:20px;line-height:1}
@media (max-width:1024px){.stepnav a.step .hint{font-size:20px!important;top:-26px}}

/* headings are never capped to an arbitrary measure */
main h2,.ohd h2,.cta-panel h2,section.band .head h2{max-width:none!important}
.cta-panel{display:table;width:100%;table-layout:fixed}
.cta-panel > div:first-child{display:table-cell;vertical-align:middle;padding-right:40px}
.cta-panel > .ctas{display:table-cell;vertical-align:middle;text-align:right;white-space:nowrap}
@media (max-width:900px){
  .cta-panel,.cta-panel > div:first-child,.cta-panel > .ctas{display:block;width:100%;text-align:left;padding-right:0;white-space:normal}
  .cta-panel > .ctas{margin-top:18px}
}
@media (max-width:900px){
  /* paired rows stack, so they must not keep the desktop gutter offsets */
  .crow{display:block!important;width:100%!important;margin:0!important;border-spacing:0!important}
  .ccell{display:block!important;width:100%!important}
  .cardwrap{margin-bottom:14px}
}

/* the stage a page belongs to, stated in the hero */
.hero .stagetag{display:inline-block;margin:0 0 20px;padding:9px 16px 9px 9px;text-decoration:none;
  border:1px solid rgba(198,160,90,.5);background:rgba(198,160,90,.07);
  transition:border-color .3s,background .3s}
.hero .stagetag:hover{border-color:var(--gold);background:rgba(198,160,90,.14)}
.hero .stagetag .stnum{display:inline-block;margin-right:12px;padding:3px 8px;background:var(--gold);
  color:#0B1220;font-size:12px;font-weight:600;letter-spacing:.08em;vertical-align:middle}
.hero .stagetag .stname{display:inline-block;vertical-align:middle;color:var(--gold);
  font-size:15px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
@media (max-width:900px){
  .hero .stagetag{padding:7px 12px 7px 7px;margin-bottom:16px}
  .hero .stagetag .stname{font-size:13px}
}

/* a stage page states its number beside its own name */
.hero h1.stageh1{display:block}
.hero h1.stageh1 .h1num{display:inline-block;vertical-align:middle;margin-right:22px;padding:0 14px;
  border:2px solid rgba(198,160,90,.6);color:var(--gold);font-size:.42em;line-height:1.9;
  font-weight:600;letter-spacing:.06em;box-sizing:border-box}
@media (max-width:900px){.hero h1.stageh1 .h1num{margin-right:14px;padding:0 10px;font-size:.44em}}
@keyframes drift{from{transform:scale(1.02)}to{transform:scale(1.12) translateX(-2%)}}@keyframes barnudge{0%,100%{transform:translateY(0);opacity:.85}50%{transform:translateY(3px);opacity:1}}
/* figures carried inside the sentence */
.nacard .stand b{color:var(--gold);font-weight:500}
/* three boxes sit three across, so no row is left part filled */
.stagegrid:has(> .svcg:nth-child(3):last-child) > .svcg.stage{width:calc(33.33% - 8px)}
.stagegrid:has(> .svcg:nth-child(3):last-child) > .svcg.stage:nth-child(2n){margin-right:12px}
.stagegrid:has(> .svcg:nth-child(3):last-child) > .svcg.stage:nth-child(3n){margin-right:0}
.stagegrid:has(> .svcg:nth-child(5):last-child) > .svcg.stage:nth-child(5){width:100%;margin-right:0}
@media (max-width:1180px){
  /* below this width three across is too tight, so a group of three stacks rather than leaving a gap */
  .stagegrid:has(> .svcg:nth-child(3):last-child) > .svcg.stage{width:100%;margin-right:0}
}
@media (max-width:820px){.stagegrid > .svcg.stage{width:100%!important;margin-right:0!important}}
/* with no heading, the closing buttons sit left in the same box as everything else */
.cta-band .cta-panel:not(:has(h2)){display:block}
.cta-band .cta-panel:not(:has(h2)) > .ctas{display:block;text-align:left;white-space:normal}
/* the footer bar carries one statement now */
.fbar span:empty{display:none}
.fbar{justify-content:flex-start}
/* each side of a stage page carries its own evidence */
.obox .evline{margin:0 0 18px;padding-left:14px;border-left:2px solid rgba(198,160,90,.4)}
.obox .evline .ev-src{display:block;margin-top:6px}

/* every banner is the same height, with its content centred and the image covering the frame */
.hero{position:relative;overflow:hidden;box-sizing:border-box}
.hero.inner{height:520px;display:flex;align-items:center;padding:0}
.hero.inner > .wrap{width:100%;padding-top:0;padding-bottom:0}
.hero.full:not(.inner){height:720px;display:flex;align-items:center;padding:0}
.hero.full:not(.inner) > .wrap{width:100%;padding-top:0;padding-bottom:0}
.hero .media,.hero .herovid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center}
.hero .copy{max-width:62ch}
.hero .lede2{max-width:56ch}
@media (max-width:1100px){.hero.inner{height:460px}.hero.full:not(.inner){height:600px}}
@media (max-width:900px){.hero.inner{height:400px}.hero.full:not(.inner){height:520px}}
@media (max-width:640px){.hero.inner{height:360px}.hero.full:not(.inner){height:460px}}
@media (max-width:640px){
  /* on a phone the banner keeps one height and the supporting line is dropped so nothing is cut off */
  .hero.inner{height:420px;padding:0}
  .hero.full:not(.inner){height:520px;padding:0}
  .hero .lede2{display:none}
  .hero .copy{max-width:100%}
}

/* banners crop from the bottom, not the top, and the slow drift no longer pushes the subject out of frame */
.hero .media{background-position:center 22%!important}
.hero.full:not(.inner) .media{background-position:center 30%!important}
.hero .media video,.hero .herovid{object-position:center 25%}
@keyframes drift{from{transform:scale(1.01)}to{transform:scale(1.05) translateY(-1%)}}
@media (max-width:900px){.hero .media{background-position:center 18%!important}}
/* a page that sits across the model carries a plain label, not a stage tag */
.hero .crosslab{display:inline-block;margin:0 0 20px;padding:9px 16px;
  border:1px solid rgba(198,160,90,.5);background:rgba(198,160,90,.07);
  color:var(--gold);font-size:15px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
@media (max-width:900px){.hero .crosslab{font-size:13px;padding:7px 12px;margin-bottom:16px}}
.obox .oline a{color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(198,160,90,.35)}
.obox .oline a:hover{border-bottom-color:var(--gold)}
/* the stage number reads as a number, the name as the name */
.svcg.stage .sg-t .sgnum{color:var(--gold);font-weight:600;margin-right:10px;letter-spacing:.04em}

/* the banner shows the picture, with only enough shading behind the words to keep them legible */
.hero .shade{background:linear-gradient(180deg,rgba(6,13,25,.62) 0%,rgba(6,13,25,.18) 30%,rgba(6,13,25,.10) 55%,rgba(6,13,25,.72) 100%)!important}
.hero.full:not(.inner) .shade{background:linear-gradient(180deg,rgba(6,13,25,.58) 0%,rgba(6,13,25,.14) 32%,rgba(6,13,25,.12) 58%,rgba(6,13,25,.78) 100%)!important}
.hero .copy{text-shadow:0 2px 24px rgba(6,13,25,.75)}
.hero .lede2{text-shadow:0 2px 18px rgba(6,13,25,.85)}

/* the stage bar wraps on a phone instead of running off the screen */
@media (max-width:760px){
  .stepnav{display:grid!important;grid-template-columns:repeat(2,1fr);gap:0;white-space:normal!important;overflow:visible!important}
  .stepnav a.step{display:block!important;min-width:0!important;margin:0!important;padding:12px 10px 14px 0;border-top:1px solid rgba(244,247,251,.12)}
  .stepnav a.step .hint{display:none}
  .barlab{margin-bottom:14px}
}

/* the top bar needs its own ground now that it carries the stages */
header{background:linear-gradient(180deg,rgba(6,13,25,.92) 0%,rgba(6,13,25,.72) 60%,rgba(6,13,25,0) 100%)}
header.scrolled{background:rgba(6,13,25,.96);border-bottom:1px solid rgba(244,247,251,.10);backdrop-filter:saturate(120%) blur(6px)}

/* one banner height everywhere, and enough shading behind the words to read them on a bright picture */
.hero.full:not(.inner),.hero.inner{height:520px}
.hero .shade{background:
  linear-gradient(90deg,rgba(6,13,25,.90) 0%,rgba(6,13,25,.78) 34%,rgba(6,13,25,.42) 58%,rgba(6,13,25,.10) 78%,rgba(6,13,25,0) 92%),
  linear-gradient(180deg,rgba(6,13,25,.55) 0%,rgba(6,13,25,.15) 34%,rgba(6,13,25,.35) 72%,rgba(6,13,25,.80) 100%)!important}
.hero.full:not(.inner) .shade{background:
  linear-gradient(90deg,rgba(6,13,25,.88) 0%,rgba(6,13,25,.74) 34%,rgba(6,13,25,.38) 58%,rgba(6,13,25,.08) 80%,rgba(6,13,25,0) 94%),
  linear-gradient(180deg,rgba(6,13,25,.50) 0%,rgba(6,13,25,.12) 34%,rgba(6,13,25,.30) 72%,rgba(6,13,25,.78) 100%)!important}
.hero .copy{text-shadow:0 2px 20px rgba(6,13,25,.9),0 1px 3px rgba(6,13,25,.7)}
.hero h1,.hero .claim,.hero .lede2{text-shadow:0 2px 20px rgba(6,13,25,.9),0 1px 3px rgba(6,13,25,.7)}
@media (max-width:1100px){.hero.full:not(.inner),.hero.inner{height:460px}}
@media (max-width:900px){.hero.full:not(.inner),.hero.inner{height:400px}}
@media (max-width:640px){.hero.full:not(.inner),.hero.inner{height:420px}}
/* the supporting line under the claim needs the same weight as the rest to read on a picture */
.hero .lede2{color:rgba(244,247,251,.92)!important;font-size:17px!important}
.hero .claim,.hero .claim .c1{color:var(--gold)!important}

/* the stage menu: a bar that opens to show the eight stages */
header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px}
.hmenu{position:relative;margin-left:auto;margin-right:14px}
.hmenu > summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;
  padding:9px 16px;border:1px solid rgba(244,247,251,.20);color:rgba(244,247,251,.86);
  font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  transition:border-color .25s,color .25s,background .25s;background:rgba(6,13,25,.35)}
.hmenu > summary::-webkit-details-marker{display:none}
.hmenu > summary:hover{border-color:rgba(198,160,90,.6);color:var(--cream)}
.hmenu[open] > summary{border-color:rgba(198,160,90,.7);color:var(--gold);background:rgba(6,13,25,.7)}
.hbars{display:inline-block;width:18px;height:2px;background:currentColor;position:relative}
.hbars:before,.hbars:after{content:"";position:absolute;left:0;width:18px;height:2px;background:currentColor;transition:transform .25s}
.hbars:before{top:-6px}.hbars:after{top:6px}
.hmenu[open] .hbars{background:transparent}
.hmenu[open] .hbars:before{transform:translateY(6px) rotate(45deg)}
.hmenu[open] .hbars:after{transform:translateY(-6px) rotate(-45deg)}
.hmpanel{position:absolute;right:0;top:calc(100% + 12px);z-index:80;min-width:260px;
  background:rgba(8,15,28,.98);border:1px solid rgba(244,247,251,.12);
  box-shadow:0 26px 60px rgba(0,0,0,.5);padding:10px 0}
.hmpanel .hs{display:flex;align-items:baseline;gap:12px;padding:11px 22px;text-decoration:none;
  color:rgba(244,247,251,.86);font-size:15px;transition:background .2s,color .2s}
.hmpanel .hs .hsn{color:var(--gold);font-size:12px;font-weight:600;letter-spacing:.06em;min-width:20px}
.hmpanel .hs:hover{background:rgba(198,160,90,.10);color:var(--cream)}
.hmpanel .hs.on{color:var(--gold);background:rgba(198,160,90,.08)}
@media (max-width:640px){
  .hmenu{margin-right:10px}
  .hmenu > summary .hmlab{display:none}
  .hmenu > summary{padding:9px 12px}
  .hmpanel{position:fixed;left:0;right:0;top:auto;min-width:0;margin-top:12px}
}
/* a details panel that is positioned must still be hidden when the menu is closed */
.hmenu:not([open]) .hmpanel{display:none}

/* the menu button sits beside the call to action rather than stretching across the bar */
.hmenu{flex:0 0 auto}
.hmenu > summary{display:inline-flex;width:auto}
header .brand{flex:0 0 auto}
/* the menu button sits on the left of the bar, next to the logo, where a menu is expected */
.hmenu{margin-left:26px;margin-right:auto}
/* the panel opens under the button that opened it */
.hmpanel{left:0;right:auto}
@media (max-width:640px){.hmpanel{left:0;right:0}}

/* one header layout at every width: logo, stage menu, call to action, on a single line */
header .wrap{display:flex!important;flex-wrap:nowrap!important;align-items:center;
  justify-content:flex-start;gap:16px;text-align:left;font-size:initial}
header .brand{flex:0 0 auto;display:inline-flex!important;align-items:center;margin:0}
.hmenu{flex:0 0 auto;margin:0 0 0 22px}
header .nav{flex:0 0 auto;display:flex!important;position:static!important;margin-left:auto;
  background:none!important;border:0!important;padding:0!important;flex-direction:row!important}
@media (max-width:640px){.hmenu{margin-left:14px}header .wrap{gap:10px}}

/* the current stage reads as a filled block, not an outline */
.stepnav a.step.on{background:rgba(198,160,90,.14);border-top-color:var(--gold)!important}
.stepnav a.step.on .sn{color:var(--gold)}
.stepnav a.step.on .st{color:var(--cream);font-weight:600}
.stepnav a.step{padding-left:12px;padding-right:12px;transition:background .25s}
.stepnav a.step:hover{background:rgba(244,247,251,.05)}
.stepnav a.step.on .hint{margin-left:0}

/* the stage menu sits beside the call to action */
.hmenu{margin:0 16px 0 auto}
header .nav{margin-left:0}
.hmpanel{left:auto;right:0}
@media (max-width:640px){.hmenu{margin-left:auto;margin-right:10px}.hmpanel{left:0;right:0}}
/* the bar is a table, so the cell itself takes the fill */
.stepnav a.step.on,.stepnav .step.on{background-color:rgba(198,160,90,.16)!important}
.stepnav .step:hover{background-color:rgba(244,247,251,.05)}

/* the stage menu sits beside the call to action, on the right of the bar */
header .hright{display:flex;align-items:center;gap:14px;margin-left:auto;flex:0 0 auto}
header .hright .hmenu{margin:0}
header .hright .nav{margin-left:0}
.hmpanel{left:auto;right:0}
@media (max-width:640px){.hmpanel{left:0;right:0}header .hright{gap:10px}}

/* the current stage reads as filled, not outlined */
.stepnav a.step.on{background:rgba(198,160,90,.14)}
.stepnav a.step.on .st{color:#0B1A30;background:var(--gold);padding:3px 10px;display:inline-block}
.stepnav a.step.on .sn{color:var(--gold)}
.stepnav a.step.on{border-top-color:var(--gold)!important}
/* the home banner carries a three-line headline and two buttons, so it needs a little more room */
.hero.full:not(.inner){height:600px}
@media (max-width:1100px){.hero.full:not(.inner){height:540px}}
@media (max-width:900px){.hero.full:not(.inner){height:480px}}
@media (max-width:640px){.hero.full:not(.inner){height:500px}}
/* a group of three never sits two across, which would leave a gap */
@media (max-width:1180px) and (min-width:761px){.grid.c3 > .item{width:33.2%}}
/* one size for every secondary paragraph, wherever it sits */
html body main .mintro,html body main .widecopy,html body main .oline,
html body main .panel .mintro,html body main .nacard .mintro{font-size:17px!important;line-height:1.64!important}

/* the two sides line up row for row: heading, statement, evidence, then the boxes */
.oboxes{display:grid!important;grid-template-columns:1fr 1fr;gap:0 48px;
  grid-template-rows:auto auto auto auto;align-items:start}
.obox{display:grid!important;grid-template-rows:subgrid;grid-row:span 4;width:auto!important;
  padding:0!important;margin:0!important;vertical-align:top}
.obox .olab{margin:0 0 10px}
.obox .oline{margin:0 0 16px;max-width:none}
.obox .evline{margin:0 0 18px}
.obox .svcgs{align-self:start}
@media (max-width:820px){
  .oboxes{grid-template-columns:1fr;grid-template-rows:none}
  .obox{grid-row:auto;grid-template-rows:none;margin-bottom:28px!important}
}
.obox .evline.empty{border-left:0;padding:0;margin:0;min-height:0}
/* a route onward sits under the boxes, so both columns start and end the same way */
.obox .oafter{margin:16px 0 0;font-size:15px}
.obox .oafter a{color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(198,160,90,.35)}
.obox .oafter a:hover{border-bottom-color:var(--gold)}
/* the two columns are equal: same statement measure, same evidence block, same box widths */
.oboxes{display:table;width:100%;table-layout:fixed;border-spacing:28px 0;margin:0 -28px}
.obox{display:table-cell;vertical-align:top;width:50%}
.obox .oline{min-height:3.3em}
.obox .evline{min-height:9.2em;box-sizing:border-box}
@media (max-width:900px){.oboxes{display:block;margin:0;border-spacing:0}
  .obox{display:block;width:100%}.obox+.obox{margin-top:30px}
  .obox .oline,.obox .evline{min-height:0}}

/* the bar starts at Home, marked with a house rather than a number */
.stepnav a.step.homestep .sn{display:inline-flex;align-items:center;height:14px}
.stepnav .homeicon{width:14px;height:14px;color:var(--gold);display:block}
.stepnav a.step.homestep:hover .homeicon{color:var(--cream)}
.stepnav a.step.homestep.on .homeicon{color:var(--gold)}

/* the banner text sits low in the frame rather than centred, so the picture reads above it */
.hero.inner,.hero.full:not(.inner){align-items:flex-end}
.hero.inner > .wrap{padding-bottom:26px}
.hero.full:not(.inner) > .wrap{padding-bottom:34px}
@media (max-width:1100px){.hero.inner > .wrap{padding-bottom:24px}.hero.full:not(.inner) > .wrap{padding-bottom:30px}}
@media (max-width:900px){.hero.inner > .wrap{padding-bottom:22px}.hero.full:not(.inner) > .wrap{padding-bottom:26px}}
/* the banner grows a little where the headline runs to three lines, rather than cutting it */
@media (max-width:1180px){.hero.inner{height:540px}.hero.full:not(.inner){height:600px}}
@media (max-width:900px){.hero.inner{height:470px}.hero.full:not(.inner){height:520px}}
@media (max-width:640px){.hero.inner{height:440px}.hero.full:not(.inner){height:520px}}

/* a notice is read, not browsed: smaller type, tighter spacing, no decoration */
body.notice .hero.inner{height:300px}
body.notice .hero.inner > .wrap{padding-bottom:40px}
body.notice section.band{padding:6px 0}
body.notice .panel,body.notice .nacard{padding:26px 30px 24px}
body.notice main h2,body.notice .ohd h2{font-size:19px!important;line-height:1.3}
body.notice .ohd .ostage{width:30px;height:30px;font-size:11px}
body.notice main p,body.notice .mintro,body.notice .widecopy,
body.notice main li{font-size:15px!important;line-height:1.62!important}
body.notice main h3{font-size:16px!important}
body.notice .osvc li{font-size:14px!important}
@media (max-width:900px){body.notice .hero.inner{height:260px}}
/* the notice pages use a quieter scale throughout */
html body.notice main p,html body.notice main li,
html body.notice main .mintro,html body.notice main .widecopy{font-size:15px!important;line-height:1.62!important}
html body.notice .hero h1{font-size:40px!important}
html body.notice .hero .claim{font-size:16px!important}
html body.notice .hero .lede2{display:none}
/* the notice scale must beat the generic paragraph rule, so it carries the same specificity */
html body.notice main p:not(.stand):not(.statement):not(.supporting):not(.oline):not(.mintro):not(.widecopy):not(.ev-src):not(.pnote):not(.claim):not(.lede2):not(.c1):not(.ed){font-size:15px!important;line-height:1.62!important}
html body.notice main li,html body.notice .osvc li{font-size:14px!important;line-height:1.6!important}
@media (max-width:640px){body.notice .hero.inner{height:300px}body.notice .hero h1{font-size:30px!important}}
/* the claim and its supporting line sit apart from the headline, low in the frame */
.hero .claim{margin-top:26px}
.hero .lede2{margin-top:12px;margin-bottom:0}
.hero .ctas{margin-top:22px}
/* the banner is tall enough for the headline, the claim and its supporting line, low in the frame */
.hero.inner{height:570px}
.hero.full:not(.inner){height:620px}
@media (max-width:1180px){.hero.inner{height:580px}.hero.full:not(.inner){height:620px}}
@media (max-width:900px){.hero.inner{height:500px}.hero.full:not(.inner){height:540px}}
@media (max-width:640px){.hero.inner{height:480px}.hero.full:not(.inner){height:540px}}
body.notice .hero.inner{height:320px!important}
@media (max-width:640px){body.notice .hero.inner{height:300px!important}}
/* the banner is a fixed size unless the words need more, in which case it grows rather than cutting */
.hero.inner{height:auto!important;min-height:570px}
.hero.full:not(.inner){height:auto!important;min-height:620px}
@media (max-width:1180px){.hero.inner{min-height:580px}.hero.full:not(.inner){min-height:620px}}
@media (max-width:900px){.hero.inner{min-height:500px}.hero.full:not(.inner){min-height:540px}}
@media (max-width:640px){.hero.inner{min-height:480px}.hero.full:not(.inner){min-height:540px}}
body.notice .hero.inner{min-height:320px!important}
@media (max-width:640px){body.notice .hero.inner{min-height:300px!important}}
/* final: one banner size everywhere, text low in the frame */
.hero.inner{height:570px!important;min-height:0!important}
.hero.full:not(.inner){height:620px!important;min-height:0!important}
@media (max-width:1180px){.hero.inner{height:580px!important}.hero.full:not(.inner){height:620px!important}}
@media (max-width:900px){.hero.inner{height:510px!important}.hero.full:not(.inner){height:560px!important}}
@media (max-width:640px){.hero.inner{height:500px!important}.hero.full:not(.inner){height:560px!important}}
body.notice .hero.inner{height:330px!important}
@media (max-width:640px){body.notice .hero.inner{height:340px!important}}

/* every banner uses the home scale: same headline weight, same claim, same supporting line.
   Long headlines step down a little so they still fit the frame. */
.hero.inner h1{font-size:72px!important;line-height:1.06!important;letter-spacing:-.02em}
.hero.full:not(.inner) h1{font-size:82px!important;line-height:1.02!important}
.hero .claim,.hero .claim .c1{font-size:24px!important;line-height:1.35!important}
.hero .lede2{font-size:18px!important;line-height:1.6!important;max-width:60ch}
.hero.inner .stageh1 .h1num{font-size:.34em}
@media (max-width:1180px){.hero.inner h1{font-size:60px!important}.hero.full:not(.inner) h1{font-size:68px!important}
  .hero .claim,.hero .claim .c1{font-size:22px!important}}
@media (max-width:900px){.hero.inner h1{font-size:44px!important}.hero.full:not(.inner) h1{font-size:48px!important}
  .hero .claim,.hero .claim .c1{font-size:19px!important}.hero .lede2{font-size:16px!important}}
@media (max-width:640px){.hero.inner h1{font-size:34px!important}.hero.full:not(.inner) h1{font-size:38px!important}
  .hero .claim,.hero .claim .c1{font-size:17px!important}}
body.notice .hero h1{font-size:44px!important}
body.notice .hero .claim{font-size:17px!important}
/* a headline longer than about six words steps down so the frame still holds it */
.hero.inner h1{max-width:20ch}
@media (min-width:1181px){.hero.inner{height:600px!important}}
/* the banner lays its words out low in a fixed frame, on every page */
.hero{display:flex!important;flex-direction:column;justify-content:flex-end}
.hero > .wrap{width:100%;box-sizing:border-box}
/* one rule for the banner text block: clear of the header at the top, close to the frame at the foot */
.hero > .wrap{padding-top:104px!important;padding-bottom:40px!important}
.hero .copy{margin:0!important;padding:0!important}
.hero .copy > *:last-child{margin-bottom:0!important}
@media (max-width:900px){.hero > .wrap{padding-top:88px!important;padding-bottom:30px!important}}

/* ===== banner, final settlement =====
   One frame per page, words low in it, clear of the header, nothing clipped. */
.hero{display:flex!important;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}
.hero > .wrap{width:100%;box-sizing:border-box;padding-top:0!important;padding-bottom:44px!important}
.hero.inner{height:600px!important}
.hero.full:not(.inner){height:640px!important}
body.notice .hero.inner{height:330px!important}
.hero.inner h1{font-size:60px!important;line-height:1.08!important;max-width:22ch}
.hero.full:not(.inner) h1{font-size:82px!important;line-height:1.03!important;max-width:14ch}
.hero .claim,.hero .claim .c1{font-size:22px!important;line-height:1.4!important}
.hero .lede2{font-size:17px!important;line-height:1.6!important;max-width:62ch}
body.notice .hero h1{font-size:42px!important;max-width:24ch}
body.notice .hero .claim{font-size:17px!important}
@media (max-width:1180px){
  .hero.inner{height:560px!important}.hero.full:not(.inner){height:600px!important}
  .hero.inner h1{font-size:50px!important}.hero.full:not(.inner) h1{font-size:64px!important}
  .hero .claim,.hero .claim .c1{font-size:20px!important}}
@media (max-width:900px){
  .hero.inner{height:500px!important}.hero.full:not(.inner){height:540px!important}
  .hero > .wrap{padding-bottom:34px!important}
  .hero.inner h1{font-size:40px!important}.hero.full:not(.inner) h1{font-size:46px!important}
  .hero .claim,.hero .claim .c1{font-size:18px!important}.hero .lede2{font-size:16px!important}
  body.notice .hero.inner{height:300px!important}body.notice .hero h1{font-size:32px!important}}
@media (max-width:640px){
  .hero.inner{height:470px!important}.hero.full:not(.inner){height:520px!important}
  .hero.inner h1{font-size:32px!important}.hero.full:not(.inner) h1{font-size:36px!important}}
/* the home banner carries two buttons as well, so it needs the extra room */
.hero.full:not(.inner){height:700px!important}
@media (max-width:1180px){.hero.full:not(.inner){height:640px!important}}
@media (max-width:900px){.hero.full:not(.inner){height:580px!important}}
@media (max-width:640px){.hero.full:not(.inner){height:560px!important}}
/* the frame carries no padding of its own: the text block handles its own spacing */
.hero{padding:0!important;align-items:stretch!important}
/* the home banner is the tallest, because it carries a three-line headline and two buttons */
.hero.full:not(.inner){height:760px!important}
@media (max-width:1180px){.hero.full:not(.inner){height:700px!important}}
@media (max-width:900px){.hero.full:not(.inner){height:600px!important}}
@media (max-width:640px){.hero.full:not(.inner){height:580px!important}}
.hero.full:not(.inner){height:800px!important}
@media (max-width:1180px){.hero.full:not(.inner){height:740px!important}}
@media (max-width:900px){.hero.full:not(.inner){height:620px!important}}
@media (max-width:640px){.hero.full:not(.inner){height:600px!important}}
@media (max-width:640px){
  .hero.full:not(.inner){height:640px!important}
  body.notice .hero.inner{height:340px!important}
}
@media (max-width:400px){.hero.full:not(.inner){height:680px!important}.hero.full:not(.inner) h1{font-size:34px!important}}

/* ===== one weight system =====
   Headlines and headings 500. Emphasis inside prose 600. Labels 600. Nothing else is bold. */
html body .hero h1,html body main h2,html body main h3{font-weight:500!important}
html body main b,html body main strong{font-weight:600!important}
html body main .evline b,html body main .stand b,html body main .oline b{font-weight:600!important;color:var(--cream)!important}
html body main b.ev-n,html body main .ev-n{font-weight:600!important;color:var(--gold)!important}
html body .svcg > summary .sg-t{font-weight:500!important}
html body main .osvc li,html body main p{font-weight:400!important}
html body main .osvc li b,html body main p b{font-weight:600!important}

/* the hero claim and its supporting line are one size, wherever they sit */
html body .hero .claim,html body .hero .claim .c1{font-size:22px!important;font-weight:500!important;line-height:1.4!important}
html body .hero .lede2{font-size:17px!important;font-weight:400!important;line-height:1.6!important}
html body.notice .hero .claim,html body.notice .hero .claim .c1{font-size:17px!important}
@media (max-width:1180px){html body .hero .claim,html body .hero .claim .c1{font-size:20px!important}}
@media (max-width:900px){html body .hero .claim,html body .hero .claim .c1{font-size:18px!important}
  html body .hero .lede2{font-size:16px!important}}
/* bold text never changes size, only weight */
html body main b,html body main strong{font-size:inherit!important}
/* every headline at the home size */
html body .hero h1,html body .hero.inner h1,html body .hero.full:not(.inner) h1{font-size:82px!important;line-height:1.03!important;max-width:16ch}
html body .hero.inner .stageh1 .h1num{font-size:.3em}
html body.notice .hero h1{font-size:42px!important;max-width:24ch}
@media (max-width:1180px){html body .hero h1,html body .hero.inner h1,html body .hero.full:not(.inner) h1{font-size:64px!important}}
@media (max-width:900px){html body .hero h1,html body .hero.inner h1,html body .hero.full:not(.inner) h1{font-size:46px!important}
  html body.notice .hero h1{font-size:32px!important}}
@media (max-width:640px){html body .hero h1,html body .hero.inner h1,html body .hero.full:not(.inner) h1{font-size:36px!important}}
/* the frame grows to carry an 82px headline on every page */
.hero.inner{height:760px!important}
.hero.full:not(.inner){height:800px!important}
body.notice .hero.inner{height:340px!important}
@media (max-width:1180px){.hero.inner{height:660px!important}.hero.full:not(.inner){height:700px!important}}
@media (max-width:900px){.hero.inner{height:540px!important}.hero.full:not(.inner){height:600px!important}
  body.notice .hero.inner{height:310px!important}}
@media (max-width:640px){.hero.inner{height:520px!important}.hero.full:not(.inner){height:640px!important}}
/* tall enough for a five or six line headline at the home size */
.hero.inner{height:830px!important}
@media (max-width:1180px){.hero.inner{height:700px!important}}
@media (max-width:900px){.hero.inner{height:580px!important}}
@media (max-width:640px){.hero.inner{height:560px!important}}
@media (max-width:1180px){.hero.full:not(.inner){height:760px!important}}

/* ===== three areas in the top bar ===== */
header .anav{display:flex;align-items:center;gap:6px;margin-left:22px;margin-right:auto}
.amenu{position:relative}
.amenu > summary{list-style:none;cursor:pointer;padding:10px 14px;color:rgba(244,247,251,.86);
  font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;
  border-bottom:2px solid transparent;transition:color .25s,border-color .25s}
.amenu > summary::-webkit-details-marker{display:none}
.amenu > summary:hover{color:var(--cream)}
.amenu.on > summary{color:var(--gold);border-bottom-color:var(--gold)}
.amenu[open] > summary{color:var(--gold);border-bottom-color:rgba(198,160,90,.6)}
.amenu:not([open]) .apanel{display:none}
.apanel{position:absolute;left:0;top:calc(100% + 10px);z-index:90;min-width:344px;
  background:rgba(8,15,28,.99);border:1px solid rgba(244,247,251,.12);
  box-shadow:0 26px 60px rgba(0,0,0,.55);padding:8px 0}
.apanel .mrow{display:flex;gap:12px;align-items:baseline;padding:11px 20px;text-decoration:none;
  color:rgba(244,247,251,.9);font-size:15px;transition:background .2s,color .2s}
.apanel .mrow:hover{background:rgba(198,160,90,.10);color:var(--cream)}
.apanel .mrow.sel{background:rgba(198,160,90,.09);color:var(--gold)}
.apanel .mn{color:var(--gold);font-size:12px;font-weight:600;min-width:20px}
.apanel .mt{display:block;font-weight:500}
.apanel .mt small{display:block;color:var(--mute);font-size:12.5px;font-weight:400;margin-top:3px;line-height:1.45}
.apanel .mall{display:block;margin-top:6px;padding:11px 20px;border-top:1px solid rgba(244,247,251,.10);
  color:var(--gold);text-decoration:none;font-size:13px;letter-spacing:.06em}
.apanel .mall:hover{background:rgba(198,160,90,.10)}
@media (max-width:1180px){.amenu > summary{font-size:11.5px;padding:10px 10px;letter-spacing:.08em}header .anav{gap:2px;margin-left:14px}}
@media (max-width:900px){
  header .anav{margin-left:12px}
  .amenu > summary{padding:9px 8px;font-size:11px}
  .apanel{position:fixed;left:0;right:0;top:auto;min-width:0}
}
/* the area name navigates, the chevron opens the menu */
.amenu > summary{display:flex;align-items:center;gap:8px}
.amenu > summary .atop{color:inherit;text-decoration:none}
.amenu > summary .achev{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(45deg);margin-top:-3px;opacity:.7;transition:transform .25s}
.amenu[open] > summary .achev{transform:rotate(-135deg);margin-top:2px}
.apanel .mall.first{margin:0 0 6px;border-top:0;border-bottom:1px solid rgba(244,247,251,.10);
  font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:11.5px}
/* a section the bar jumps to clears the sticky header */
section.band[id]{scroll-margin-top:110px}
html{scroll-behaviour:smooth;scroll-behavior:smooth}

/* an area bar sizes itself to its own number of items, and the labels never touch */
.stepnav.area{display:grid!important;grid-template-columns:repeat(8,1fr);gap:0 18px;white-space:normal}
.stepnav.area.n2{grid-template-columns:repeat(2,1fr)}
.stepnav.area.n6{grid-template-columns:repeat(6,1fr)}
.stepnav.area.n8{grid-template-columns:repeat(8,1fr)}
.stepnav.area a.step{display:block!important;min-width:0;padding:12px 10px 14px 0;margin:0!important}
.stepnav.area a.step .st{display:block;line-height:1.3;hyphens:none}
@media (max-width:1180px){.stepnav.area,.stepnav.area.n8{grid-template-columns:repeat(4,1fr)}}
@media (max-width:760px){.stepnav.area,.stepnav.area.n8,.stepnav.area.n6{grid-template-columns:repeat(2,1fr)}}
/* with one audience on a stage page, the column runs the full width */
.oboxes:not(:has(.obox.corp)) .obox.pe{display:block;width:100%}
.oboxes:not(:has(.obox.corp)){display:block;margin:0;border-spacing:0}
.oboxes:not(:has(.obox.corp)) .svcgs{display:grid;grid-template-columns:repeat(2,1fr);gap:0 14px}
@media (max-width:900px){.oboxes:not(:has(.obox.corp)) .svcgs{grid-template-columns:1fr}}
/* the route to Advisory sits under the owner column, not beside it */
.oboxes:not(:has(.obox.corp)) .oafter{display:block;margin:22px 0 0;clear:both}
.nacard.wide .oafter{margin-top:22px}

/* ===== a stage page has one audience, so the column and its boxes use the full card ===== */
html body .oboxes:not(:has(.obox.corp)){display:block!important;width:100%!important;margin:0!important;border-spacing:0!important}
html body .oboxes:not(:has(.obox.corp)) .obox.pe{display:block!important;width:100%!important}
html body .oboxes:not(:has(.obox.corp)) .obox.pe .oline,
html body .oboxes:not(:has(.obox.corp)) .obox.pe .evline{max-width:80ch;min-height:0}
html body .oboxes:not(:has(.obox.corp)) .svcgs{display:grid!important;grid-template-columns:repeat(2,1fr);gap:12px 18px}
@media (max-width:900px){html body .oboxes:not(:has(.obox.corp)) .svcgs{grid-template-columns:1fr}}

/* the title sits left, the count beside it, the plus hard right */
.svcg > summary{display:flex!important;align-items:center;gap:10px}
.svcg > summary .sg-t{flex:1 1 auto;min-width:0}
.svcg > summary .sg-c{flex:0 0 auto;margin-left:auto;margin-right:26px;color:var(--gold);font-size:12px}
/* an odd number of boxes: the last one runs the full width rather than leaving a gap */
html body .oboxes:not(:has(.obox.corp)) .svcgs > .svcg:last-child:nth-child(odd){grid-column:1 / -1}
/* a stage box: number and name on the first line, the description beneath */
.svcg.stage > summary{display:block!important;position:relative;padding-right:34px}
.svcg.stage > summary .sg-t{display:block;margin:0 0 4px}
.svcg.stage > summary .sg-d{display:block;margin:0;padding:0}
.svcg.stage > summary::after{position:absolute;right:16px;top:14px}
/* the count stays on the title's line rather than dropping below it */
.svcg > summary{flex-wrap:nowrap}
.svcg > summary .sg-c{align-self:flex-start;margin-top:2px}
/* a box with a count but no description keeps the count on the title line */
.svcg.stage > summary .sg-c{position:absolute;right:36px;top:13px;margin:0}

/* How we engage: four steps as a flow, matching the 8-stage bar */
.eflow{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:22px}
.estep{position:relative;border-top:2px solid rgba(244,247,251,.14);padding:14px 34px 0 0;min-width:0}
@media (max-width:1100px){.estep{padding-right:22px}.estep p{font-size:14px!important}}
.estep:not(:last-child)::after{content:"";position:absolute;right:8px;top:-7px;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:9px solid var(--gold)}
.estep .sn{display:block;font-size:11px;letter-spacing:.14em;font-weight:600;color:var(--mute)}
.estep .st{display:block;margin-top:6px;font-size:13px;letter-spacing:.14em;font-weight:600;text-transform:uppercase;color:var(--cream)}
.estep p{margin:10px 0 0!important;font-size:15px;line-height:1.55;color:var(--body)}


/* Section 09: two aligned rows, How we engage and What gets measured. Each measure sits under the step it belongs to.
   The rows never stack. On a narrow screen both rows scroll sideways together, so the columns stay aligned. */
html body .nacard .eflow-h{margin:40px 0 0;font-size:13px!important;letter-spacing:.14em;font-weight:600!important;text-transform:uppercase;color:var(--gold)!important;line-height:1.4}
html body .nacard .eflows-in > .eflow-h:first-child{margin-top:22px}
.eflow-s{margin:6px 0 0!important;font-size:15px;color:var(--body)}
@media (max-width:760px){.eflows{overflow-x:auto;scrollbar-width:none;margin-right:-4px}.eflows::-webkit-scrollbar{display:none}.eflows-in{width:760px;padding-top:2px}.eflows-in .eflow-s{max-width:calc(100vw - 96px)}}

/* 8-stage bar: on hover the top line turns full gold and the box fills with matching gold, fading downwards */
.stepnav a.step{transition:background-color .25s,border-color .25s}
.stepnav a.step:hover{background:linear-gradient(to bottom,rgba(198,160,90,.40),rgba(198,160,90,.14))!important;border-top-color:var(--gold)!important}

button.explore-stages{font:inherit;cursor:pointer;appearance:none;-webkit-appearance:none}
/* Private Equity: "Explore the eight stages" button scrolls up to the 8-stage bar and flashes stage 01 */
@keyframes stageflash{0%,100%{opacity:0}50%{opacity:1}}
.stepnav a.step.flash::before{content:"";position:absolute;left:0;right:0;top:-2px;bottom:0;background:linear-gradient(to bottom,rgba(198,160,90,.55),rgba(198,160,90,.18));border-top:2px solid #C6A05A;pointer-events:none;opacity:0;z-index:-1;animation:stageflash 1.6s ease-in-out infinite}
.stepnav a.step{isolation:isolate}
.stepnav a.step.flash .sn{color:#C6A05A!important}
.stepnav a.step.flash .st{color:#F4F7FB!important}
@media (prefers-reduced-motion:reduce){.stepnav a.step.flash::before{animation:none;opacity:.7}}

/* A section heading row without a number sits flush left, like the headings that have one */
.ohd.nonum h2{padding-left:0!important;margin-left:0!important}

/* How a mandate works: the pricing line uses the same columns but no arrows, because the four fee types are options, not steps */
.eflow.noarrow .estep::after{display:none!important}
.eflow-note{margin-top:22px!important;font-size:15px}

/* How a mandate works: the description under each step uses the smaller text size, headings unchanged */
html body .nacard .eflows-in .eflow .estep p.ed.ed.ed.ed.ed,html body .nacard .eflows-in p.eflow-note.ed.ed.ed.ed.ed{font-size:14px!important;line-height:1.55!important}

/* Advisory mandates: each mandate opens in steps. The bar takes you to the mandate, the Explore services button opens its service groups, each group opens its detail */
html.najs .mbody{display:none}
html.najs .mbody.open{display:block;animation:mbodyin .35s ease-out}
@keyframes mbodyin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.mtoggle{margin:16px 0 4px}
.mtoggle .mt-c{margin-left:10px;color:var(--gold);font-size:13px;letter-spacing:.04em}
.mtoggle[aria-expanded="true"]{background:rgba(198,160,90,.14)!important;border-color:var(--gold)!important;color:#fff}
.mtoggle:after{display:inline-block;transition:transform .3s}
.mtoggle[aria-expanded="true"]:after{transform:rotate(90deg)!important}
html:not(.najs) .mtoggle{display:none!important}
.mbody.open{margin-top:14px}

/* Home, Two ways to work with us: an Explore button under each route */
.home-explore{margin-top:18px}
.home-explore .pill{white-space:nowrap}

/* Drop-down menus: the overview is the parent and the pages hang beneath it on a gold tree line */
.apanel .mall.first{display:flex;align-items:center;gap:10px}
.apanel .mall.first::before{content:"";width:8px;height:8px;border:1.5px solid var(--gold);border-radius:50%;flex:0 0 auto}
.apanel .mrow{position:relative;margin-left:24px!important;padding-left:24px!important}
.apanel .mrow::before{content:"";position:absolute;left:0;top:0;bottom:0;border-left:1px solid rgba(198,160,90,.45)}
.apanel .mrow::after{content:"";position:absolute;left:0;top:1.35em;width:14px;border-top:1px solid rgba(198,160,90,.45)}
.apanel .mrow:last-child::before{bottom:auto;height:1.35em}
.apanel .mrow:first-of-type{margin-top:0}

/* How a mandate works and How an investment works: on hover each step fills with gold, matching the 8-stage bar */
.estep{transition:background-color .25s,border-color .25s}
.estep:hover{background:linear-gradient(to bottom,rgba(198,160,90,.30),rgba(198,160,90,.06));border-top-color:var(--gold)!important}
.estep:hover .sn{color:var(--gold)}
.estep:hover .st{color:#fff}

/* Home, Two ways to work with us: two equal columns across the full card, not four narrow ones */
.nacard .grid.g2 > .item{width:50%!important}
/* Stage pages: one reading width for the paragraphs in a card, so they line up */
html body main .nacard p.stand,html body main .nacard p.mintro,html body main .nacard p.oline,html body main .nacard p.widecopy{max-width:900px!important}

/* Top bar: a Home link in the same style as the area links, added 20 September 2026 */
.anav > a.atop.home{display:inline-block;padding:0 0 6px;margin-right:26px;border-bottom:2px solid transparent;font-size:12.5px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--cream);text-decoration:none}
.anav > a.atop.home.on{color:var(--gold);border-bottom-color:var(--gold)}
/* Inner banners: the text starts at the same height on every page, rather than being pushed down by its length */
html body .hero.inner:not(.plain){align-items:flex-start!important;justify-content:flex-start!important;padding-top:129px!important;padding-bottom:40px!important;height:auto!important;min-height:830px;box-sizing:border-box}
html body .hero.inner:not(.plain) .wrap{display:block!important;padding-top:0!important;margin-top:0!important}
.hero.inner:not(.plain) .copy{margin-top:0!important;margin-bottom:0!important}
@media (max-width:900px){html body .hero.inner:not(.plain){padding-top:214px!important;min-height:560px}}

/* One reading width for body paragraphs in a full-width box, and one wider width for statements */
html body main .nacard p.stand,html body main .nacard p.mintro,html body main .nacard p.oline,
html body main .nacard p.widecopy,html body main .nacard p.evline,html body main .nacard p.note,
html body main .nacard p.oafter,html body main .nacard p.supporting,html body main .nacard p.lede2,
html body main .band .head p.stand,html body main .band .head p.mintro,html body main p.form-note{max-width:900px!important}
html body main p.statement{max-width:1000px!important}
/* the same reading width in panel-style sections, which are full width but not cards */
html body main .panel > p,html body main .panel .evs p,html body main .panel p.note,
html body main .panel p.mintro,html body main .panel p.stand,html body main .panel p.oafter{max-width:900px!important}
html body main p.note,html body main .eflows-in p.eflow-s,html body main .eflows-in p.eflow-note{max-width:900px!important}
/* the form status line holds the message after sending: take no space until it has something to say */
html body main p.form-status:empty{display:none!important}

/* Team sign in: the icon in the top bar and the two account forms */
.nav .loginlink{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;margin-right:14px;color:var(--gold);
border:1px solid rgba(198,160,90,.45);transition:background-color .25s,border-color .25s,transform .2s}
.nav .loginlink:hover{background:rgba(198,160,90,.18);border-color:var(--gold);transform:translateY(-1px)}
html body main section.signin{padding-top:20px!important;padding-bottom:90px!important}
.signin-card{max-width:460px;margin:0 auto}
.signin-card form{background:var(--navy);border:1px solid var(--line);padding:26px}
.signin-card .sgl{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--gold);margin-bottom:8px}
.signin-card input{width:100%;padding:13px 14px;background:rgba(244,247,251,.04);border:1px solid var(--line);color:var(--cream);font:inherit}
.signin-card input:focus{outline:2px solid var(--gold);outline-offset:1px}
html body main .signin-card p.hint{font-size:13.5px!important;color:var(--mute);margin:12px 0 0!important;max-width:none!important}
.signin-card .pill{margin-top:18px;width:100%;justify-content:space-between}
.signin-card .msg{margin-top:16px;padding:12px 14px;border-left:2px solid #E5A3A3;background:rgba(229,163,163,.07);font-size:14.5px;color:var(--cream);display:none}
.signin-card .msg.show{display:block}
.signin-card .foot-note{text-align:center}

/* Top bar: the team sign-in icon, in gold, and no Work with us button */
html body header .nav a.loginlink{width:auto;height:auto;padding:4px;margin-right:0;color:var(--gold)!important;border:0!important;background:none!important}
html body header .nav a.loginlink svg{fill:currentColor}
html body header .nav a.loginlink:hover{background:none!important;color:#E7C98B!important;transform:translateY(-1px)}

/* Home, Two ways to work with us: stack the two routes on a phone rather than squeezing them side by side */
@media (max-width:760px){html body .nacard .grid.g2 > .item{width:100%!important}}
