/* 3AIP static site — single stylesheet. No JavaScript required. */
@import url('https://use.typekit.net/zmj7uzc.css');
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

:root{
  --navy-950:#0B1422; --navy-900:#14243D; --navy-850:#192B47; --navy-800:#203451; --navy-700:#344B69;
  --navy-600:#536780; --navy-400:#8795A6; --navy-300:#AAB4C0; --navy-200:#CCD2D9; --navy-100:#E4E7EA;
  --paper-50:#FFFFFF; --paper-100:#F1F5F4; --paper-200:#D9E3E2; --paper-300:#C1D0D1;
  --brass-800:#6F5518; --brass-700:#80651F; --brass-500:#A8842C; --brass-300:#CDB675; --brass-100:#EEE7D1;
  --ink:#182433; --ink-600:#4B5A64; --ink-500:#64727A; --ink-400:#849096;
  --font:'articulat-cf','Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --maxw:80rem;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font);font-size:15px;line-height:1.6;color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
:focus-visible{outline:2px solid var(--brass-500);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--navy-900);color:#fff;padding:.6rem 1rem;z-index:100}
.skip:focus{left:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.5rem}
em{font-style:italic;font-weight:500;color:var(--brass-700)}
.on-dark em,.on-brass em{color:inherit}
.on-dark em{color:var(--brass-300)}

/* ── Header ── */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--paper-200)}
.site-header .wrap{height:74px;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.logo img{height:36px;width:auto}
.logo .mark{display:none}
.nav{display:none;align-items:center;gap:.25rem}
.nav a{text-decoration:none;padding:.5rem .85rem;border-radius:999px;font-size:13.5px;font-weight:600;color:var(--ink-500);transition:background .15s,color .15s}
.nav a:hover{color:var(--ink);background:var(--paper-100)}
.nav a[aria-current="page"]{color:var(--navy-900);background:var(--paper-100)}
.nav a.cta,.m-menu a.cta{background:var(--navy-900);color:#fff;font-weight:700;padding:.6rem 1.25rem;margin-left:.6rem}
.nav a.cta:hover{background:var(--navy-800)}
.m-menu{display:block;position:relative}
.m-menu summary{list-style:none;cursor:pointer;padding:.5rem;color:var(--ink-500)}
.m-menu summary::-webkit-details-marker{display:none}
.m-menu .panel{position:fixed;left:0;right:0;top:74px;background:#fff;border-top:1px solid var(--paper-200);box-shadow:0 12px 24px rgba(11,20,34,.12);padding:.5rem 1.5rem 1.25rem}
.m-menu .panel a{display:block;text-decoration:none;padding:.8rem 0;border-bottom:1px solid var(--paper-100);font-weight:500;color:var(--ink)}
.m-menu .panel a[aria-current="page"]{color:var(--brass-700);font-weight:700}
.m-menu .panel a.cta{margin:1rem 0 0;text-align:center;border-radius:4px;border:0}
.m-menu .icon-close{display:none}
.m-menu[open] .icon-open{display:none}
.m-menu[open] .icon-close{display:block}
@media(min-width:1024px){.nav{display:flex}.m-menu{display:none}}
@media(max-width:639px){.logo .full{display:none}.logo .mark{display:block}}

/* ── Type & layout helpers ── */
.section{padding:4rem 0}
@media(min-width:1024px){.section{padding:5rem 0}}
.bg-paper{background:var(--paper-100)}
.bg-navy{background:var(--navy-900);color:#fff}
.bg-brass{background:var(--brass-500);color:var(--navy-950)}
.eyebrow{display:flex;align-items:center;gap:.75rem;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:var(--brass-700)}
.eyebrow::after{content:"";}
.eyebrow .rule{width:2rem;height:1px;background:var(--brass-500)}
.on-dark .eyebrow,.eyebrow.inv{color:var(--brass-300)}
.on-dark .eyebrow .rule,.eyebrow.inv .rule{background:var(--brass-300)}
.on-brass .eyebrow{color:var(--navy-900)}
.on-brass .eyebrow .rule{background:var(--navy-900)}
h1,h2{color:var(--navy-900);font-weight:700}
h1{font-size:clamp(2.6rem,6vw,5.6rem);line-height:.96;letter-spacing:-.05em;max-width:15ch}
h2{font-size:clamp(2.1rem,4.2vw,4rem);line-height:1.03;letter-spacing:-.04em}
h3{font-size:1.4rem;line-height:1.2;font-weight:700;color:var(--navy-900)}
.on-dark h1,.on-dark h2,.on-dark h3{color:#fff}
.on-brass h2{color:var(--navy-950)}
.lead{font-size:17px;font-weight:500;line-height:1.72;color:var(--ink-600);max-width:42rem}
.copy{font-size:15px;font-weight:500;line-height:1.75;color:var(--ink-600)}
.copy>*+*{margin-top:1rem}
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mt-5{margin-top:2.5rem}.mt-6{margin-top:3rem}
.split{display:grid;gap:1.5rem}
.split .aside{align-self:end}
@media(min-width:1024px){.split{grid-template-columns:1fr 1fr;gap:3rem}}
.btn{display:inline-flex;align-items:center;gap:.6rem;border-radius:999px;padding:.9rem 1.75rem;font-size:14px;font-weight:700;text-decoration:none;background:var(--navy-900);color:#fff;border:2px solid var(--navy-900);transition:background .15s}
.btn:hover{background:var(--navy-800)}
.btn.ghost{background:transparent;color:var(--navy-900)}
.btn.ghost:hover{background:#fff}
.btn.brass{background:var(--brass-500);border-color:var(--brass-500);color:var(--navy-950)}
.btns{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}
.arrow{width:16px;height:16px}
.card{border-radius:1rem;padding:1.75rem}
.card.line{border:1px solid var(--paper-200);background:#fff}
.card.dark{background:var(--navy-900);color:#fff}
.card.dark h3{color:#fff}
.card.pale{background:var(--paper-100);border:1px solid var(--paper-200)}
.card .num{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:50%;background:var(--navy-900);color:#fff;font-size:12px;font-weight:700}
.card .num.brass{background:var(--brass-500);color:var(--navy-950)}
.card p{margin-top:.75rem;font-size:14px;font-weight:500;line-height:1.7;color:var(--ink-600)}
.card.dark p{color:var(--navy-200)}
.grid{display:grid;gap:1.25rem}
.g2{grid-template-columns:1fr}.g3{grid-template-columns:1fr}.g4{grid-template-columns:1fr}
@media(min-width:640px){.g4{grid-template-columns:repeat(2,1fr)}}
@media(min-width:768px){.g2,.g3{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}}
.kicker{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--brass-700)}
.dark .kicker,.on-dark .kicker{color:var(--brass-300)}
.label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-400)}
.icon{width:20px;height:20px;color:var(--brass-700)}
.dark .icon,.on-dark .icon{color:var(--brass-300)}
.row-between{display:flex;justify-content:space-between;align-items:center}

/* Editorial review marker (remove before publishing) */
.verify{display:inline-block;margin-left:.5rem;padding:.1rem .45rem;border-radius:4px;background:#FFF1C2;border:1px dashed #B58900;color:#6B4E00;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;font-style:normal;line-height:1.5}
.on-dark .verify,.dark .verify{background:#3a2f10;border-color:var(--brass-300);color:var(--brass-100)}

/* ── Hero ── */
.hero{position:relative;overflow:hidden;background:var(--paper-100);padding:4rem 0}
@media(min-width:1024px){.hero{padding:6rem 0}}
.hero .bg{position:absolute;inset:0;width:100%;height:100%;opacity:.9}
.hero .dots{position:absolute;inset:0;width:100%;height:100%;color:var(--navy-900);opacity:.07}
.hero .in{position:relative;display:grid;gap:2.5rem;align-items:center}
@media(min-width:1024px){.hero .in{grid-template-columns:7fr 5fr;gap:3.5rem}}
.hero .tag{margin-bottom:1.25rem;font-size:13px;font-weight:700;color:var(--navy-700)}
.hero .lead{margin-top:1.75rem}
.hero .fig{position:relative}
.figure-card{background:#fff;border:1px solid var(--paper-200);border-radius:28px;padding:1.25rem;box-shadow:0 18px 40px -22px rgba(20,36,61,.35)}
.figure-card svg{width:100%;height:auto}
.figure-card figcaption{margin-top:.5rem;font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-400);text-align:right}
.badge{position:absolute;left:-.5rem;bottom:-1.25rem;max-width:16rem;border-radius:1rem;background:var(--brass-500);color:var(--navy-950);padding:1.1rem 1.3rem;box-shadow:0 14px 30px -12px rgba(11,20,34,.45)}
.badge .k{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.14em}
.badge .v{margin-top:.25rem;font-size:1.25rem;font-weight:700;line-height:1.15}
.page-hero h1{max-width:15ch}

/* ── Bands ── */
.marquee-wrap{overflow:hidden;border-bottom:1px solid var(--paper-200);background:#fff;padding:2rem 0}
.marquee-wrap .head{display:flex;align-items:center;gap:1.5rem;margin-bottom:1.25rem}
.marquee-wrap .head span:first-child{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--ink-500)}
.marquee-wrap .head .line{flex:1;height:1px;background:var(--paper-200)}
.marquee{display:flex;width:max-content;animation:marquee 42s linear infinite}
.marquee .track{display:flex;flex-shrink:0;align-items:center}
.marquee span{white-space:nowrap;padding:0 2rem;font-size:19px;font-weight:700;color:var(--ink-400)}
@keyframes marquee{to{transform:translateX(-50%)}}
.stats{background:var(--navy-900);color:#fff}
.stats .grid{gap:0}
.stat{padding:1.75rem 1.25rem;border-bottom:1px solid var(--navy-700)}
.stat .v{font-size:2.4rem;font-weight:700;line-height:1;color:var(--brass-300);font-variant-numeric:tabular-nums;font-feature-settings:'tnum'}
.stat .l{margin-top:.5rem;font-size:13px;font-weight:700}
.stat .s{margin-top:.15rem;font-size:11.5px;color:var(--navy-300)}
@media(min-width:640px){.stats .grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.stats .grid{grid-template-columns:repeat(5,1fr)}.stat{border-bottom:0;border-right:1px solid var(--navy-700)}.stat:last-child{border-right:0}}
.band{background:var(--navy-900);color:#fff;padding:1rem 0;font-size:12px;font-weight:600;line-height:1.7;color:var(--navy-100)}
.band .sep{margin:0 .5rem;color:var(--brass-300)}
.strip{background:var(--brass-500);padding:1.75rem 0}
.strip .wrap{display:flex;flex-direction:column;gap:1.25rem}
.strip p{font-size:14px;font-weight:700;line-height:1.6;color:var(--navy-950);max-width:56rem}
@media(min-width:768px){.strip .wrap{flex-direction:row;align-items:center;justify-content:space-between}}

/* ── Pipeline (signature motif) ── */
.pipeline{margin-top:2.5rem;border-radius:28px;overflow:hidden;background:var(--navy-900);display:grid}
.pipeline .step{position:relative;padding:1.75rem;color:#fff;border-bottom:1px solid var(--navy-700)}
.pipeline .step:last-child{border-bottom:0}
.pipeline .step::before{content:"";position:absolute;left:0;top:0;height:4px;width:100%;background:var(--brass-500);transform-origin:left;animation:grow .9s cubic-bezier(.22,1,.36,1) both}
.pipeline .step:nth-child(2)::before{animation-delay:.15s}.pipeline .step:nth-child(3)::before{animation-delay:.3s}.pipeline .step:nth-child(4)::before{animation-delay:.45s}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.pipeline .top{display:flex;justify-content:space-between;align-items:center}
.pipeline .n{font-size:12px;font-weight:700;color:var(--brass-300);font-variant-numeric:tabular-nums}
.pipeline h3{margin-top:2.25rem;font-size:1.3rem;color:#fff}
.pipeline p{margin-top:.75rem;font-size:13px;font-weight:500;line-height:1.65;color:var(--navy-200)}
.pipeline .step:not(:last-child)::after{content:"";position:absolute;right:1.25rem;bottom:-1px;width:10px;height:10px;border-right:2px solid var(--brass-300);border-bottom:2px solid var(--brass-300);transform:rotate(45deg) translate(-4px,-4px);opacity:.0}
@media(min-width:640px){.pipeline{grid-template-columns:repeat(2,1fr)}.pipeline .step{border-right:1px solid var(--navy-700)}}
@media(min-width:1024px){.pipeline{grid-template-columns:repeat(4,1fr)}.pipeline .step{border-bottom:0;min-height:20rem}}
.pipeline.on-brass-bg{background:var(--navy-900)}
.mini-pipe{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.mini-pipe span{font-size:9.5px;color:var(--navy-300);white-space:nowrap}
.mini-pipe i{font-style:normal;color:var(--navy-400);font-size:10px}

/* ── Content blocks ── */
.pillar{display:flex;flex-direction:column;min-height:14rem}
.pillar h3{margin-top:2rem;font-size:1.5rem}
.svc{display:flex;flex-direction:column;justify-content:space-between;min-height:15rem;text-decoration:none;border-radius:1rem;padding:1.75rem;transition:transform .2s}
.svc:hover{transform:translateY(-4px)}
.svc h3{font-size:1.45rem;margin-top:2rem}
.svc p{margin-top:.75rem;font-size:14px;font-weight:500;line-height:1.65;color:var(--ink-500);max-width:48rem}
.svc.dark{background:var(--navy-900);color:#fff}.svc.dark h3{color:#fff}.svc.dark p{color:var(--navy-200)}
.svc.line{border:1px solid var(--paper-200);background:#fff}
.svc .no{font-size:12px;font-weight:700;color:var(--brass-700)}
.svc.dark .no{color:var(--brass-300)}
.svc.wide{grid-column:1/-1;min-height:11rem}
.case{background:#fff;border-radius:1rem;padding:2rem}
@media(min-width:1024px){.case{padding:2.5rem}}
.case dl{margin:2rem 0 0;display:grid;gap:1.1rem}
.case dl>div{display:grid;grid-template-columns:5.5rem 1fr;gap:1rem}
.case dt{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-400);padding-top:.2rem}
.case dd{margin:0;font-size:14px;font-weight:500;line-height:1.65;color:var(--ink-600)}
.case dd.res{font-weight:700;color:var(--navy-900)}
.case blockquote{margin-top:1.75rem;border-top:1px solid var(--paper-200);padding-top:1.5rem;font-size:1.1rem;font-style:italic;font-weight:500;line-height:1.55;color:var(--brass-700)}
.quotes{columns:1;column-gap:1.25rem}
@media(min-width:768px){.quotes{columns:2}}
@media(min-width:1024px){.quotes{columns:3}}
.quotes blockquote{break-inside:avoid;margin-bottom:1.25rem;border:1px solid var(--paper-200);border-radius:1rem;background:#fff;padding:1.75rem}
.quotes p{font-size:17px;font-weight:600;line-height:1.55;color:var(--navy-900)}
.quotes footer{margin-top:1.5rem;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--brass-700)}
.chips{display:flex;flex-wrap:wrap;gap:.75rem}
.chip{border:1px solid var(--navy-600);background:var(--navy-850);border-radius:999px;padding:.7rem 1.25rem;font-size:14px;font-weight:700;color:#fff}
.chip b{margin-right:.7rem;color:var(--brass-300);font-weight:700}
.chip.light{background:#fff;border-color:var(--paper-200);color:var(--navy-900)}
.chip.brass{background:var(--brass-500);border-color:var(--brass-500);color:var(--navy-950)}
.chip.link{text-decoration:none;transition:border-color .15s}
.chip.link:hover{border-color:var(--navy-600)}
.sample{display:flex;flex-direction:column;min-height:14rem}
.sample .top{display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.sample .top .num{background:var(--brass-500);color:var(--navy-950);width:2.5rem;height:2.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}
.sample .top .dom{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-400);text-align:right}
.sample h3{margin-top:1.5rem;font-size:1.2rem}
.sample p{flex:1}
.link-u{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.25rem;font-size:12px;font-weight:700;color:var(--navy-900);text-decoration:underline;text-decoration-color:var(--brass-500);text-underline-offset:4px}

/* FAQ */
.faq{margin-top:2.25rem;border:1px solid var(--paper-200);border-radius:1rem;overflow:hidden}
.faq details{border-bottom:1px solid var(--paper-200)}
.faq details:last-child{border-bottom:0}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding:1.25rem 1.5rem;font-size:15px;font-weight:700;line-height:1.4;color:var(--navy-900);background:#fff}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{background:var(--paper-100)}
.faq summary::after{content:"+";font-size:22px;line-height:1;color:var(--brass-700);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .ans{padding:1.25rem 1.5rem;background:var(--paper-100);font-size:14px;font-weight:500;line-height:1.75;color:var(--ink-600)}
.two-col{display:grid;gap:2.5rem}
@media(min-width:1024px){.two-col.s75{grid-template-columns:7fr 5fr;gap:3.5rem}.two-col.s57{grid-template-columns:5fr 7fr;gap:3.5rem}}
.callout{border-radius:28px;background:var(--brass-500);color:var(--navy-950);padding:2rem;align-self:start}
.callout h3{margin-top:1.25rem;font-size:1.8rem;color:var(--navy-950);line-height:1.15}
.callout p{margin-top:1.25rem;font-size:14px;font-weight:600;line-height:1.75}
.callout .kicker{color:var(--navy-950)}

/* Services extras */
.svc-card{display:flex;flex-direction:column;min-height:20rem;border-radius:1rem;padding:1.75rem}
.svc-card .top{display:flex;justify-content:space-between;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.14em}
.svc-card h3{margin-top:2.5rem;font-size:1.5rem}
.svc-card p{margin-top:.75rem;font-size:14px;font-weight:500;line-height:1.7}
.svc-card .out{margin-top:auto;padding-top:1.25rem;border-top:1px solid rgba(0,0,0,.1);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;line-height:1.6}
.svc-card .meta{margin-top:1.25rem;font-size:12px;font-weight:600;line-height:1.6;opacity:.85}
.svc-card.dark{background:var(--navy-900);color:#fff}.svc-card.dark h3{color:#fff}.svc-card.dark p{color:var(--navy-200)}.svc-card.dark .top{color:var(--brass-300)}.svc-card.dark .out{border-color:var(--navy-700);color:var(--brass-300)}
.svc-card.brass{background:var(--brass-500);color:var(--navy-950)}.svc-card.brass p{color:var(--navy-900)}.svc-card.brass .top{color:var(--brass-800)}
.svc-card.light{border:1px solid var(--paper-200);background:#fff}.svc-card.light p{color:var(--ink-600)}.svc-card.light .top{color:var(--brass-800)}.svc-card.light .out{color:var(--navy-800)}
.valid{margin-top:1.5rem;border-radius:28px;overflow:hidden;background:var(--navy-900);color:#fff;display:grid}
.valid .l{padding:2rem;border-bottom:1px solid var(--navy-700)}
.valid .l h3{margin-top:1.25rem;font-size:1.9rem;color:#fff}
.valid .l p{margin-top:1rem;font-size:14px;font-weight:500;line-height:1.75;color:var(--navy-200)}
.valid .steps{display:grid}
.valid .steps>div{padding:1.75rem;border-bottom:1px solid var(--navy-700)}
.valid .steps .t{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--brass-300)}
.valid .steps p{margin-top:1rem;font-size:13px;font-weight:500;line-height:1.7;color:var(--navy-200)}
.valid .credit{background:var(--brass-500);color:var(--navy-950);padding:1.75rem}
.valid .credit p{margin-top:.5rem;font-size:16px;font-weight:700;line-height:1.55}
@media(min-width:1024px){.valid{grid-template-columns:4fr 8fr}.valid .l{border-bottom:0;border-right:1px solid var(--navy-700);padding:2.5rem}.valid .steps{grid-template-columns:repeat(3,1fr)}.valid .steps>div{border-bottom:0;border-right:1px solid var(--navy-700)}.valid .steps>div:last-child{border-right:0}.valid .right{display:flex;flex-direction:column}.valid .right .steps{flex:1}.valid .credit{border-top:1px solid var(--navy-700)}}
.mon{display:grid;gap:1.5rem 2rem}
@media(min-width:640px){.mon{grid-template-columns:1fr 1fr}}
.mon>div{border-top:1px solid var(--paper-300);padding-top:1rem}
.mon h3{margin-top:.4rem;font-size:1.1rem}
.mon p{margin-top:.5rem;font-size:13px;font-weight:500;line-height:1.6;color:var(--ink-500)}
.mon .n{font-size:11px;font-weight:700;color:var(--brass-700)}

/* Industries */
.tech{display:grid;border:1px solid var(--paper-200);border-radius:28px;overflow:hidden;background:#fff}
.tech .body{padding:1.75rem}
.tech .body h3{margin-top:.75rem;font-size:1.6rem}
.tech .body .sum{margin-top:1rem;font-size:14px;font-weight:500;line-height:1.75;color:var(--ink-600)}
.tech .impact{margin-top:1.5rem;border-radius:1rem;background:var(--brass-500);padding:1.25rem}
.tech .impact p{margin-top:.5rem;font-size:13px;font-weight:700;line-height:1.55;color:var(--navy-950)}
.tech .impact .label{color:var(--navy-800)}
.tech ol li{display:flex;gap:.75rem;border-bottom:1px solid var(--paper-200);padding-bottom:.75rem;margin-top:.75rem;font-size:13px;font-weight:600;line-height:1.4;color:var(--navy-900)}
.tech ol li b{font-size:10px;color:var(--brass-700);padding-top:.15rem}
.tech svg.art{width:100%;height:9rem;background:var(--paper-100);border-bottom:1px solid var(--paper-200)}
.tech-list{display:grid;gap:1.25rem}
@media(min-width:768px){.tech-list{grid-template-columns:repeat(2,1fr)}}
.ind{overflow:hidden;border-radius:28px;background:#fff;display:grid;scroll-margin-top:96px}
@media(min-width:1024px){.ind{grid-template-columns:8fr 4fr}}
.ind .main{padding:2rem}
@media(min-width:1024px){.ind .main{padding:2.5rem}}
.ind h3{margin-top:.75rem;font-size:1.65rem;line-height:1.2}
.ind .cols{margin-top:2rem;display:grid;gap:1.75rem}
@media(min-width:768px){.ind .cols{grid-template-columns:1fr 1fr}}
.ind .cols p{margin-top:.5rem;font-size:14px;font-weight:500;line-height:1.75;color:var(--ink-600)}
.ind .outcome{margin-top:2rem;border-radius:1rem;background:var(--brass-500);padding:1.5rem}
.ind .outcome p{margin-top:.5rem;font-size:14px;font-weight:700;line-height:1.6;color:var(--navy-950)}
.ind .outcome .label{color:var(--navy-800)}
.ind aside{background:var(--navy-900);color:#fff;padding:2rem}
@media(min-width:1024px){.ind aside{padding:2.5rem}}
.ind aside li{display:flex;gap:.75rem;border-bottom:1px solid var(--navy-700);padding-bottom:1rem;margin-top:1rem;font-size:14px;font-weight:600;line-height:1.4}
.ind aside li b{font-size:10px;color:var(--brass-300);padding-top:.2rem}
.ind aside .note{margin-top:1.75rem;font-size:11px;font-weight:500;line-height:1.6;color:var(--navy-300)}
.ind aside a{display:inline-flex;gap:.5rem;align-items:center;margin-top:1.5rem;font-size:13px;font-weight:700;color:var(--brass-300);text-decoration:none}
.map-box{margin-top:2.5rem;border-radius:28px;background:var(--navy-900);padding:1.25rem}
@media(min-width:1024px){.map-box{padding:2rem}}
.map-box svg{width:100%;height:auto;max-height:18rem}
.jur{display:flex;flex-direction:column}
.jur .code{display:flex;width:2.5rem;height:2.5rem;border-radius:50%;background:var(--navy-900);color:var(--brass-300);align-items:center;justify-content:center;font-size:12px;font-weight:700}
.jur h3{margin-top:1.25rem;font-size:1.2rem}
.jur .db{margin-top:.5rem;font-size:12px;font-weight:500;color:var(--ink-500)}
.jur .lang{margin-top:.75rem;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--brass-700)}

/* Trust */
.trust{display:flex;flex-direction:column;min-height:16rem;border-radius:1rem;padding:1.75rem}
.trust h3{margin-top:2rem;font-size:1.35rem}
.trust p{margin-top:.75rem;font-size:13px;font-weight:500;line-height:1.72}
.trust.dark{background:var(--navy-900);color:#fff}.trust.dark h3{color:#fff}.trust.dark p{color:var(--navy-200)}
.trust.line{border:1px solid var(--paper-200);background:#fff}.trust.line p{color:var(--ink-600)}
.trust.dark .num{background:var(--brass-500);color:var(--navy-950)}
.three{margin-top:2.5rem;border-radius:28px;overflow:hidden;background:var(--navy-900);display:grid;color:#fff}
.three article{padding:2rem;border-bottom:1px solid var(--navy-700)}
.three article:last-child{border-bottom:0}
.three .n{font-size:11px;font-weight:700;color:var(--brass-300)}
.three h3{margin-top:2rem;font-size:1.4rem;color:#fff}
.three p{margin-top:1rem;font-size:13px;font-weight:500;line-height:1.75;color:var(--navy-200)}
@media(min-width:1024px){.three{grid-template-columns:repeat(3,1fr)}.three article{border-bottom:0;border-right:1px solid var(--navy-700)}.three article:last-child{border-right:0}}
.panel-card{border-radius:28px;padding:2rem}
@media(min-width:1024px){.panel-card{padding:2.5rem}}
.panel-card h2{margin-top:1.75rem;font-size:2.1rem;letter-spacing:-.02em}
.ticks{margin-top:1.75rem;display:grid;gap:.75rem}
.ticks li{display:flex;gap:.75rem;align-items:flex-start;font-size:14px;font-weight:600;color:var(--navy-900)}
.ticks li::before{content:"✓";flex:none;display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border-radius:50%;background:var(--brass-500);font-size:10px;margin-top:.1rem}
.status{margin-top:.75rem;border:1px solid var(--navy-700);background:var(--navy-850);border-radius:1rem;padding:1.25rem}
.status b{display:block;font-size:14px;color:var(--brass-300)}
.status span{display:block;margin-top:.25rem;font-size:12px;font-weight:500;color:var(--navy-200)}

/* Team */
.member{display:flex;flex-direction:column;gap:1rem;min-height:11rem;border:1px solid var(--paper-200);border-radius:1rem;background:#fff;padding:1.5rem;transition:transform .2s}
.member:hover{transform:translateY(-4px)}
.avatar{width:4rem;height:4rem;border-radius:50%;border:2px solid;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:20px;flex:none}
.av0{background:#F1F5F4;border-color:#D9E3E2;color:#14243D}.av1{background:#EEE7D1;border-color:#DDD0A2;color:#6F5518}.av2{background:#E4E7EA;border-color:#CCD2D9;color:#203451}
.member .nm{font-weight:700;font-size:15px;line-height:1.3;color:var(--ink);letter-spacing:-.01em}
.member .rl{margin-top:.25rem;font-size:12.5px;line-height:1.4;color:var(--ink-500)}
.advisor{border:1px solid var(--paper-200);border-radius:1rem;background:#fff;padding:1.75rem}
.advisor .hd{display:flex;gap:1.25rem;align-items:flex-start;margin-bottom:1rem}
.advisor .avatar{width:3.5rem;height:3.5rem;font-size:18px}
.advisor .role{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--navy-600)}
.advisor .focus{margin-top:.15rem;font-size:12px;color:var(--ink-400)}
.advisor p{font-size:13px;line-height:1.65;color:var(--ink-500)}
.disc{border:1px solid var(--navy-700);background:var(--navy-850);border-radius:1rem;padding:1.5rem}
.disc b{display:block;font-size:16px;line-height:1.3;color:#fff}
.disc p{margin-top:.4rem;font-size:12.5px;line-height:1.6;color:var(--navy-300)}
.contact-card{border-radius:1rem;background:#fff;padding:1.75rem}
.contact-card a{display:block;margin-top:.4rem;font-size:12px;color:var(--navy-700);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}

/* Contact */
.form{border-radius:28px;background:var(--paper-100);padding:1.75rem}
@media(min-width:1024px){.form{padding:2.25rem}}
.form h2{font-size:1.9rem;letter-spacing:-.02em}
.form label{display:block}
.form label>span{display:block;margin-bottom:.5rem;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-500)}
.form .fields{margin-top:1.75rem;display:grid;gap:1.25rem}
@media(min-width:640px){.form .two{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}}
.input{width:100%;border:1px solid var(--paper-300);border-radius:.75rem;background:#fff;padding:.875rem 1rem;color:#24313F;font:inherit;font-size:14px;outline:none;transition:border-color .15s,box-shadow .15s}
.input:focus{border-color:var(--brass-500);box-shadow:0 0 0 3px rgba(168,132,44,.14)}
textarea.input{resize:vertical;min-height:9rem}
.assure{margin-top:1.25rem;display:grid;gap:1rem}
@media(min-width:640px){.assure{grid-template-columns:1fr 1fr}}
.assure>div{border:1px solid var(--paper-200);border-radius:1rem;padding:1.25rem}
.assure b{display:flex;gap:.5rem;align-items:center;font-size:14px;color:var(--navy-900)}
.assure b::before{content:"✓";display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border-radius:50%;background:var(--brass-500);font-size:10px}
.assure p{margin-top:.5rem;font-size:12px;font-weight:500;line-height:1.6;color:var(--ink-500)}
.side{display:grid;gap:1.25rem;align-content:start}
.side .box{border-radius:28px;padding:2rem}
.side .box a{font-weight:700}
.side h2{margin-top:1.25rem;font-size:1.9rem;letter-spacing:-.02em}
.models{display:grid;gap:1.25rem}
@media(min-width:1024px){.models{grid-template-columns:repeat(3,1fr)}}
.model{display:flex;flex-direction:column;border-radius:1rem;padding:1.75rem}
.model h3{font-size:1.4rem}
.model .d{margin-top:.75rem;font-size:14px;font-weight:500;line-height:1.7;color:var(--ink-600)}
.model .note{margin-top:1rem;font-size:12.5px;font-weight:600;line-height:1.6;color:var(--navy-800)}
.model .ta{margin-top:auto;padding-top:1.25rem;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--brass-700)}
.model.dark{background:var(--navy-900);color:#fff}.model.dark h3{color:#fff}.model.dark .d{color:var(--navy-200)}.model.dark .note{color:var(--brass-300)}.model.dark .ta{color:var(--brass-300)}

/* Insights & blog */
.feat{display:grid;overflow:hidden;border-radius:28px;margin-top:2.25rem;text-decoration:none}
@media(min-width:1024px){.feat{grid-template-columns:8fr 4fr}}
.feat .a{padding:2rem;display:flex;flex-direction:column;justify-content:space-between;gap:3rem;min-height:22rem}
@media(min-width:1024px){.feat .a{padding:2.5rem;min-height:24rem}}
.feat .a h2{font-size:clamp(2rem,3.8vw,3.6rem)}
.feat .a p{margin-top:1.25rem;max-width:48rem;font-size:15px;font-weight:500;line-height:1.75}
.feat .b{padding:2rem;display:flex;flex-direction:column;justify-content:space-between;gap:2rem}
.feat .b .big{font-size:3.2rem;font-weight:700;line-height:1}
.feat .meta{display:flex;gap:.75rem;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em}
.post{display:flex;flex-direction:column;justify-content:space-between;min-height:18rem;border-radius:1rem;padding:2rem;text-decoration:none}
.post .meta{display:flex;justify-content:space-between;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--brass-700)}
.post h3{margin-top:2.5rem;font-size:1.5rem}
.post p{margin-top:1rem;font-size:14px;font-weight:500;line-height:1.7;color:var(--ink-500)}
.post .foot{margin-top:1.5rem;display:flex;justify-content:space-between;border-top:1px solid var(--paper-200);padding-top:1rem;font-size:11px;font-weight:700}
.post.dark{background:var(--navy-900);color:#fff}.post.dark h3{color:#fff}.post.dark p{color:var(--navy-200)}.post.dark .meta{color:var(--brass-300)}.post.dark .foot{border-color:var(--navy-700)}
.post.pale{background:var(--paper-100);color:var(--navy-900)}
.post.line{border:1px solid var(--paper-200);background:#fff;color:var(--navy-900)}

/* CTA */
.cta-band{background:var(--paper-100);padding:3.5rem 0}
.cta-band .wrap{display:flex;flex-direction:column;gap:2rem}
.cta-band h2{margin-top:.75rem;font-size:clamp(2.1rem,3.6vw,3.6rem);line-height:1}
.cta-band p{margin-top:1rem;max-width:42rem;font-size:15px;font-weight:500;color:var(--ink-500)}
@media(min-width:1024px){.cta-band .wrap{flex-direction:row;align-items:center;justify-content:space-between}}
.cta-band .btns{margin-top:0}

/* Legal */
.legal-hero{background:var(--navy-900);padding:3.5rem 0;color:#fff}
.legal-hero .k{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:var(--brass-300)}
.legal-hero h1{margin-top:.5rem;font-size:clamp(2rem,4vw,3rem);color:#fff;letter-spacing:-.025em;max-width:none}
.legal-hero p{margin-top:.5rem;font-size:13px;color:var(--navy-200)}
.legal{max-width:48rem;margin:0 auto;padding:4rem 1.5rem}
.legal .intro{border:1px solid var(--paper-200);background:var(--paper-100);border-radius:6px;padding:1.5rem;margin-bottom:2.5rem;font-size:13.5px;line-height:1.7;color:#344350}
.legal section{margin-bottom:2.5rem}
.legal h2{font-size:18px;letter-spacing:-.01em;line-height:1.3;margin-bottom:1rem;color:var(--ink)}
.legal .body{display:grid;gap:.75rem;font-size:14px;line-height:1.7;color:var(--ink-600)}
.legal strong{color:var(--ink);font-weight:600}
.legal a{color:var(--navy-700)}
.legal ul{display:grid;gap:.5rem}
.legal li{display:flex;gap:.75rem;align-items:flex-start}
.legal li::before{content:"";flex:none;width:4px;height:4px;border-radius:50%;background:var(--brass-500);margin-top:.6rem}
.legal li.no::before{content:"✗";width:auto;height:auto;border-radius:0;background:none;color:#c0392b;font-size:11px;font-weight:700;margin-top:.15rem}
.legal li.ok::before{content:"✓";width:auto;height:auto;border-radius:0;background:none;color:var(--brass-700);font-size:12px;font-weight:700;margin-top:.1rem}
.legal .tbl{border:1px solid var(--paper-200);border-radius:6px;overflow:hidden;background:#fff;margin:.5rem 0}
.legal .tbl>div{display:grid;grid-template-columns:1fr;font-size:12.5px;border-bottom:1px solid var(--paper-200)}
.legal .tbl>div:last-child{border-bottom:0}
.legal .tbl>div>*{padding:.7rem 1rem}
.legal .tbl .h{font-weight:600;color:var(--ink)}
.legal .tbl .r{font-weight:600;color:var(--navy-700);font-size:11px}
.legal .tbl .r.bad{color:#c0392b}
@media(min-width:640px){.legal .tbl>div{grid-template-columns:1fr 2fr 1fr}.legal .tbl>div>*{border-right:1px solid var(--paper-200)}.legal .tbl>div>*:last-child{border-right:0}}
.legal .steps>div{display:flex;gap:1rem;padding:1.1rem 1.25rem;border-bottom:1px solid var(--paper-200)}
.legal .steps>div:last-child{border-bottom:0}
.legal .steps b{font-size:10px;color:var(--navy-600);padding-top:.2rem}
.legal .steps strong{display:block;font-size:13.5px;margin-bottom:.25rem}
.legal .steps p{font-size:13px;color:var(--ink-500)}
.legal .core{display:grid;gap:1rem;margin-bottom:3rem}
@media(min-width:640px){.legal .core{grid-template-columns:1fr 1fr}}
.legal .core>div{border:1px solid var(--paper-200);background:#fff;border-radius:6px;padding:1.4rem}
.legal .core b{display:block;font-size:14px;margin-bottom:.5rem;color:var(--ink)}
.legal .core p{font-size:13px;color:var(--ink-500)}
.legal address{font-style:normal;border:1px solid var(--paper-200);background:#fff;border-radius:6px;padding:1.25rem;font-size:13px;line-height:1.7;color:var(--ink-500)}
.legal address b{display:block;color:var(--ink);margin-bottom:.25rem}

/* Footer */
.site-footer{background:var(--navy-900);border-top:1px solid var(--navy-700);color:var(--navy-300)}
.site-footer .top{display:grid;gap:2.5rem;padding:3.5rem 0}
@media(min-width:1024px){.site-footer .top{grid-template-columns:repeat(4,1fr)}}
.site-footer .logo-i{height:48px;width:auto;filter:brightness(0) invert(1);opacity:.9}
.site-footer p.about{margin-top:1.25rem;max-width:20rem;font-size:13px;line-height:1.65}
.site-footer h4{margin:0 0 1rem;font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.18em;color:var(--navy-300)}
.site-footer ul{display:grid;gap:.65rem}
.site-footer a{text-decoration:none;font-size:13px;transition:color .15s}
.site-footer a:hover{color:#fff}
.site-footer .bottom{border-top:1px solid #344350;padding:1.5rem 0;display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:11px}
.site-footer .bottom a{font-size:11px}
.site-footer .bottom .l,.site-footer .bottom .r{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}

/* Motion */
@keyframes enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
main{animation:enter .5s cubic-bezier(.22,1,.36,1) both}
@media(prefers-reduced-motion:reduce){main,.marquee,.pipeline .step::before{animation:none}.marquee{flex-wrap:wrap;width:auto}html{scroll-behavior:auto}}
@media print{.site-header,.site-footer{display:none}.verify{display:none}}

/* ── CSS-only tabs (Industries) ── */
.tab-radio{position:absolute;opacity:0;pointer-events:none}
.tabs{position:relative}
.tab-panel{display:none}
.tabs .tab-list label{cursor:pointer;transition:background .15s,color .15s}
.tabs .tab-radio:focus-visible ~ .tab-list{outline:2px solid var(--brass-500);outline-offset:4px;border-radius:1rem}
/* Technology areas: list + panel */
.tabs:not(.pills){display:grid;border:1px solid var(--paper-200);border-radius:28px;overflow:hidden;background:#fff}
.tabs:not(.pills) .tab-list{background:var(--paper-100);padding:.75rem;display:flex;flex-direction:column;gap:.25rem}
.tabs:not(.pills) .tab-list label{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-radius:1rem;padding:1rem 1.25rem;color:var(--navy-900)}
.tabs:not(.pills) .tab-list label:hover{background:#fff}
.tabs .tn{margin-right:.75rem;font-size:10px;font-weight:700;color:var(--brass-700)}
.tabs .tt{font-size:15px;font-weight:700}
.tabs .ar{font-size:18px;color:var(--paper-300);transition:transform .15s}
.tabs:not(.pills) .tab-panels{background:#fff}
.tab-panel .art{width:100%;height:12rem;background:var(--paper-100);border-bottom:1px solid var(--paper-200)}
.tab-panel .pbody{display:grid;gap:2rem;padding:1.75rem}
.tab-panel .pbody h3{margin-top:.75rem;font-size:1.9rem}
.tab-panel .sum{margin-top:1rem;font-size:14px;font-weight:500;line-height:1.75;color:var(--ink-600)}
.tab-panel .impact{margin-top:1.5rem;border-radius:1rem;background:var(--brass-500);padding:1.25rem}
.tab-panel .impact p{margin-top:.5rem;font-size:13px;font-weight:700;line-height:1.55;color:var(--navy-950)}
.tab-panel .impact .label{color:var(--navy-800)}
.tab-panel ol li{display:flex;gap:.75rem;border-bottom:1px solid var(--paper-200);padding-bottom:.75rem;margin-top:.9rem;font-size:13px;font-weight:600;line-height:1.4;color:var(--navy-900)}
.tab-panel ol li b{font-size:10px;color:var(--brass-700);padding-top:.15rem}
@media(min-width:1024px){
  .tabs:not(.pills){grid-template-columns:4fr 8fr}
  .tabs:not(.pills) .tab-list{padding:1.25rem}
  .tab-panel .art{height:15rem}
  .tab-panel .pbody{grid-template-columns:1.1fr .9fr;padding:2.25rem}
}
/* Industry pills + one card */
.pills .tab-list{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.5rem;-webkit-overflow-scrolling:touch}
.pills .tab-list label{flex:none;border:1px solid var(--paper-200);background:#fff;border-radius:999px;padding:.75rem 1.25rem;font-size:13px;font-weight:700;color:var(--ink-600)}
.pills .tab-list label:hover{border-color:var(--navy-400)}
.pills .tab-panels{margin-top:1.25rem}
.pills .tab-panel.ind{background:#fff}

/* ── Scroll reveal (enabled only when js/site.js adds .js to <html>) ── */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .76s cubic-bezier(.22,1,.36,1),transform .76s cubic-bezier(.22,1,.36,1);will-change:opacity,transform}
.js .reveal.in{opacity:1;transform:none}
.js .pipeline .step.reveal{transform:translateY(24px)}
.js .pipeline .step.reveal.in{transform:none}
.js .pipeline .step::before{animation:none;transform:scaleX(0);transition:transform .9s cubic-bezier(.22,1,.36,1);transition-delay:inherit}
.js .pipeline .step.in::before{transform:scaleX(1)}
/* keep hover lift working after reveal */
.js .svc.reveal.in:hover,.js .member.reveal.in:hover{transform:translateY(-4px)}
@media(prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}}
[hidden]{display:none!important}

/* Technology-area panel image: fixed frame, any upload is cropped to fit (object-fit: cover) */
.tab-panel .pimg{display:block;width:100%;height:auto;aspect-ratio:2/1;object-fit:cover;object-position:center;background:var(--paper-100);border-bottom:1px solid var(--paper-200)}
@media(min-width:1024px){.tab-panel .pimg{aspect-ratio:16/5}}

.rounded-2xl {
    border-radius: 1rem;
}