:root{--paper:#f7f6f2;--ink:#0b2138;--navy:#173b63;--muted:#41536d;--hair:#cbd3dd;--blue:#1375e3;--line:#1684f8;--r:6px;--ease:cubic-bezier(.22,1,.36,1);
--f-display:Inter,Arial,sans-serif;--f-body:Inter,Arial,sans-serif;
--gut:clamp(20px,4vw,48px);--sec:clamp(72px,11vw,160px)}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--paper);color:var(--ink);font:400 clamp(16.5px,1.1vw + 11px,18px)/1.6 var(--f-body);overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
.wrap{max-width:1280px;margin:0 auto;padding:0 var(--gut)}
.skip{position:absolute;left:-999px;top:8px;background:var(--blue);color:#fff;padding:10px 14px;border-radius:var(--r);z-index:100}.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--line);outline-offset:3px}
h1,h2,h3{font-family:var(--f-display);font-weight:300;font-variation-settings:"opsz" 144;letter-spacing:-.03em;line-height:1.05}
h1{font-size:clamp(36px,5vw,72px);letter-spacing:-.022em;line-height:1.08}h1 b,h1 strong{font-weight:500}
h2{font-size:clamp(30px,3.8vw,54px);letter-spacing:-.02em;line-height:1.1}
h3{font-size:clamp(26px,2.6vw,38px);letter-spacing:-.02em;line-height:1.12;font-variation-settings:"opsz" 72}
p{max-width:65ch}
.eyebrow{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--blue);display:flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:28px;height:2px;background:var(--line)}
.tag{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--muted)}
.btn{display:inline-flex;align-items:center;gap:12px;min-height:48px;padding:0 22px;border-radius:var(--r);font-weight:600;font-size:16px;text-decoration:none;border:1.5px solid transparent;transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease)}
.btn .ar{transition:transform .35s var(--ease)}.btn:hover .ar{transform:translateX(4px)}
.btn-p{background:var(--blue);color:#fff}.btn-p:hover{background:#0f63c4}
.btn-g{border-color:currentColor}.btn-g:hover{background:rgba(255,255,255,.12)}
.btn-o{border-color:var(--ink)}.btn-o:hover{background:var(--ink);color:#fff}
.link{font-weight:600;text-decoration:none;border-bottom:1.5px solid var(--line);padding-bottom:2px;transition:color .3s var(--ease)}.link:hover{color:var(--blue)}
/* header */
.hd{position:fixed;inset:0 0 auto;z-index:50;height:84px;color:#fff;transition:background .45s var(--ease),height .45s var(--ease)}
.hd.solid,.hd.menu-open{background:var(--ink)}.hd.sc{height:68px}
.hd .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:600;letter-spacing:.16em;font-size:13px;text-transform:uppercase}
.brand img{height:34px;width:auto}
.nav{display:flex;align-items:center;gap:clamp(18px,2.6vw,40px)}
.nav a{text-decoration:none;font-size:15px;font-weight:500;padding:6px 0}
.nav a.btn{border:1.5px solid #fff;padding:0 18px;min-height:42px}.nav a.btn:hover{background:#fff;color:var(--ink)}
.burger{display:none;background:none;border:0;color:#fff;width:48px;height:48px;margin-right:-10px;cursor:pointer}
.burger span{display:block;width:24px;height:2px;background:#fff;margin:6px auto;transition:transform .4s var(--ease),opacity .3s}
.menu-open .burger span:first-child{transform:translateY(4px) rotate(45deg)}.menu-open .burger span:last-child{transform:translateY(-4px) rotate(-45deg)}
@media(max-width:860px){.hd{height:68px}.burger{display:block}
.nav{position:fixed;inset:68px 0 0;background:var(--ink);flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0;padding:24px var(--gut);transform:translateY(-12px);opacity:0;visibility:hidden;transition:opacity .4s var(--ease),transform .4s var(--ease),visibility .4s}
.menu-open .nav{opacity:1;transform:none;visibility:visible}
.nav a{font-family:var(--f-display);font-size:34px;font-weight:300;padding:16px 0;width:100%;border-bottom:1px solid rgba(255,255,255,.16)}
.nav a.btn{font-family:var(--f-body);font-size:17px;font-weight:600;margin-top:28px;justify-content:center;border-bottom:1.5px solid #fff;width:100%}}
/* hero */
.hero{position:relative;min-height:max(640px,100svh);color:#f8fafc;display:flex;align-items:flex-end;overflow:hidden;background:var(--ink)}
.hero>img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 50%}
.hero::after{content:"";position:absolute;inset:0;background:rgba(7,22,40,.5)}
.hero .wrap{position:relative;z-index:2;width:100%;padding-top:150px;padding-bottom:clamp(48px,7vw,96px);display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:48px;align-items:end}
.hero h1 .l{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}.hero h1 .l>span{display:block}
.hero h1 .l:nth-child(2) span{animation-delay:.12s;font-weight:300;color:#cfe0f3}
@keyframes up{from{transform:translateY(105%)}}
.hero .sub{margin-top:28px;font-size:clamp(17px,1.5vw,21px);max-width:44ch;color:#dbe6f3;animation:none}
.hero .cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px;animation:none}
@keyframes fade{from{opacity:0;transform:translateY(10px)}}
.hero .tagline{position:absolute;left:var(--gut);bottom:22px;z-index:2}
.hero-n{justify-self:end;text-align:center;animation:none}
.hero-n img{width:clamp(170px,22vw,320px);height:auto}
.hero-n p{font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:#cfe0f3;margin-top:4px}
.hero-line{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;overflow:visible}

.hero.sub-page{min-height:clamp(520px,78svh,760px)}
.hero.sub-page .wrap{grid-template-columns:minmax(0,1fr)}
.hero.sub-page h1{font-size:clamp(36px,5vw,72px);max-width:18ch}
.hero.sub-page::after{background:linear-gradient(90deg,rgba(7,22,40,.88),rgba(7,22,40,.55) 55%,rgba(7,22,40,.15))}
@media(max-width:860px){.hero.sub-page::after{background:rgba(7,22,40,.62)}}
.hero .eyebrow{color:#8cc3ff;margin-bottom:22px}
@media(max-width:860px){.hero{min-height:max(620px,100svh)}.hero>img.bg{object-position:78% 50%}.hero::after{background:rgba(7,22,40,.58)}
.hero .wrap{grid-template-columns:1fr;gap:32px;padding-top:120px;padding-bottom:84px}.hero-n{justify-self:end;margin-right:-4px}.hero-n img{width:150px}
.hero .cta .btn{width:100%;justify-content:space-between}}
/* sections */
.sec{padding:var(--sec) 0}
.rv{opacity:1;transform:none}
.nojs .rv{opacity:1;transform:none}
.wwd-head{display:grid;grid-template-columns:7fr 5fr;gap:clamp(32px,6vw,96px);align-items:end;margin:22px 0 clamp(40px,5vw,72px)}
.wwd-head p{color:var(--muted)}
.tabs{display:flex;gap:clamp(18px,3vw,44px);border-bottom:1px solid var(--hair);position:relative;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{background:none;border:0;font:500 clamp(15px,1.2vw,17px)/1 var(--f-body);color:#0c233f;padding:18px 2px;cursor:pointer;white-space:nowrap;transition:color .35s var(--ease)}
.tab[aria-selected=true]{color:#006fea}
.tab:hover{color:#006fea}

.panels{position:relative}
.panels.tween{overflow:hidden}
.panel[hidden]{display:none}
.panel{padding-top:clamp(36px,5vw,64px)}
.p-head{display:grid;grid-template-columns:6fr 5fr;gap:clamp(32px,6vw,96px);align-items:start}
.p-head .eyebrow{margin-bottom:18px}
.p-copy p{color:var(--muted)}
.p-copy .links{display:flex;flex-wrap:wrap;align-items:center;gap:18px 32px;margin-top:26px}
.checks{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:0;border-top:1px solid var(--hair)}
.checks li{padding:11px 0 11px 30px;border-bottom:1px solid var(--hair);position:relative;font-weight:500}
.checks li::before{content:"";position:absolute;left:2px;top:19px;width:14px;height:7px;border-left:2px solid var(--line);border-bottom:2px solid var(--line);transform:rotate(-45deg) translateY(-4px)}
.stage-tag{margin-top:26px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
/* stage */
.stage{position:relative;width:100%;aspect-ratio:var(--w)/var(--h);margin-top:clamp(36px,5vw,64px)}
.stage.pad{padding:0}
.step{position:absolute}
.box{position:absolute;inset:0;border-radius:var(--r);overflow:hidden;background:#fff;border:1px solid var(--hair)}
.box.bare{border:0;background:none}
.box>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fit{position:absolute;left:0;top:0;transform-origin:0 0;transform:scale(var(--k,1))}
.cap{position:absolute;left:0;width:max(100%,170px);font-size:13px;line-height:1.3;color:var(--muted)}
.cap b{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin-bottom:3px}
.cap b i{font-style:normal;color:var(--blue);margin-right:8px}
.cap.up{bottom:100%;padding-bottom:12px}.cap.dn{top:100%;padding-top:12px}
.rt{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:5}
.rt .seg{fill:none;stroke:var(--line);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.rt .node{fill:#fff;stroke:var(--line);stroke-width:2.5;transform-box:fill-box;transform-origin:center}
.rt .nd2{fill:var(--line);stroke:none;transform-box:fill-box;transform-origin:center}
@media(max-width:767px){
.p-head,.wwd-head{grid-template-columns:1fr;gap:24px}
.stage{margin-top:28px}
.cap{font-size:9px;line-height:1.25;letter-spacing:0;width:max(100%,56px)}.cap b{font-size:7.5px;letter-spacing:0;margin-bottom:1px;white-space:nowrap}.cap b i{margin-right:3px}.cap span{display:none!important}
.rt .seg,.rt .node{stroke-width:2}
}
/* UI pieces */
.u{font-family:var(--f-body);color:#0b2138;position:absolute;left:0;top:0;transform-origin:0 0;overflow:hidden;background:#f4f6f9}
.u *{box-sizing:border-box}
.u .sb{position:absolute;left:0;top:0;bottom:0;width:22%;background:#102a46;color:#c9d6e6;padding:22px 16px;font-size:15px}
.u .sb b{display:block;color:#fff;font-size:18px;margin-bottom:22px;font-family:var(--f-display);font-weight:400}
.u .sb span{display:block;padding:9px 10px;border-radius:6px;margin-bottom:4px}.u .sb span.on{background:rgba(255,255,255,.1);color:#fff}
.u .mn{position:absolute;left:22%;right:0;top:0;bottom:0;padding:22px 26px}
.u h4{font-family:var(--f-body);font-size:24px;font-weight:600;margin-bottom:16px;letter-spacing:-.01em}
.u .tl{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.u .t{background:#fff;border:1px solid #dfe5ec;border-radius:8px;padding:12px 14px;font-size:13px;color:#41536d}
.u .t strong{display:block;font-size:30px;color:#0b2138;line-height:1.1;font-weight:600}
.u .t em{font-style:normal;font-size:11px;background:#d8f3e0;color:#176b37;border-radius:20px;padding:2px 8px;margin-left:6px;vertical-align:middle}
.u .ra{background:#fff;border:1px solid #dfe5ec;border-radius:8px;margin-top:12px;padding:12px 16px}
.u .ra h5{font-size:14px;margin-bottom:6px}
.u .ra div{display:flex;justify-content:space-between;font-size:13px;padding:8px 0;border-top:1px solid #edf0f4}
.u .ra div i{font-style:normal;color:#7b8aa0}
.bar{height:8px;border-radius:4px;background:#dfe9f6;position:relative;overflow:hidden}.bar::after{content:"";position:absolute;inset:0;width:var(--v);background:var(--line);border-radius:4px}
/* slider */
.cmp-wrap{margin-top:0}
.cmp{position:relative;width:100%;margin:0;aspect-ratio:16/10;border-radius:var(--r);overflow:hidden;border:1px solid var(--hair);background:#fff;touch-action:pan-y;user-select:none;-webkit-user-select:none;--p:92}
.cmp .ly{position:absolute;inset:0}
.cmp .ly img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cmp .before{clip-path:inset(0 calc(100% - var(--p)*1%) 0 0)}
.cmp .lb{position:absolute;top:16px;z-index:4;background:var(--ink);color:#fff;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;padding:8px 12px;border-radius:var(--r)}
.cmp .lb.a{left:16px;background:#3e4b5a}.cmp .lb.b{right:16px;background:var(--blue)}
.cmp .hd2{position:absolute;top:0;bottom:0;left:calc(var(--p)*1%);width:0;z-index:5}
.cmp .hd2::before{content:"";position:absolute;left:-1.5px;top:0;bottom:0;width:3px;background:var(--line)}
.cmp .hnd{position:absolute;left:0;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:#fff;border:3px solid var(--line);display:grid;place-items:center;cursor:ew-resize;color:var(--blue);font-size:15px;letter-spacing:-1px;box-shadow:none;padding:0;transition:transform .3s var(--ease)}
.cmp .hnd:hover,.cmp.drag .hnd{transform:scale(1.08)}
.cmp-cap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:18px auto 0;width:100%;font-size:14px;color:var(--muted)}
@media(max-width:767px){.cmp{width:100%}.cmp .hnd{width:64px;height:64px;margin:-32px 0 0 -32px}.cmp-cap{width:100%}}
/* industries etc */
.ind{display:grid;grid-template-columns:repeat(12,1fr);gap:0 clamp(16px,3vw,48px);padding:clamp(48px,7vw,104px) 0;border-top:1px solid var(--hair);align-items:center}
.ind:first-of-type{border-top:0}
.ind .im{grid-column:1/8;border-radius:var(--r);overflow:hidden;aspect-ratio:3/2}
.ind .im img{width:100%;height:100%;object-fit:cover}
.ind .tx{grid-column:9/13;position:relative}
.ind:nth-of-type(even) .im{grid-column:6/13;grid-row:1}.ind:nth-of-type(even) .tx{grid-column:1/5;grid-row:1}
.ind .num{font:300 clamp(56px,7vw,104px)/1 var(--f-display);color:var(--blue);display:flex;align-items:center;gap:16px;margin-bottom:18px;letter-spacing:-.04em}
.ind .num::after{content:"";flex:1;height:2px;background:var(--line);transform:scaleX(0);transform-origin:left;transition:transform 1.2s .3s var(--ease)}
.ind.in .num::after{transform:scaleX(1)}
.ind h3{margin:10px 0 0}
.ind .tx p{margin-top:14px;color:var(--muted)}
.cta-band{background:var(--ink);color:#fff;padding:var(--sec) 0;position:relative;overflow:hidden}
.cta-band .wrap{display:grid;grid-template-columns:8fr 4fr;gap:48px;align-items:end}
.cta-band h2{max-width:14ch}
.cta-band .btn{justify-self:start}
.cta-band::before{content:"";position:absolute;left:0;top:0;width:min(34vw,420px);height:2px;background:var(--line)}
.split{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,96px);align-items:start}
.pillars{display:grid;gap:0;border-top:1px solid var(--hair)}
.pillars>div{display:grid;grid-template-columns:56px 1fr;gap:12px 24px;padding:26px 0;border-bottom:1px solid var(--hair)}
.pillars .n{font:300 40px/1 var(--f-display);color:var(--blue)}
.pillars h3{font-size:26px;grid-column:2}.pillars p{grid-column:2;color:var(--muted);margin-top:6px}
.imgrow{border-radius:var(--r);overflow:hidden}.imgrow img{width:100%;height:auto}
.dark{background:var(--ink);color:#fff}
.dark p{color:#c3d1e2}
.belief{padding:var(--sec) 0;text-align:left}
.belief h2{font-size:clamp(34px,5.4vw,78px);max-width:18ch}
/* footer */
.ft{background:var(--ink);color:#c3d1e2;padding:clamp(56px,7vw,96px) 0 32px;border-top:1px solid rgba(255,255,255,.12)}
.ft .g{display:grid;grid-template-columns:5fr 3fr 4fr;gap:40px}
.ft .brand{color:#fff}
.ft h4{font:600 12px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:#8cc3ff;margin-bottom:16px}
.ft ul{list-style:none;padding:0;display:grid;gap:10px}
.ft a{text-decoration:none}.ft a:hover{color:#fff;text-decoration:underline}
.ft .tg{font:300 clamp(22px,2.4vw,32px)/1.2 var(--f-display);color:#fff;margin-top:20px;max-width:16ch}
.ft .bt{margin-top:56px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:13.5px}
@media(max-width:860px){.ind,.split,.cta-band .wrap,.ft .g{grid-template-columns:1fr}.ind .im,.ind .tx,.ind:nth-of-type(even) .im,.ind:nth-of-type(even) .tx{grid-column:1;grid-row:auto}.ind .im{aspect-ratio:var(--mar,4/3);margin-bottom:24px}.ind{gap:0}.cta-band .btn{width:100%;justify-content:space-between}}
/* form */
.sac{display:grid;grid-template-columns:7fr 5fr;min-height:100svh}
.sac .fm{padding:130px var(--gut) 72px;max-width:760px;width:100%;justify-self:end}
.sac aside{position:relative;background:var(--ink);color:#fff;padding:130px clamp(24px,4vw,64px) 72px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}
.sac aside>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 50%;opacity:.55}
.sac aside>*:not(img){position:relative}
.sac aside h2{font-size:clamp(28px,2.8vw,40px);margin:16px 0 18px}
.sac aside .checks{border-color:rgba(255,255,255,.25)}.sac aside .checks li{border-color:rgba(255,255,255,.25)}
.sac aside p{color:#dbe6f3}
.steps{display:flex;gap:0;margin:34px 0 8px;list-style:none;padding:0;counter-reset:s}
.steps li{flex:1;font-size:12.5px;font-weight:600;color:var(--muted);padding-top:14px;border-top:2px solid var(--hair);transition:border-color .5s var(--ease),color .5s var(--ease)}
.steps li.on{border-color:var(--line);color:var(--ink)}.steps li.done{border-color:var(--line)}
.steps li span{display:none}
fieldset{border:0;padding:0}
.q{margin-top:28px}.q legend,.q label.l{font-weight:600;display:block;margin-bottom:8px}
.q .hint{font-size:14px;color:var(--muted);font-weight:400}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.tiles label{position:relative}
.tiles input{position:absolute;opacity:0;inset:0}
.tiles span{display:flex;align-items:center;min-height:54px;padding:10px 16px;border:1.5px solid var(--hair);border-radius:var(--r);background:#fff;font-weight:500;cursor:pointer;transition:border-color .3s var(--ease),background .3s var(--ease)}
.tiles input:checked+span{border-color:var(--blue);background:#eaf3fe;color:#0a4d9e}
.tiles input:focus-visible+span{outline:2px solid var(--line);outline-offset:2px}
input[type=text],input[type=email],input[type=tel],textarea{width:100%;font:inherit;padding:14px 16px;min-height:52px;border:1.5px solid var(--hair);border-radius:var(--r);background:#fff;color:var(--ink)}
textarea{min-height:120px;resize:vertical}
input:focus,textarea:focus{outline:2px solid var(--line);border-color:var(--blue)}
.err{color:#b3261e;font-size:14px;margin-top:6px;min-height:0}
.err:empty{display:none}
.bad input[type=text],.bad input[type=email],.bad textarea{border-color:#b3261e}
.nav-b{display:flex;justify-content:space-between;gap:12px;margin-top:40px;position:sticky;bottom:0;padding:14px 0;background:linear-gradient(var(--paper),var(--paper))}
.fstep[hidden]{display:none}
.fstep{animation:fade .7s var(--ease)}
.sum{border-top:1px solid var(--hair);margin-top:24px}.sum div{display:grid;grid-template-columns:140px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--hair);font-size:15px}.sum dt{color:var(--muted)}
@media(max-width:860px){.sac{grid-template-columns:1fr}.sac .fm{padding-top:96px;justify-self:stretch}.sac aside{padding:56px var(--gut);min-height:420px}.nav-b .btn{flex:1;justify-content:center}.steps li{font-size:0}.steps li span{display:block;font-size:12.5px}.steps li:not(.on) span{display:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.rv{opacity:1;transform:none}.step{opacity:1!important;transform:none!important;visibility:visible!important}}
.rt g.node circle{fill:#fff;stroke:var(--line);stroke-width:2.5}.rt g.node path{fill:none;stroke:var(--blue);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rt circle.node{fill:#fff;stroke:var(--line);stroke-width:2.5}
.cap span{display:block}
.box .u{position:absolute}
.panel.ops .step{visibility:visible}

[hidden]{display:none!important}

#what-we-do{overflow-x:clip}
.cap{max-width:100%}

.rt.un{z-index:0}.step{z-index:1}


.cap.capfix{min-height:56px}

.stage.scene{container-type:inline-size}
.lab{position:absolute;transform:translateX(-50%);width:13%;text-align:center;pointer-events:none}
.lab b{display:block;font:italic 600 clamp(6.5px,1.15cqw,15px)/1.2 var(--f-display);letter-spacing:.04em;text-transform:uppercase;margin-bottom:2.3cqw;color:var(--ink)}
.lab span{display:block;font-size:clamp(5.5px,.88cqw,12px);line-height:1.35;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);font-weight:500}
body[data-page="ind"] *,body[data-page="about"] *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
/* r9: sub-page hero entrance (the one exception) */
@keyframes subhero-img{from{transform:scale(1.08) translateY(-16px)}to{transform:none}}
@keyframes subhero-txt{from{opacity:0}to{opacity:1}}
body[data-page="ind"] .hero.sub-page>img.bg,body[data-page="about"] .hero.sub-page>img.bg{animation:subhero-img 1200ms cubic-bezier(.22,1,.36,1) both!important;transform-origin:50% 50%}
body[data-page="ind"] .hero.sub-page>.wrap,body[data-page="about"] .hero.sub-page>.wrap,body[data-page="ind"] .hero.sub-page>.tagline,body[data-page="about"] .hero.sub-page>.tagline{animation:subhero-txt 500ms ease 200ms both!important}
@media (prefers-reduced-motion:reduce){body[data-page="ind"] .hero.sub-page>img.bg,body[data-page="about"] .hero.sub-page>img.bg,body[data-page="ind"] .hero.sub-page>.wrap,body[data-page="about"] .hero.sub-page>.wrap,body[data-page="ind"] .hero.sub-page>.tagline,body[data-page="about"] .hero.sub-page>.tagline{animation:none!important}}
html{scroll-behavior:auto}
.ind .num::after{transform:none}
.lab{z-index:6}

/* ===== draft-faithful department layout (ported from draft styles.css) ===== */
:root{--u:min(1vw,14.4px)}
.wwd-wrap{max-width:1440px;padding-left:calc(var(--u)*5.96);padding-right:calc(var(--u)*5.96)}
.dept-panel{padding-top:0}
.dept{position:relative;margin-top:calc(var(--u)*3.8);min-height:calc(var(--vis-h)*var(--u))}
.dept-copy{position:relative;z-index:3;width:calc(var(--copy-w)*var(--u));padding-top:calc(var(--copy-top,0)*var(--u))}
.dept-copy .eyebrow{font-size:max(11px,calc(var(--u)*.9))}
.dept-title{font-size:max(26px,calc(var(--u)*2.6));line-height:1.08;margin-top:calc(var(--u)*.55);width:calc(var(--title-w)*var(--u));letter-spacing:-.025em}
.dept-panel[data-k=content] .dept-title,.dept-panel[data-k=builds] .dept-title{font-size:max(24px,calc(var(--u)*2.2))}
.dept-title strong{display:block;font-weight:500}.dept-title em{display:block;font-style:normal;font-weight:300}
.dept-description{margin-top:calc(var(--u)*1.6);font-size:max(15px,calc(var(--u)*1.15));line-height:1.45;color:var(--muted);max-width:none}
.dept-copy .btn,.operations-copy .btn{margin-top:calc(var(--u)*2.4);font-size:max(14px,calc(var(--u)*1.05));padding:0 calc(var(--u)*1.4)}
.dept-signoff{margin-top:calc(var(--u)*3.4);font-size:max(11px,calc(var(--u)*.9));letter-spacing:.14em;line-height:1.7;color:#3b506b}
.dept-signoff::before{content:"";display:block;width:calc(var(--u)*3.4);height:1px;background:#8d9bad;margin-bottom:calc(var(--u)*1.25)}
.dept-visual{position:absolute;top:0;right:calc(var(--u)*-5.96);width:calc(var(--vis-w)*var(--u));z-index:1}
.dept-panel[data-k=content] .dept-visual{top:50%;transform:translateY(-50%)}
.dept-visual .stage{margin-top:0;container-type:inline-size}
.stage.scene,.dept-visual .stage{container-type:inline-size}
.rt .seg{stroke-width:var(--sw,2.6)}
.rt .node{stroke-width:var(--sw,2.6)}
.hscene::before{content:"";position:absolute;left:0;top:0;bottom:0;width:9%;z-index:2;pointer-events:none;background:linear-gradient(90deg,var(--paper),rgba(247,246,242,0))}
.box.bare{border-radius:0}
.lab{position:absolute;width:0;z-index:6;pointer-events:none;transform:none;text-align:center}
.lab b{position:absolute;left:0;bottom:1.43cqw;transform:translateX(-50%);white-space:nowrap;margin:0;font:italic 760 max(7px,1.386cqw)/1.2 var(--f-body);letter-spacing:.07cqw;text-transform:uppercase;color:#12304f;font-synthesis:style}
.lab span{position:absolute;left:0;top:1.49cqw;transform:translateX(-50%);white-space:nowrap;text-align:center;font-size:max(5.5px,1.03cqw);line-height:1.5;letter-spacing:.177cqw;font-weight:520;color:#26415f;text-transform:uppercase}
.cap.co{width:100%;white-space:nowrap;padding:0 .55cqw .48cqw .68cqw;bottom:100%}
.cap.co b{font-size:max(6px,1.067cqw);letter-spacing:.17cqw;font-weight:620;color:#12304f;margin:0;text-transform:uppercase}
.cap.co span{font-size:max(6px,1.3cqw);line-height:1.35;color:#3d5573;margin-top:.68cqw;display:block!important}
@media(max-width:900px){
.wwd-wrap{padding-left:var(--gut);padding-right:var(--gut)}
.dept{margin-top:24px;min-height:0}
.dept-copy,.dept-title{width:auto}.dept-title{font-size:30px}
.dept-description{font-size:16.5px}
.dept-visual,.dept-panel[data-k=content] .dept-visual{position:relative;right:auto;top:auto;transform:none;width:100%;margin-top:28px}
.dept-signoff{margin-top:24px}
.hscene::before{display:none}
}
@media(prefers-reduced-motion:no-preference){
@keyframes fade-in{from{opacity:0}to{opacity:1}}
@keyframes mk-canvas{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}
@keyframes mk-rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes mk-phone{from{opacity:0;transform:translateY(8px) rotate(-1.25deg)}to{opacity:1;transform:none}}
@keyframes mk-store{from{opacity:0;transform:scale(1.02)}to{opacity:1;transform:none}}
.js .dept-panel .frag{clip-path:inset(0 100% 0 0)}
.js .dept-panel .frag-v{clip-path:inset(0 0 100% 0)}
.js .dept-panel .frag-vu{clip-path:inset(100% 0 0 0)}
.js .dept-panel.play .frag{clip-path:inset(0 0 0 0);transition:clip-path var(--d,.55s) var(--ease) var(--t,0s)}
/* marketing */
/* hiring, content, builds scene image */
.js .dept-panel[data-k=hiring].play .step .box,.js .dept-panel[data-k=content].play .step .box,.js .dept-panel[data-k=builds].play .step .box{animation:mk-canvas .4s var(--ease) both}
/* outreach */
.js .dept-panel[data-k=outreach] .co-photo,.js .dept-panel[data-k=outreach] .co-labels,.js .dept-panel[data-k=outreach] .co-node{opacity:0}
.js .dept-panel[data-k=outreach].play .co-photo,.js .dept-panel[data-k=outreach].play .co-labels{animation:mk-rise .42s var(--ease) both;animation-delay:var(--sd)}
.js .dept-panel[data-k=outreach].play .co-node{animation:fade-in .42s var(--ease) both;animation-delay:var(--nd,0s)}
.js .dept-panel[data-k=outreach] .co-wave{stroke-dasharray:var(--len);stroke-dashoffset:var(--len)}
.js .dept-panel[data-k=outreach].play .co-wave{stroke-dashoffset:0;transition:stroke-dashoffset 1.45s var(--ease) .1s}
/* content labels */
.js .dept-panel[data-k=content] .lab{opacity:0}
.js .dept-panel[data-k=content].play .lab{animation:mk-rise .4s var(--ease) both;animation-delay:var(--sd)}
}
.lab b,.lab span{text-shadow:0 0 .8cqw rgba(247,246,242,.95),0 0 .4cqw rgba(247,246,242,.9)}

:root{--line-blue:#1684f8}
.route-line{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:6}
.dept-panel[data-k=marketing] .route-line{z-index:7}
.route-fill{fill:#1684f8;stroke:#1684f8;stroke-width:var(--fw,.9);stroke-linejoin:round;paint-order:stroke}
.dept-visual{container-type:inline-size}
.co-wrap{position:relative}
.co-strip{display:grid;grid-template-columns:290fr 291fr 253fr 261fr 309fr}
.co-band{position:relative}
.co-stage{position:relative;min-width:0}
.co-labels{padding:0 .55cqw .48cqw .68cqw}
.co-label{margin:0;font-size:max(6px,1.067cqw);letter-spacing:.171cqw;font-weight:620;color:#12304f;white-space:nowrap}
.co-sub{margin:.68cqw 0 0;font-size:max(6px,1.3cqw);line-height:1.35;font-weight:370;color:#3d5573;max-width:none}
.co-photo{position:relative;overflow:hidden;aspect-ratio:var(--ar)}
.co-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.co-line{position:absolute;left:0;top:0;width:100%;height:auto;overflow:visible;z-index:4;pointer-events:none}
.co-node circle{fill:#f7f6f2;stroke:var(--line-blue);stroke-width:3}
.co-node path,.co-node rect,.co-node line{stroke:var(--line-blue);fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.co-node .solid{fill:var(--line-blue);stroke:none}
.co-wave{stroke:var(--line-blue);stroke-width:var(--sw,4);stroke-linejoin:round;fill:none;stroke-linecap:round}
.lab{z-index:8}

.route-stroke{fill:none;stroke:#1684f8;stroke-width:var(--sw,4);stroke-linecap:round;stroke-linejoin:round}
.route-ring{fill:#f7f6f2;stroke:#1684f8;stroke-width:var(--rw,2.6)}
.js .dept-panel .route-ring.frag{clip-path:none;opacity:0}
.js .dept-panel.play .route-ring.frag{animation:fade-in .25s var(--ease) both;animation-delay:calc(var(--t,0s) + var(--d,.3s)*.8)}

/* round 7 */
@media(min-width:768px){
.dept-panel[data-k=marketing] .dept-visual{right:0}
.dept-panel[data-k=marketing] .dept{--copy-w:22}
}

/* Marketing: match the draft's airy treatment, with soft-faded supporting layers so the cards read first */

/* ===== round 8 ===== */
/* sliding indicator (header nav + department tabs) */
.navbar,.tabline{position:absolute;left:0;height:2px;width:0;background:#1375e3;pointer-events:none;opacity:0;transform-origin:50% 100%;translate:0 0;scale:1 1;will-change:translate,width,scale}
.navbar{bottom:-7px}
.tabline{bottom:-1px}
.navbar.on,.tabline.on{opacity:1}
@media(min-width:861px){.nav{position:relative}}
@media(max-width:860px){.navbar{display:none}}
/* hero line + journey */
.line-link{position:absolute;inset:0;z-index:3;pointer-events:none;display:block}
.hero-line{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.route{stroke:#3195f2;stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round;fill:none}
.route-hit{stroke:transparent;stroke-width:24;fill:none;pointer-events:stroke;cursor:pointer}
.line-link:focus-visible{outline:none}
.line-link:focus-visible .route{stroke:#c5e8ff}
.section-line{position:absolute;left:0;top:0;width:100%;height:calc((var(--sec) - 12px)/.79);pointer-events:none;z-index:1;overflow:visible}
.section-line .route{stroke:url(#line-blue);stroke-width:4.5;vector-effect:non-scaling-stroke}
#what-we-do{position:relative}
#what-we-do:focus{outline:none}
@media(max-width:860px){.route{stroke-width:3}.section-line .route{stroke-width:3}}
/* marketing stage: draft verbatim */
.mk-stage{position:relative;aspect-ratio:1199/725}
.mk-layer{position:absolute;border:0;padding:0;background:none;display:block;will-change:transform}
.mk-layer img{display:block;width:100%;height:auto}
.mk-layer:focus-visible{outline:3px solid #67b9ff;outline-offset:4px}
.mk-storefront{left:66.472%;top:.690%;width:33.528%;z-index:1}
.mk-social{left:10.259%;top:6.621%;width:21.184%;z-index:2}
.mk-website{left:30.776%;top:1.103%;width:21.018%;z-index:3}
.mk-search{left:50.959%;top:8.000%;width:22.185%;z-index:4}
.mk-physical{left:0;top:47.724%;width:73.144%;z-index:5;
  clip-path:polygon(0% 0%,14.025% 0%,14.025% 4.222%,42.987% 4.222%,42.987% 15.831%,69.669% 15.831%,69.669% 21.108%,100% 21.108%,100% 100%,0% 100%)}
.mk-phone{left:.083%;top:24.276%;width:16.681%;z-index:6}
.mk-hot{cursor:default;transition:transform .35s var(--ease)}
.mk-hot:hover,.mk-hot:focus-visible{transform:translateY(-3px)}
.mk-stage .route-fill{stroke-width:var(--fw,.9)}
.mk-line-mobile,.mk-shot,.mk-stage .scroll-note{display:none}
@media(prefers-reduced-motion:no-preference){
.js .dept-panel[data-k=marketing] .mk-layer{opacity:0}
.js .dept-panel[data-k=marketing].play .mk-stage{animation:mk-canvas .25s var(--ease) both}
.js .dept-panel[data-k=marketing].play .mk-layer{animation:mk-rise .42s var(--ease) both}
.js .dept-panel[data-k=marketing].play .mk-phone{animation:mk-phone .42s var(--ease) .18s both}
.js .dept-panel[data-k=marketing].play .mk-social{animation-delay:.32s}
.js .dept-panel[data-k=marketing].play .mk-website{animation-delay:.40s}
.js .dept-panel[data-k=marketing].play .mk-search{animation-delay:.48s}
.js .dept-panel[data-k=marketing].play .mk-physical{animation-delay:.62s}
.js .dept-panel[data-k=marketing].play .mk-storefront{animation:mk-store .40s var(--ease) .82s both}
}
@media(prefers-reduced-motion:reduce){.frag{clip-path:none!important}}
/* outreach: draft's wavy top fade on the photo strip */
@media(min-width:768px){
.co-photos{-webkit-mask-image:url(img/co-top-mask.png);mask-image:url(img/co-top-mask.png);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
}
@media(min-width:861px){.hero h1 .l:nth-child(2)>span{max-width:7.6em}}

/* r9: operations layout (draft grid) */
.panel.ops.dept-panel{padding-top:0}
.operations{display:grid;grid-template-columns:29.9% 66.8%;column-gap:3.3%;margin-top:calc(var(--u)*3.8)}
.operations-copy{width:auto}
.operations-copy .dept-title{width:auto}
.ops-list{list-style:none;padding:0;margin:calc(var(--u)*2) 0 calc(var(--u)*2.8);display:grid;gap:calc(var(--u)*.64);font-size:max(15px,calc(var(--u)*1.15));color:#30465f}
.ops-list li{display:flex;align-items:center;gap:calc(var(--u)*1.05);line-height:1.4}
.ops-list li::before{content:"\2713";display:inline-grid;place-items:center;flex:none;background:#207ddd;color:#fff;width:max(22px,calc(var(--u)*1.85));height:max(22px,calc(var(--u)*1.85));border-radius:50%;font-size:max(12px,calc(var(--u)*1.05))}
.cmp-labels{display:grid;grid-template-columns:46% 54%;padding-left:calc(var(--u)*.5);padding-right:calc(var(--u)*.2)}
.cmp-labels p{margin-top:calc(var(--u)*.55);font-size:max(14px,calc(var(--u)*1.15));line-height:1.3;color:var(--muted)}
.badge{display:inline-block;min-width:calc(var(--u)*7.3);padding:calc(var(--u)*.55) calc(var(--u)*1.5);font-size:max(13px,calc(var(--u)*1.15));font-weight:560;text-align:center;border-radius:5px;color:#fff;line-height:1.2}
.badge.before{background:#3e4b5a}.badge.after{background:#1977df}
.operations .cmp{aspect-ratio:802/410;margin-top:calc(var(--u)*.6)}
.operations .cmp .fit{transform:translateY(calc(var(--k,1)*-87.4px)) scale(var(--k,1))}
.operations .closing-line{position:relative;margin:calc(var(--u)*1.55) calc(var(--u)*4.7) 0 auto;width:max-content;font-size:max(11px,calc(var(--u)*.95));letter-spacing:.14em;line-height:1.65;color:#3b506b}
.operations .closing-line::before{content:"";position:absolute;width:calc(var(--u)*3.4);height:1px;background:#4c6381;top:calc(var(--u)*.7);right:calc(100% + var(--u)*1.4)}
@media(max-width:900px){
.operations{display:block;margin-top:24px}
.operations-copy .btn{width:100%;justify-content:space-between}
.ops-list{margin:24px 0 28px;gap:12px}
.operations-visual{margin-top:36px}
.cmp-labels{grid-template-columns:1fr 1fr;gap:16px;padding:0}
.operations .closing-line{margin:20px 0 0 auto}
.operations .cmp{margin-top:14px}}
/* r9: hero lines hidden until the journey draws them */
.js .route{stroke-dasharray:100000;stroke-dashoffset:100000}
.js.lines-on .route{stroke-dasharray:none;stroke-dashoffset:0}
.js .route-hit{stroke-dasharray:none;stroke-dashoffset:0}

/* r10: Inter, matched to draft typography */
:root{font-synthesis:none}
h1,h2,h3{font-variation-settings:normal;font-weight:370;letter-spacing:-.043em;line-height:1.04}
h1{font-weight:700;letter-spacing:-.037em;line-height:1.045}h1 b,h1 strong{font-weight:700}
.hero h1 .l:nth-child(2) span{font-weight:350}
h2{font-weight:370;letter-spacing:-.043em;line-height:1.03}
h3{letter-spacing:-.03em;font-variation-settings:normal}
.dept-title{font-weight:660;letter-spacing:-.044em;line-height:1.08}
.dept-title strong{font-weight:660}.dept-title em{font-weight:340}
.eyebrow{font-weight:500;letter-spacing:.17em}
body{font-weight:370;line-height:1.43;letter-spacing:-.02em}
.hero .sub,.dept-description{font-weight:350;line-height:1.43;letter-spacing:-.022em}
.nav a{font-weight:500}.btn{font-weight:560;line-height:1.25}.tab{font-weight:500}
.brand{font-weight:740;letter-spacing:.16em}
.lab b,.ind .num,.pillars .n,.ft .tg{font-style:normal}
html{overflow-anchor:none}
h1,.hero.sub-page h1{font-size:clamp(34px,4.57vw,66px);letter-spacing:-.037em;line-height:1.045}
@media(max-width:700px){h1,.hero.sub-page h1{font-size:clamp(34px,9.4vw,44px)}}
.hero h1 .l>span{white-space:nowrap}@media(max-width:700px){.hero h1 .l>span{white-space:normal}}
#heroPath{transition:opacity .4s linear}
.hero-done #heroPath{opacity:0}
body[data-page="ind"] .hero.sub-page h1{font-size:clamp(34px,4vw,57.6px);letter-spacing:-.04em;line-height:1.06;max-width:none}
body[data-page="about"] .hero.sub-page h1{font-size:clamp(34px,3.5vw,50.4px);letter-spacing:-.04em;line-height:1.08;max-width:none}
@media(max-width:700px){body[data-page="ind"] .hero.sub-page h1,body[data-page="about"] .hero.sub-page h1{font-size:clamp(34px,9.4vw,44px)}}

/* r14: tab row arrows */
.tabs-wrap{position:relative}
.tab-arrow{position:absolute;top:0;bottom:1px;width:28px;padding:0;border:0;background:none;color:#1375e3;display:none;align-items:center;z-index:5;cursor:pointer}
.tab-arrow.show{display:flex}
.tab-arrow::before{content:"";position:absolute;top:0;bottom:0;width:24px;pointer-events:none}
.tab-arrow.r{right:0;justify-content:flex-end}.tab-arrow.r::before{right:28px;background:linear-gradient(90deg,transparent,var(--paper))}
.tab-arrow.r{background:linear-gradient(90deg,transparent 0,var(--paper) 0)}
.tab-arrow.l{left:0;justify-content:flex-start}.tab-arrow.l::before{left:28px;background:linear-gradient(270deg,transparent,var(--paper))}
.tab-arrow.l{background:var(--paper)}
.tab-arrow svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;position:relative}
.tab-arrow.r svg{animation:tabnudge 1.4s ease-in-out infinite}
.tab-arrow.l svg{animation:tabnudgeL 1.4s ease-in-out infinite}
.tab-arrow.still svg{animation:none}
@keyframes tabnudge{0%,100%{transform:translateX(0)}50%{transform:translateX(4px)}}
@keyframes tabnudgeL{0%,100%{transform:translateX(0)}50%{transform:translateX(-4px)}}
@media(prefers-reduced-motion:reduce){.tab-arrow svg{animation:none!important}}

@media (max-width:767px){br.hbr{display:none}}
/* r15: home hero load entrance (same as sub-pages; not on ?journey=1) */
html.home-load body[data-page="home"] .hero>img.bg{animation:subhero-img 1200ms cubic-bezier(.22,1,.36,1) both;transform-origin:50% 50%}
html.home-load body[data-page="home"] .hero>.wrap{animation:subhero-txt 500ms ease 200ms both}
