
:root{
  --ink:#141034; --navy2:#0C1455; --blue:#233DFF; --slate:#5B6083; --mist:#AEB4D6;
  --paper:#FFFFFF; --paper2:#F5F5F9; --line:#DADAE6; --text:#141034; --muted:#5B6083;
  --band:#141034; --band-text:#F4F4F8; --band-muted:#AEB4D6; --band-line:#2B2757;
  --contour:#2B2757; --contour2:#3E3A78;
  --display:"Archivo","Archivo Expanded","Helvetica Neue",Arial,sans-serif;
  --body:"Instrument Sans","Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#0F0D24; --paper2:#14112E; --line:#2A2652; --text:#ECEBF3; --muted:#AEB4D6;
    --band:#070619; --band-line:#221E4E; --contour:#221E4E; --contour2:#33306A;
  }
}
:root[data-theme="dark"]{
  --paper:#0F0D24; --paper2:#14112E; --line:#2A2652; --text:#ECEBF3; --muted:#AEB4D6;
  --band:#070619; --band-line:#221E4E; --contour:#221E4E; --contour2:#33306A;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--body);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(20px,4vw,48px)}
.g8{display:grid;grid-template-columns:repeat(8,1fr);column-gap:24px}
h1,h2,h3{margin:0;font-family:var(--display);font-weight:500;font-stretch:112.5%;letter-spacing:.005em;text-wrap:balance;line-height:1.08}
.eyebrow{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.band .eyebrow{color:var(--band-muted)}
p{margin:0 0 16px;max-width:62ch}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--blue);vertical-align:middle;margin-right:10px}
.tlink{font-family:var(--body);font-weight:500;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px}
.tlink:hover{color:var(--blue);border-color:var(--blue)}
.band{background:var(--band);color:var(--band-text)}
.band .tlink:hover{color:#8FA0FF;border-color:#8FA0FF}

/* header */
header{position:absolute;top:0;left:0;right:0;z-index:10}
header .wrap{display:flex;align-items:center;justify-content:space-between;height:88px}
header img{height:16px;width:auto;display:block}
nav ul{list-style:none;margin:0;padding:0;display:flex;gap:34px;align-items:center}
nav a{text-decoration:none;font-size:15px;color:var(--band-text);opacity:.85}
nav a:hover{opacity:1;color:#fff}
nav a.cta{font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;opacity:1;border-bottom:1px solid #8FA0FF;padding-bottom:3px}
nav a.cta:hover{color:#8FA0FF}
.burger{display:none}
@media (max-width:820px){
  nav ul{display:none}
  .burger{display:block;background:none;border:1px solid var(--band-line);color:var(--band-text);font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:8px 12px;cursor:pointer}
  nav.open ul{display:flex;flex-direction:column;position:absolute;top:88px;right:20px;left:20px;background:var(--band);border:1px solid var(--band-line);padding:22px;gap:18px;align-items:flex-start}
}

/* hero */
.hero{position:relative;background:var(--ink);color:#F4F4F8;overflow:hidden;min-height:640px}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero .wrap{position:relative;padding-top:180px;padding-bottom:110px}
.hero h1{font-size:clamp(34px,5.4vw,66px);max-width:14ch;color:#fff}
.hero .pos{margin:30px 0 40px;font-size:18px;color:#C9CDE6;max-width:44ch}
.hero .legend{position:absolute;right:clamp(20px,4vw,48px);bottom:34px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:#6E74A3;text-transform:uppercase;text-align:right;line-height:1.7}
@media (max-width:820px){.hero .wrap{padding-top:140px;padding-bottom:90px}.hero .legend{position:static;text-align:left;margin-top:40px}}

/* sections */
section{padding:clamp(72px,9vw,128px) 0}
.intro .g8 > p{grid-column:2 / span 6;font-family:var(--display);font-stretch:112.5%;font-weight:400;font-size:clamp(22px,2.6vw,32px);line-height:1.3;max-width:none;margin:0}
.intro .g8 > .eyebrow{grid-column:1 / span 1;padding-top:10px}
@media (max-width:820px){.g8{grid-template-columns:1fr;row-gap:12px}.intro .g8 > p,.intro .g8 > .eyebrow{grid-column:auto}}

/* expertise legend */
.exp .g8{align-items:start}
.exp .map{grid-column:1 / span 3;position:sticky;top:80px}
.exp .map canvas{width:100%;height:auto;display:block;border:0;-webkit-mask-image:radial-gradient(ellipse 62% 58% at 50% 48%,#000 40%,rgba(0,0,0,.55) 68%,transparent 100%);mask-image:radial-gradient(ellipse 62% 58% at 50% 48%,#000 40%,rgba(0,0,0,.55) 68%,transparent 100%)}
.exp .map .cap{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--band-muted);margin-top:12px;line-height:1.7}
.exp .leg{grid-column:5 / span 4}
.exp .flag h2{font-size:clamp(30px,3.4vw,44px);color:#fff;margin:14px 0 16px}
.exp .flag p{color:#C9CDE6}
.exp .adv{margin-top:64px;padding-top:28px;border-top:1px solid var(--band-line)}
.exp .adv .eyebrow{margin-bottom:20px;display:block}
.exp .item{display:grid;grid-template-columns:44px 1fr;gap:18px;padding:22px 0;border-top:1px solid var(--band-line)}
.exp .item:last-child{border-bottom:1px solid var(--band-line)}
.exp .item svg{width:36px;height:36px;display:block;margin-top:4px}
.exp .item h3{font-size:22px;color:#fff;margin-bottom:6px}
.exp .item .q{font-family:var(--body);font-style:italic;color:#C9CDE6;margin-bottom:6px}
.exp .item p{color:var(--band-muted);font-size:15.5px;margin:0}
.exp .item a{display:inline-block;margin-top:10px;font-size:14px}
@media (max-width:820px){.exp .map{grid-column:auto;position:static;max-width:420px}.exp .leg{grid-column:auto;margin-top:36px}}

/* why four */
.why .g8 > .eyebrow{grid-column:1 / span 1;padding-top:8px}
.why .g8 > div{grid-column:2 / span 6}
.why h2{font-size:clamp(26px,3vw,38px);margin-bottom:28px;max-width:20ch}
.why .cols{display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px}
.why .cols h3{font-family:var(--body);font-weight:500;font-size:16px;margin:0 0 8px;padding-top:12px;border-top:1px solid var(--line)}
.why .cols p{font-size:15.5px;color:var(--muted);margin:0}
@media (max-width:820px){.why .g8 > div,.why .g8 > .eyebrow{grid-column:auto}.why .cols{grid-template-columns:1fr}}

/* industries */
.ind{background:var(--paper2)}
.ind .g8 > .eyebrow{grid-column:1 / span 1;padding-top:8px}
.ind .g8 > .lead{grid-column:2 / span 6}
.ind h2{font-size:clamp(26px,3vw,38px);margin-bottom:14px;max-width:22ch}
.ind .terr{grid-column:2 / span 6;display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:36px}
.ind .t{border-top:2px solid var(--ink);padding-top:18px}
.ind .t h3{font-size:22px;margin-bottom:12px}
.ind .t ul{list-style:none;margin:0;padding:0;font-size:15.5px;color:var(--muted)}
.ind .t li{padding:6px 0;border-top:1px solid var(--line)}
.ind .t li::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--blue);margin-right:12px;vertical-align:middle}
.ind .note{grid-column:2 / span 6;font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;color:var(--muted);margin-top:26px}
@media (max-width:820px){.ind .g8 > *,.ind .terr{grid-column:auto}.ind .terr{grid-template-columns:1fr}}

/* how */
.how .g8 > .eyebrow{grid-column:1 / span 1;padding-top:8px}
.how .g8 > div{grid-column:2 / span 6}
.how h2{font-size:clamp(26px,3vw,38px);color:#fff;margin-bottom:34px;max-width:22ch}
.how ol{list-style:none;margin:0;padding:0;max-width:62ch}
.how li{display:grid;grid-template-columns:32px 1fr;gap:16px;padding:20px 0;border-top:1px solid var(--band-line);color:#C9CDE6}
.how li:last-child{border-bottom:1px solid var(--band-line)}
.how li b{display:block;color:#fff;font-weight:500;margin-bottom:4px}
.how li span.n{font-family:var(--mono);font-size:11px;color:#6E74A3;padding-top:5px}
@media (max-width:820px){.how .g8 > *{grid-column:auto}}

/* contact */
.contact .g8 > .eyebrow{grid-column:1 / span 1;padding-top:8px}
.contact .g8 > .lead{grid-column:2 / span 3}
.contact .g8 > form{grid-column:5 / span 4}
.contact h2{font-size:clamp(28px,3.4vw,44px);margin-bottom:18px;max-width:14ch}
.contact .lead p{color:var(--muted)}
.contact .lead address{font-style:normal;margin-top:28px;font-size:15px;line-height:1.7}
.contact .lead address a{text-decoration:none;border-bottom:1px solid var(--line)}
form{display:grid;gap:18px}
label{display:grid;gap:6px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
input,textarea,select{font:inherit;font-family:var(--body);font-size:16px;color:var(--text);background:transparent;border:0;border-bottom:1px solid var(--line);padding:10px 0;border-radius:0;width:100%}
input:focus,textarea:focus,select:focus{border-color:var(--blue);outline:none}
textarea{min-height:96px;resize:vertical}
select{appearance:none;-webkit-appearance:none;cursor:pointer}
button.send{justify-self:start;font:inherit;font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;background:var(--ink);color:#fff;border:1px solid var(--ink);padding:16px 26px;cursor:pointer;margin-top:6px}
button.send:hover{background:var(--blue);border-color:var(--blue)}
.form-note{font-size:13px;color:var(--muted);margin:0}
@media (max-width:820px){.contact .g8 > *{grid-column:auto}.contact .g8 > form{margin-top:36px}}

/* footer */
footer{background:var(--band);color:var(--band-muted);position:relative;overflow:hidden}
footer canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:.9}
footer .wrap{position:relative;padding-top:56px;padding-bottom:40px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px;font-size:14px;line-height:1.7}
footer img{height:14px;width:auto;display:block;margin-bottom:18px}
footer a{text-decoration:none}
footer a:hover{color:#fff}
footer ul{list-style:none;margin:0;padding:0}
footer .fine{grid-column:1 / -1;border-top:1px solid var(--band-line);padding-top:18px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;display:flex;flex-wrap:wrap;gap:8px 28px}
@media (max-width:820px){footer .wrap{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ---------- shared / interior pages ---------- */
img{max-width:100%}
nav a.lang{font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;opacity:.7}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.pband{position:relative;background:var(--ink);color:#F4F4F8;overflow:hidden}
.pband canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.pband .wrap{position:relative;padding-top:160px;padding-bottom:80px}
.pband h1{font-size:clamp(32px,4.6vw,56px);max-width:16ch;color:#fff;margin-top:14px}
.pband .lead{margin:24px 0 0;font-size:18px;color:#C9CDE6;max-width:52ch}
.pband .eyebrow{color:#8FA0FF}
@media (max-width:820px){.pband .wrap{padding-top:130px;padding-bottom:60px}}
.std .g8 > .eyebrow{grid-column:1 / span 1;padding-top:8px}
.std .g8 > .body{grid-column:2 / span 6}
.std.alt{background:var(--paper2)}
.std h2{font-size:clamp(26px,3vw,38px);margin-bottom:14px}
.std h2 a,.std h3 a{text-decoration:none}
.std h2 a:hover,.std h3 a:hover{color:var(--blue)}
.std .q{font-style:italic;color:var(--muted);margin-bottom:10px;font-size:17px}
.std .flag p{font-size:18px}
.std .list .item{padding:26px 0;border-top:1px solid var(--line)}
.std .list .item:last-child{border-bottom:1px solid var(--line)}
.std .list h3{font-size:22px;margin-bottom:4px}
.std .list p{color:var(--muted);margin-bottom:10px}
.std p.big{font-family:var(--display);font-stretch:112.5%;font-weight:400;font-size:clamp(20px,2.2vw,26px);line-height:1.35;max-width:32ch}
.steps{list-style:none;margin:0;padding:0;max-width:62ch;counter-reset:s}
.steps li{position:relative;padding:16px 0 16px 52px;border-top:1px solid var(--line);counter-increment:s}
.steps li:last-child{border-bottom:1px solid var(--line)}
.steps li::before{content:counter(s,upper-roman);position:absolute;left:0;top:19px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--blue)}
.std h4{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:36px 0 10px;font-weight:500}
.per{list-style:none;margin:0;padding:0;max-width:62ch}
.per li{padding:8px 0;border-top:1px solid var(--line);color:var(--muted)}
.per li:last-child{border-bottom:1px solid var(--line)}
.per li::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--blue);margin-right:12px;vertical-align:middle}
.backline{padding:0 clamp(20px,4vw,48px) 56px}
.ctab .g8 > .eyebrow{grid-column:1 / span 1;padding-top:8px}
.ctab .g8 > .body{grid-column:2 / span 6}
.ctab{padding:clamp(72px,9vw,128px) 0}
.ctab h2{font-size:clamp(28px,3.4vw,44px);color:#fff;margin-bottom:14px}
.ctab p{color:#C9CDE6}
.principles{list-style:none;margin:0;padding:0;max-width:62ch;counter-reset:p}
.principles li{display:grid;grid-template-columns:32px 1fr;gap:16px;padding:20px 0;border-top:1px solid var(--line);color:var(--muted);counter-increment:p}
.principles li::before{content:counter(p,upper-roman);font-family:var(--mono);font-size:11px;color:var(--blue);padding-top:5px}
.principles li:last-child{border-bottom:1px solid var(--line)}
.principles b{display:block;color:var(--text);font-weight:500;margin-bottom:4px}
.std .terr,.terr{display:grid;grid-template-columns:1fr 1fr;gap:40px 32px}
.std .t{border-top:2px solid var(--ink);padding-top:18px}
.std .t h3{font-size:24px;margin-bottom:10px}
.std .t p{color:var(--muted);font-size:15.5px}
.std .t ul{list-style:none;margin:0;padding:0;font-size:15.5px;color:var(--muted)}
.std .t li{padding:6px 0;border-top:1px solid var(--line)}
.std .t li::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--blue);margin-right:12px;vertical-align:middle}
.std.contact .g8 > .lead{grid-column:2 / span 2}
.std.contact .g8 > form{grid-column:5 / span 4}
.std.contact address{font-style:normal;font-size:16px;line-height:1.8}
.std.contact address a{text-decoration:none;border-bottom:1px solid var(--line)}
.legal p{color:var(--muted);font-size:15.5px}
.muted{color:var(--muted)}
@media (max-width:820px){
  .std .g8 > *,.ctab .g8 > *,.std.contact .g8 > *{grid-column:auto}
  .std .terr,.terr{grid-template-columns:1fr}
  .std.contact .g8 > form{margin-top:36px}
}
.exp h2 a,.exp h3 a{text-decoration:none}
.exp h2 a:hover,.exp h3 a:hover{color:#8FA0FF}
@media (max-width:820px){.hero .legend{padding:0 20px;margin-top:32px}}

/* ---------- motion & dynamics ---------- */
.std p.big{max-width:56ch;font-size:clamp(20px,2vw,25px);line-height:1.45}
.tlink::after{content:"\2192";display:inline-block;margin-left:8px;transition:transform .25s ease}
.tlink:hover::after{transform:translateX(4px)}
.backline .tlink::after{content:none}
nav a:not(.cta):not(.lang){position:relative}
nav a:not(.cta):not(.lang)::after{content:"";position:absolute;left:0;right:100%;bottom:-5px;height:1px;background:#8FA0FF;transition:right .25s ease}
nav a:not(.cta):not(.lang):hover::after{right:0}
.ind .t,.std .t{transition:border-color .3s ease}
.ind .t:hover,.std .t:hover{border-top-color:var(--blue)}
.exp .item,.std .list .item{transition:background .3s ease}
button.send{transition:background .2s ease,border-color .2s ease,transform .2s ease}
button.send:hover{transform:translateY(-1px)}
@media (prefers-reduced-motion:no-preference){
  .rv{opacity:0;transform:translateY(16px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
  .rv.in{opacity:1;transform:none}
  .why .cols > div:nth-child(2).rv{transition-delay:.08s}.why .cols > div:nth-child(3).rv{transition-delay:.16s}
  .ind .t:nth-child(2).rv,.std .t:nth-child(2).rv{transition-delay:.08s}.ind .t:nth-child(3).rv,.std .t:nth-child(3).rv{transition-delay:.16s}.ind .t:nth-child(4).rv,.std .t:nth-child(4).rv{transition-delay:.24s}
}
.exp .adv.four{margin-top:0;padding-top:0;border-top:0}
.exp .four .item h3{font-size:24px}
.exp .four .item p{font-size:16px;color:#C9CDE6}
.intro .g8 > p,.std p.big{text-align:justify;text-align-last:left;hyphens:auto;-webkit-hyphens:auto;text-wrap:pretty;word-spacing:-.02em}
@media (max-width:820px){.intro .g8 > p,.std p.big{text-align:left}}

/* ---------- dynamics v2 ---------- */
@media (prefers-reduced-motion:no-preference){
  .hero h1 .w{display:inline-block;opacity:0;transform:translateY(.35em);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
  .hero h1.go .w{opacity:1;transform:none}
  .hero .pos,.hero .tlink{opacity:0;transform:translateY(10px);animation:heroin .8s cubic-bezier(.2,.7,.2,1) forwards}
  .hero .pos{animation-delay:.9s}.hero .tlink{animation-delay:1.15s}
  @keyframes heroin{to{opacity:1;transform:none}}
  .rv{transform:translateY(28px);transition-duration:.9s,.9s}
  .exp .item:nth-child(2).rv,.steps li:nth-child(2).rv,.principles li:nth-child(2).rv,.how li:nth-child(2).rv,.std .list .item:nth-child(2).rv{transition-delay:.1s}
  .exp .item:nth-child(3).rv,.steps li:nth-child(3).rv,.principles li:nth-child(3).rv,.how li:nth-child(3).rv,.std .list .item:nth-child(3).rv{transition-delay:.2s}
  .exp .item:nth-child(4).rv,.steps li:nth-child(4).rv,.principles li:nth-child(4).rv,.how li:nth-child(4).rv,.std .list .item:nth-child(4).rv{transition-delay:.3s}
  .exp .item:nth-child(5).rv,.steps li:nth-child(5).rv,.principles li:nth-child(5).rv,.how li:nth-child(5).rv{transition-delay:.4s}
  .principles li:nth-child(6).rv{transition-delay:.5s}
}
.exp .item,.std .list .item{position:relative;padding-left:12px;padding-right:12px;margin-left:-12px;margin-right:-12px;transition:background .35s ease}
.exp .item:hover{background:rgba(255,255,255,.045)}
.std .list .item:hover{background:rgba(20,16,52,.04)}
.exp .item svg *{transition:stroke .35s ease,fill .35s ease}
.exp .item:hover svg *{stroke:#8FA0FF}
.exp .item:hover svg [fill="#233DFF"]{fill:#233DFF;stroke:none}
.exp .item:hover h3 a{color:#8FA0FF}
.std .list .item:hover h3 a{color:var(--blue)}

/* ---------- industry tiles ---------- */
.terr,.ind .terr,.std .terr{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:36px}
.terr .t{position:relative;overflow:hidden;background:var(--band);color:#F4F4F8;padding:34px 34px 30px;border:0;border-top:0;min-height:320px;transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s ease}
.terr .t::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.terr .t:hover{transform:translateY(-4px);box-shadow:0 24px 48px -28px rgba(20,16,52,.55)}
.terr .t:hover::after{transform:scaleX(1)}
.terr .t canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:.85;transition:opacity .4s ease}
.terr .t:hover canvas{opacity:1}
.terr .t .tc{position:relative}
.terr .t h3{color:#fff;font-size:26px;margin-bottom:12px}
.terr .t p{color:#C9CDE6;font-size:15.5px;max-width:46ch;margin-bottom:22px}
.terr .t ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px;font-size:13.5px;color:#E4E5F0}
.terr .t li{border:1px solid var(--band-line);padding:7px 12px 7px 10px;border-top:1px solid var(--band-line);background:rgba(20,16,52,.55);backdrop-filter:blur(2px);transition:border-color .3s ease,background .3s ease}
.terr .t li::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--blue);margin-right:9px;vertical-align:middle}
.terr .t:hover li{border-color:#4A4690}
.terr .t li:hover{background:rgba(35,61,255,.18);border-color:#8FA0FF}
.ind .note{margin-top:22px}
@media (max-width:820px){.terr,.ind .terr,.std .terr{grid-template-columns:1fr}.terr .t{min-height:0;padding:26px 22px}}

/* ---------- about: map + principles ---------- */
.about .g8{align-items:start}
.about .amap{grid-column:1 / span 3;position:sticky;top:80px}
.about .frame{position:relative;background:var(--band);overflow:hidden}
.about .frame canvas{width:100%;height:auto;display:block;opacity:.95}
.about .cap{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:12px;line-height:1.7}
.about .pt{position:absolute;transform:translate(-50%,-50%);pointer-events:none}
.about .pt i{display:block;width:6px;height:6px;border-radius:50%;background:#4A4690;transition:background .4s,transform .4s,box-shadow .4s}
.about .pt em{position:absolute;left:14px;top:-7px;white-space:nowrap;font-family:var(--mono);font-style:normal;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#8FA0FF;opacity:0;transform:translateX(-6px);transition:opacity .4s,transform .4s}
.about .pt.on i{background:#233DFF;transform:scale(1.6);box-shadow:0 0 0 6px rgba(35,61,255,.18)}
.about .pt.on em{opacity:1;transform:none}
.about .aleg{grid-column:4 / span 5}
.about .principles li{grid-template-columns:44px 1fr;gap:18px;align-items:start;padding:24px 12px;margin:0 -12px;transition:background .35s}
.about .principles li::before{content:none}
.about .principles li svg{width:36px;height:36px;display:block;margin-top:2px}
.about .principles li.on{background:var(--paper2)}
.about .principles li.on b{color:var(--blue)}
@media (max-width:820px){
  .about .amap{grid-column:auto;position:static;max-width:100%}
  .about .aleg{grid-column:auto;margin-top:28px}
  .about .pt em{display:none}
}

.about .pt.r em{left:auto;right:14px;transform:translateX(6px)}
.about .pt.r.on em{transform:none}

/* ---------- expertise tiles ---------- */
.etiles{margin-top:28px}
.terr .t.et{display:block;text-decoration:none;color:#F4F4F8;padding:32px 34px 30px}
.terr .t.et svg{width:36px;height:36px;display:block;margin-bottom:22px}
.terr .t.et .q{font-style:italic;color:#C9CDE6;font-size:16px;margin:0 0 12px}
.terr .t.et p{margin-bottom:22px}
.terr .t.et .tlink{color:#fff}
.terr .t.et:hover .tlink{color:#8FA0FF;border-color:#8FA0FF}
.terr .t.et:hover h3{color:#fff}
.terr .t.et svg *{transition:stroke .35s ease}
.terr .t.et:hover svg [stroke="#AEB4D6"]{stroke:#8FA0FF}

/* why: lighter */
.why .cols{gap:40px}
.why .cols svg{width:36px;height:36px;display:block;margin-bottom:18px}
.why .cols h3{font-family:var(--display);font-stretch:112.5%;font-size:21px;line-height:1.2;border-top:0;padding-top:0;margin-bottom:10px}
.why .cols > div{border-top:1px solid var(--line);padding-top:22px;transition:border-color .3s}
.why .cols > div:hover{border-top-color:var(--blue)}
.why .cols p{font-size:15.5px}

/* ---------- expertise legend rows ---------- */
.elist{margin-top:28px;border-top:1px solid var(--line)}
.erow{display:grid;grid-template-columns:200px 1fr;gap:40px;align-items:center;padding:34px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--text);transition:background .35s}
.erow:hover{background:var(--paper2)}
.esq{position:relative;width:200px;height:200px;background:var(--band);overflow:hidden;transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.erow:hover .esq{transform:translateX(6px)}
.esq canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:.9}
.esq svg{position:absolute;left:50%;top:50%;width:56px;height:56px;transform:translate(-50%,-50%);filter:drop-shadow(0 0 10px rgba(20,16,52,.9))}
.esq svg *{transition:stroke .35s}
.erow:hover .esq svg [stroke="#AEB4D6"]{stroke:#8FA0FF}
.etx h3{font-size:clamp(24px,2.6vw,32px);margin-bottom:8px;transition:color .3s}
.erow:hover h3{color:var(--blue)}
.etx .q{font-style:italic;color:var(--muted);font-size:17px;margin-bottom:12px}
.etx p{color:var(--muted);font-size:16px;margin-bottom:14px;max-width:56ch}
.etx .tlink{color:var(--text)}
.erow:hover .tlink{color:var(--blue);border-color:var(--blue)}
@media (max-width:820px){.erow{grid-template-columns:1fr;gap:18px}.esq{width:100%;height:150px}.esq canvas{width:100%;height:100%}}

/* ---------- expertise: map + rows ---------- */
.xlist{border-top:1px solid var(--line)}
.xrow{display:grid;grid-template-columns:44px 1fr;gap:18px;align-items:start;padding:26px 12px;margin:0 -12px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--text);transition:background .35s}
.xrow svg{width:36px;height:36px;display:block;margin-top:4px}
.xrow svg [stroke="#AEB4D6"]{stroke:#5B6083}
.xrow svg [fill="#AEB4D6"]{fill:#5B6083}
.xrow h3{font-size:clamp(22px,2.4vw,28px);margin-bottom:6px;transition:color .3s}
.xrow .q{font-style:italic;color:var(--muted);font-size:16.5px;margin-bottom:10px}
.xrow p{color:var(--muted);font-size:15.5px;margin-bottom:12px;max-width:56ch}
.xrow .tlink{color:var(--text)}
.xrow.on{background:var(--paper2)}
.xrow.on h3,.xrow.on .tlink{color:var(--blue)}
.xrow.on .tlink{border-color:var(--blue)}
.xrow.on svg [stroke="#AEB4D6"]{stroke:#233DFF}

/* ---------- expertise accordion (full-bleed bands) ---------- */
.xacc{padding:0;background:var(--band);border-top:1px solid var(--band-line)}
.xp{position:relative;overflow:hidden;color:#F4F4F8;border-bottom:1px solid var(--band-line);cursor:pointer}
.xp canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:.55;transition:opacity .5s}
.xp.open canvas{opacity:1}
.xp .xh{position:relative;display:grid;grid-template-columns:44px 1fr auto;gap:22px;align-items:center;padding-top:30px;padding-bottom:30px}
.xp .xh svg{width:36px;height:36px;display:block}
.xp h3{font-size:clamp(22px,2.6vw,34px);color:#fff;transition:color .3s}
.xp .q{grid-column:2;font-style:italic;color:#C9CDE6;font-size:16px;margin-top:4px}
.xp .plus{grid-column:3;grid-row:1 / span 2;width:14px;height:14px;position:relative;opacity:.8}
.xp .plus::before,.xp .plus::after{content:"";position:absolute;background:#8FA0FF;left:0;top:6px;width:14px;height:1px;transition:transform .35s}
.xp .plus::after{transform:rotate(90deg)}
.xp.open .plus::after{transform:rotate(0)}
.xp .xb{position:relative;display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s cubic-bezier(.2,.7,.2,1)}
.xp.open .xb{grid-template-rows:1fr}
.xp .xb > .wrap{overflow:hidden;min-height:0}
.xp .xb p{color:#E4E5F0;font-size:clamp(17px,1.6vw,20px);max-width:52ch;margin:0 0 18px;padding-left:66px}
.xp .xb .tlink{margin-left:66px;display:inline-block;margin-bottom:40px;color:#fff}
.xp .xb .tlink:hover{color:#8FA0FF;border-color:#8FA0FF}
.xp:hover h3,.xp.open h3{color:#fff}
.xp.open .xh svg [stroke="#AEB4D6"]{stroke:#8FA0FF}
.xp::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--blue);transform:scaleY(0);transform-origin:top;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.xp.open::before{transform:scaleY(1)}
@media (max-width:820px){.xp .xh{grid-template-columns:32px 1fr auto;gap:14px}.xp .xh svg{width:28px;height:28px}.xp .xb p,.xp .xb .tlink{padding-left:0;margin-left:0}}
.xp .xb{grid-template-columns:100%}
.xp .xb > .wrap{width:100%}

/* ---------- expertise: clean grid ---------- */
.xgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 64px;margin-top:28px}
.xc{display:block;text-decoration:none;color:var(--text);border-top:1px solid var(--line);padding:38px 0 46px;position:relative}
.xc::before{content:"";position:absolute;left:0;top:-1px;height:2px;width:0;background:var(--blue);transition:width .5s cubic-bezier(.2,.7,.2,1)}
.xc:hover::before{width:100%}
.xc svg{width:40px;height:40px;display:block;margin-bottom:26px}
.xc svg [stroke="#AEB4D6"]{stroke:var(--ink)}
.xc svg [fill="#AEB4D6"]{fill:var(--ink)}
.xc h3{font-size:clamp(26px,2.8vw,36px);margin-bottom:10px;transition:color .3s}
.xc:hover h3{color:var(--blue)}
.xc .q{font-style:italic;color:var(--muted);font-size:17px;margin-bottom:16px}
.xc p{color:var(--muted);font-size:16px;margin-bottom:18px;max-width:40ch}
.xc .tlink{color:var(--text)}
.xc:hover .tlink{color:var(--blue);border-color:var(--blue)}
@media (max-width:820px){.xgrid{grid-template-columns:1fr;gap:0}.xc{padding:28px 0 34px}}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .xc svg [stroke="#AEB4D6"]{stroke:#ECEBF3}}

/* ---------- team ---------- */
.team{margin-top:64px;padding-top:36px;border-top:1px solid var(--line)}
.team h4{margin-top:0}
.team .tsub{color:var(--muted);margin-bottom:26px}
.people{display:grid;gap:28px}
.person{display:grid;grid-template-columns:96px 1fr;gap:24px;align-items:start}
.person .mono{width:96px;height:96px;background:var(--band);color:#8FA0FF;font-family:var(--display);font-stretch:112.5%;font-size:26px;letter-spacing:.08em;display:flex;align-items:center;justify-content:center}
.person h3{font-size:22px;margin-bottom:2px}
.person .role{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);margin-bottom:10px}
.person p{color:var(--muted);font-size:15.5px;margin:0;max-width:56ch}
@media (max-width:820px){.person{grid-template-columns:72px 1fr;gap:16px}.person .mono{width:72px;height:72px;font-size:20px}}

.team .big{margin-bottom:16px}
.team .tsub{max-width:56ch}
.g8 > *{min-width:0}
form{min-width:0}
input,select,textarea{max-width:100%;min-width:0}
@media (max-width:820px){.g8 > *{grid-column:auto !important}.g8{grid-template-columns:1fr !important}}

/* ---------- hero: two paths ---------- */
.hero .paths{display:flex;flex-wrap:wrap;gap:14px 36px;align-items:center}
.hero .pos{max-width:58ch}
@media (prefers-reduced-motion:no-preference){.hero .paths{opacity:0;transform:translateY(10px);animation:heroin .8s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:1.15s}.hero .paths .tlink{opacity:1;transform:none;animation:none}}

/* ---------- contextual conversion lines ---------- */
.ctx{display:block;margin-top:14px;font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;color:var(--blue);opacity:.85;transition:opacity .3s}
a.ctx:hover,.xc:hover .ctx{opacity:1;text-decoration:underline;text-underline-offset:4px}
.exp .item .ctx{color:#8FA0FF}
.xc .ctx{margin-top:12px}
.conf{display:block;margin-top:18px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.ctab .conf{color:#8FA0FF;opacity:.8}
.std .g8 > .body .h2{font-size:clamp(26px,3vw,38px);margin-bottom:14px;max-width:22ch}
.std .g8 > .body .h3{font-family:var(--body);font-weight:500;font-size:18px;margin:0 0 14px}
.std .lead2{color:var(--muted);max-width:56ch;margin-bottom:8px}
.std .mt{margin-top:26px}
.per.rec li{padding:10px 0}

/* ---------- homepage conversion block ---------- */
.conv{padding:clamp(80px,10vw,140px) 0;border-top:1px solid var(--line)}
.conv .g8 > .eyebrow{grid-column:1 / span 1;padding-top:8px}
.conv .g8 > .body{grid-column:2 / span 6}
.conv h2{font-size:clamp(30px,4vw,54px);line-height:1.05;max-width:16ch;margin-bottom:22px}
.conv p{color:var(--muted);max-width:52ch;font-size:17px;margin-bottom:26px}

/* ---------- industries: clean grid ---------- */
.igrid{display:grid;grid-template-columns:1fr 1fr;gap:0 64px;margin-top:28px}
.ind .igrid{grid-column:2 / span 6;margin-top:36px}
.ic{border-top:1px solid var(--line);padding:30px 0 40px;position:relative}
.ic::before{content:"";position:absolute;left:0;top:-1px;height:2px;width:0;background:var(--blue);transition:width .5s cubic-bezier(.2,.7,.2,1)}
.ic:hover::before{width:100%}
.ic .num{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--muted);margin-bottom:18px}
.ic h3{font-size:clamp(24px,2.6vw,32px);margin-bottom:10px;transition:color .3s}
.ic:hover h3{color:var(--blue)}
.ic p{color:var(--muted);font-size:15.5px;max-width:42ch;margin-bottom:14px}
.ic ul{list-style:none;margin:0;padding:0;font-size:15px;color:var(--text)}
.ic li{display:inline;}
.ic li::after{content:" · ";color:var(--muted)}
.ic li:last-child::after{content:none}
.indc .igrid{margin-top:0}
@media (max-width:820px){.igrid{grid-template-columns:1fr;gap:0}.ic{padding:24px 0 30px}}

/* ---------- about: word from the president ---------- */
.word{background:var(--paper2)}
.wgrid{display:grid;grid-template-columns:220px 1fr;gap:48px;align-items:start}
.wgrid figure{margin:0}
.wgrid img{width:100%;height:auto;display:block;background:var(--band)}
.wgrid figcaption{margin-top:14px;font-family:var(--body);font-weight:500;font-size:15px;line-height:1.5}
.wgrid figcaption span{font-family:var(--mono);font-weight:400;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
.wgrid blockquote{margin:0;padding:0;border-left:2px solid var(--blue);padding-left:28px}
.wgrid blockquote p{font-family:var(--display);font-stretch:112.5%;font-size:clamp(19px,2vw,24px);line-height:1.4;margin:0 0 18px;max-width:34ch}
.wgrid blockquote p:first-child{color:var(--ink)}
.wgrid blockquote p:last-child{margin-bottom:0}
@media (max-width:820px){.wgrid{grid-template-columns:1fr;gap:28px}.wgrid figure{max-width:200px}.wgrid blockquote{padding-left:18px}}

/* ---------- proof component: anonymised case notes ---------- */
.cases .g8 > .eyebrow{grid-column:1 / span 1;padding-top:8px}
.cn{grid-column:2 / span 6;list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.cn li{display:grid;grid-template-columns:260px 1fr;gap:32px;padding:20px 0;border-bottom:1px solid var(--line);align-items:baseline}
.cn .tag{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue)}
.cn .ln{font-size:16px;color:var(--text)}
@media (max-width:820px){.cn li{grid-template-columns:1fr;gap:6px}}

/* ---------- contact: minimal ---------- */
.contact .lead address{margin-top:0;font-size:17px;line-height:1.9}
.contact .lead .conf{margin-top:22px}
label .opt{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.hero h1{max-width:17ch}
.conv h2{max-width:22ch}

/* ---------- paths (two links) + calendar link ---------- */
.paths{display:flex;flex-wrap:wrap;gap:14px 36px;align-items:center}
.tlink.cal::after{content:"\2197"}
.ctab .paths{margin-top:6px}
.conv .paths{margin-bottom:4px}

/* ---------- Calendly overlay ---------- */
.calov{position:fixed;inset:0;background:rgba(20,16,52,.72);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .35s}
.calov.open{opacity:1;pointer-events:auto}
.calbox{position:relative;width:min(1000px,94vw);height:min(760px,90vh);background:#F4F4F8;overflow:hidden;transform:translateY(16px);transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.calov.open .calbox{transform:none}
.calbox iframe{width:100%;height:100%;border:0;display:block}
.calx{position:absolute;right:10px;top:8px;z-index:2;width:36px;height:36px;border:0;background:var(--ink);color:#fff;font-size:22px;line-height:1;cursor:pointer}

/* ---------- contact: conversational form + inline calendar ---------- */
.contact2 .g8 > .eyebrow{grid-column:1 / span 1;padding-top:8px}
.contact2 .g8 > form{grid-column:2 / span 3}
.contact2 .g8 > .calside{grid-column:6 / span 3}
.conv-form fieldset{border:0;margin:0;padding:0}
.conv-form legend{display:block;font-family:var(--display);font-stretch:112.5%;font-size:clamp(22px,2.4vw,30px);line-height:1.2;margin-bottom:22px;padding:0}
.conv-form legend .opt{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);vertical-align:middle}
.steps-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:26px;border-bottom:1px solid var(--line);padding-bottom:12px}
.steps-h .prog{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--blue)}
.steps-h .conf{margin-top:0}
.choices{display:grid;gap:10px}
.choice{display:block;position:relative;cursor:pointer}
.choice input{position:absolute;opacity:0;width:1px;height:1px}
.choice span{display:block;padding:16px 18px;border:1px solid var(--line);font-size:16px;transition:border-color .25s,background .25s,transform .25s}
.choice:hover span{border-color:var(--ink)}
.choice input:checked + span{border-color:var(--blue);background:rgba(35,61,255,.06);color:var(--blue)}
.choice input:focus-visible + span{outline:2px solid var(--blue);outline-offset:2px}
.conv-form .nav{display:flex;gap:16px;align-items:center;margin-top:8px}
.conv-form .ghost{background:none;border:0;padding:0;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);cursor:pointer}
.conv-form .ghost:hover{color:var(--ink)}
.conv-form .send{margin-top:0}
html.js .conv-form .step{display:none;opacity:0;transform:translateY(10px)}
html.js .conv-form .step.on{display:block;animation:stepin .45s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes stepin{to{opacity:1;transform:none}}
html:not(.js) .conv-form .step{margin-bottom:34px}
html:not(.js) .conv-form .nav .ghost,html:not(.js) .conv-form .nav [data-next]{display:none}
html:not(.js) .steps-h .prog{display:none}
.calside > .eyebrow{display:block;margin-bottom:12px}
.calside > p{color:var(--muted);margin-bottom:18px}
.calinline{background:var(--paper2);min-height:560px}
.calinline iframe{width:100%;height:640px;border:0;display:block}
.calfall{margin:16px 0 26px}
.calside address{font-style:normal;font-size:15px;line-height:1.9;color:var(--muted)}
.calside address a{text-decoration:none;border-bottom:1px solid var(--line);color:var(--text)}
@media (max-width:820px){.contact2 .g8 > .calside{margin-top:48px}.calinline{min-height:0}.calinline iframe{height:620px}}
@media (prefers-reduced-motion:reduce){html.js .conv-form .step.on{animation:none;opacity:1;transform:none}}
.std.contact2 .g8 > form{grid-column:2 / span 4}
.std.contact2 .g8 > .calside{grid-column:6 / span 3}
.conv-form .choice{font-family:var(--body);font-size:16px;letter-spacing:0;text-transform:none;color:var(--text);display:block}
.conv-form fieldset{display:grid;gap:18px}
.conv-form .step .nav{margin-top:0}
.contact2 .g8{align-items:start}.conv-form{align-content:start}

.exp .map .cap{margin-top:0}
.exp .map{margin-top:-20px}

/* ---------- final pass: semantics, a11y, links ---------- */
h2.eyebrow{font-weight:400;font-stretch:normal;letter-spacing:.14em;line-height:1.5;text-wrap:auto}
.skip{position:absolute;left:-999px;top:0;z-index:300;background:var(--blue);color:#fff;padding:10px 16px;font-family:var(--mono);font-size:12px;text-decoration:none}
.skip:focus{left:12px;top:12px}
.backline{display:flex;flex-wrap:wrap;gap:14px 40px;align-items:baseline}
.related{margin:0;font-size:15px;color:var(--muted)}
.related span{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-right:10px}
.related a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--line)}
.related a:hover{color:var(--blue);border-color:var(--blue)}
.xlinks{margin:36px 0 0;color:var(--muted);font-size:15.5px;max-width:64ch}
.xlinks a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--line)}
.xlinks a:hover{color:var(--blue);border-color:var(--blue)}
.exp .item .tlink:focus-visible,.band a:focus-visible{outline-color:#8FA0FF}
.std h2.eyebrow,.std .g8 > h2.eyebrow{font-size:11.5px;margin:0;max-width:none;font-family:var(--mono);color:var(--muted);line-height:1.6;letter-spacing:.14em}
