:root{--ink:#06182E;--ink2:#0A2240;--navy:#0B2B4F;--brand:#0062C8;--cyan:#0AB5E5;--cta:#D94F04;--cta2:#B84300;--mist:#EEF3F9;--line:#D5DFEB;--txt:#1B2B3F;--mut:#53647A;--rec:#FF3B30;--ok:#1E9E5A;--r:6px}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth;scroll-padding-top:80px}
body{font:400 1.0625rem/1.68 Manrope,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--txt);background:#fff;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:'Bricolage Grotesque',Manrope,system-ui,sans-serif;line-height:1.08;letter-spacing:-.022em;color:var(--ink)}
h1{font-size:clamp(2.2rem,5vw,3.7rem);font-weight:800}h2{font-size:clamp(1.7rem,3.4vw,2.6rem);font-weight:700;margin-bottom:.7rem}h3{font-size:1.22rem;font-weight:700}
p+p{margin-top:.9rem}a{color:var(--brand)}img{max-width:100%;height:auto;display:block}
.wrap{width:min(1200px,92%);margin:auto}.narrow{width:min(780px,92%)}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:.5rem;z-index:99}
:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}
.eyebrow{display:inline-block;font:600 .78rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--brand);margin-bottom:.9rem}
.dark .eyebrow,.hero .eyebrow,.phead .eyebrow,.cta .eyebrow{color:var(--cyan)}
/* header */
.top{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 0}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;font:800 1.2rem 'Bricolage Grotesque',sans-serif;color:var(--ink)}
#nav{display:flex;align-items:center;gap:1.3rem}#nav a:not(.btn){color:var(--txt);text-decoration:none;font-weight:600;font-size:.94rem}#nav a:not(.btn):hover,#nav a[aria-current]{color:var(--brand)}
.burger{display:none;border:1px solid var(--line);background:#fff;border-radius:8px;padding:.45rem .8rem;font:inherit;font-weight:600}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:.45rem;background:var(--cta);color:#fff;text-decoration:none;font-weight:700;padding:.85rem 1.35rem;border-radius:var(--r);border:2px solid var(--cta);transition:transform .15s,background .15s;line-height:1.2;cursor:pointer;font-size:1rem;font-family:inherit}
.btn:hover{background:var(--cta2);border-color:var(--cta2);transform:translateY(-1px)}.btn.sm{padding:.5rem .9rem;font-size:.9rem}
.btn.ghost{background:transparent;color:var(--brand);border-color:var(--brand)}.btn.ghost:hover{background:var(--brand);color:#fff}
.btn.wa{background:#128C4A;border-color:#128C4A}.btn.wa:hover{background:#0E7039;border-color:#0E7039}
.hero .btn.ghost,.cta .btn.ghost,.phead .btn.ghost,.dark .btn.ghost{color:#fff;border-color:rgba(255,255,255,.55)}.hero .btn.ghost:hover,.cta .btn.ghost:hover,.phead .btn.ghost:hover{background:#fff;color:var(--ink)}
.btns{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.6rem}
/* hero */
.hero{background:radial-gradient(1100px 520px at 88% -10%,#11477F 0,transparent 60%),radial-gradient(700px 400px at 0 110%,#0A3360 0,transparent 60%),var(--ink);color:#DCE8F6;padding:clamp(2.8rem,7vw,6rem) 0 clamp(2.5rem,6vw,5rem)}
.hero h1{color:#fff;margin:.2rem 0 1.1rem;max-width:17ch}.hgrid{display:grid;grid-template-columns:1.12fr .88fr;gap:3.2rem;align-items:center}
.lead{font-size:1.18rem;max-width:62ch}.hero .lead,.phead .lead{color:#C4D5EA}
.pills{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.45rem;margin:1.2rem 0 0}.pills li{border:1px solid rgba(255,255,255,.22);border-radius:99px;padding:.28rem .8rem;font-size:.86rem;color:#E6EEF8;background:rgba(255,255,255,.04)}
.vf{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3.4;box-shadow:0 30px 80px rgba(0,0,0,.5);background:#0A2240}.vf img{width:100%;height:100%;object-fit:cover;filter:saturate(.8) contrast(1.05)}
.vf::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,.12) 0 1px,transparent 1px 3px);pointer-events:none}
.vf i{position:absolute;width:34px;height:34px;border:3px solid #fff;z-index:2}.c1{top:14px;left:14px;border-right:0!important;border-bottom:0!important}.c2{top:14px;right:14px;border-left:0!important;border-bottom:0!important}.c3{bottom:50px;left:14px;border-right:0!important;border-top:0!important}.c4{bottom:50px;right:14px;border-left:0!important;border-top:0!important}
.vf figcaption{position:absolute;left:0;right:0;bottom:0;z-index:3;display:flex;justify-content:space-between;gap:.5rem;padding:.7rem 1rem;background:rgba(6,24,46,.86);font:500 .8rem ui-monospace,Menlo,monospace;color:#fff}
.rec{color:var(--rec);font-weight:700}.rec::before{content:"";display:inline-block;width:.6rem;height:.6rem;border-radius:50%;background:var(--rec);margin-right:.4rem;animation:blink 1.2s steps(2,start) infinite}@keyframes blink{to{visibility:hidden}}
/* trust bar */
.trust{background:var(--ink2);border-top:1px solid #17304F;color:#9FB6D1}.tgrid{display:grid;grid-template-columns:repeat(4,1fr)}
.tgrid>*{padding:1.4rem 1.2rem;border-left:1px solid #17304F;text-decoration:none;color:#9FB6D1;font-size:.9rem;line-height:1.4}.tgrid>*:first-child{border-left:0}
.tgrid b{display:block;font:800 1.9rem/1.1 'Bricolage Grotesque',sans-serif;color:#fff;margin-bottom:.2rem}.tgrid a:hover b{color:var(--cyan)}.tgrid em{font-style:normal;color:var(--cyan);font-size:.82rem;display:block;margin-top:.3rem}
/* sections */
.sec{padding:clamp(3.2rem,7vw,5.6rem) 0}.alt{background:var(--mist)}.dark{background:var(--ink);color:#C4D5EA}.dark h2,.dark h3{color:#fff}
.sub{color:var(--mut);margin-bottom:2rem;max-width:66ch;font-size:1.08rem}.dark .sub{color:#9FB6D1}
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;flex-wrap:wrap;margin-bottom:2rem}.head .sub{margin-bottom:0}
/* pillars */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.pillar{background:linear-gradient(180deg,#0C2A4C,#081F3A);border:1px solid #17304F;border-radius:var(--r);padding:1.8rem 1.6rem}
.pillar .n{font:600 .78rem ui-monospace,monospace;color:var(--cyan);letter-spacing:.1em}.pillar h3{color:#fff;font-size:1.55rem;margin:.5rem 0 .6rem}.pillar p{color:#AFC3DB;font-size:.98rem}
.pillar ul{list-style:none;padding:0;margin-top:1.1rem;border-top:1px solid #17304F}.pillar li{border-bottom:1px solid #17304F}.pillar li a,.pillar li span{display:flex;justify-content:space-between;padding:.6rem 0;color:#E6EEF8;text-decoration:none;font-weight:600;font-size:.95rem}.pillar li a::after{content:"\2192";color:var(--cyan)}.pillar li a:hover{color:var(--cyan)}
/* service cards */
.svcs{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1.25rem}
.svcs.three{grid-template-columns:repeat(3,1fr)}@media(max-width:1000px){.svcs.three{grid-template-columns:1fr 1fr}}@media(max-width:600px){.svcs.three{grid-template-columns:1fr}}
.svc{display:flex;flex-direction:column;text-decoration:none;color:var(--txt);background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:border-color .2s,box-shadow .2s,transform .2s}
.svc:hover{border-color:var(--brand);box-shadow:0 14px 34px rgba(0,98,200,.14);transform:translateY(-2px)}.svc img{aspect-ratio:16/9;object-fit:cover;width:100%}.svc div{padding:1.05rem 1.15rem 1.25rem}.svc p{font-size:.95rem;color:var(--mut);margin-top:.35rem}.svc .go{display:block;margin-top:.7rem;font-weight:700;color:var(--brand);font-size:.9rem}
/* feature split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}.split.rev>:first-child{order:2}
.big{border-radius:var(--r);width:100%;aspect-ratio:4/3;object-fit:cover}
/* flow / architecture */
.flow{display:grid;grid-template-columns:repeat(5,1fr);gap:.6rem;margin:1.6rem 0;counter-reset:f}
.flow div{position:relative;background:#fff;border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:var(--r);padding:.9rem .85rem;font-size:.9rem;color:var(--mut)}.flow b{display:block;color:var(--ink);font:700 1rem 'Bricolage Grotesque',sans-serif;margin-bottom:.2rem}
.dark .flow div{background:#0C2A4C;border-color:#17304F;border-top-color:var(--cyan);color:#AFC3DB}.dark .flow b{color:#fff}
.arch{display:grid;gap:.6rem;margin-top:1.5rem}
.layer{display:grid;grid-template-columns:200px 1fr;gap:1rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:.9rem 1.1rem}
.layer h3{font-size:1.05rem}.layer h3 small{display:block;font:600 .72rem ui-monospace,monospace;color:var(--brand);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.2rem}
.chain{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;list-style:none;padding:0}.chain li{background:var(--mist);border:1px solid var(--line);border-radius:4px;padding:.3rem .65rem;font-size:.88rem;font-weight:600}.chain li+li::before{content:"\2192";margin:0 .45rem 0 -.1rem;color:var(--brand);font-weight:700}
.dark .layer{background:#0C2A4C;border-color:#17304F}.dark .layer h3{color:#fff}.dark .layer h3 small{color:var(--cyan)}.dark .chain li{background:#081F3A;border-color:#17304F;color:#E6EEF8}.dark .chain li+li::before{color:var(--cyan)}
/* industries */
.inds{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.inds a{position:relative;display:block;border-radius:var(--r);overflow:hidden;text-decoration:none;color:#fff;aspect-ratio:4/3}
.inds img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.inds a:hover img{transform:scale(1.04)}.inds span{position:absolute;inset:auto 0 0;padding:1.8rem 1rem .9rem;background:linear-gradient(transparent,rgba(6,24,46,.94));font:700 1.08rem 'Bricolage Grotesque',sans-serif}.inds small{display:block;font:400 .84rem Manrope,sans-serif;opacity:.88;margin-top:.15rem}
/* process */
.proc{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;counter-reset:s}
.proc li{counter-increment:s;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.3rem 1.25rem;color:var(--mut);font-size:.97rem;position:relative}
.proc li::before{content:"0" counter(s);display:block;font:600 .8rem ui-monospace,monospace;color:var(--brand);letter-spacing:.08em;margin-bottom:.5rem}.proc b{display:block;color:var(--ink);font:700 1.15rem 'Bricolage Grotesque',sans-serif;margin-bottom:.3rem}
.steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1.25rem;margin-top:1.5rem}.steps li{border-top:3px solid var(--brand);padding-top:.8rem;color:var(--mut);font-size:.97rem}.steps li b{display:block;color:var(--ink);font:700 1.1rem 'Bricolage Grotesque',sans-serif}
/* why */
.why{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.why div{background:#fff;padding:1.5rem 1.4rem}.why b{display:block;font:800 1.7rem 'Bricolage Grotesque',sans-serif;color:var(--ink);line-height:1.1}.why span{display:block;font-weight:700;color:var(--brand);font-size:.9rem;margin:.25rem 0 .45rem}.why p{font-size:.95rem;color:var(--mut)}
/* lists, prose */
.tick{list-style:none;padding:0}.tick li{padding:.5rem 0 .5rem 1.9rem;position:relative;border-bottom:1px solid var(--line)}.tick li::before{content:"";position:absolute;left:0;top:1rem;width:.9rem;height:.5rem;border-left:3px solid var(--brand);border-bottom:3px solid var(--brand);transform:rotate(-45deg)}
.tick.two-col{display:grid;grid-template-columns:1fr 1fr;column-gap:2rem}
.also{margin-top:1.2rem;font-size:.9rem;color:var(--mut)}.prose>*+*{margin-top:1rem}.prose h2{margin-top:2.4rem}.prose h3{margin-top:1.6rem}.prose ul:not(.tick),.prose ol{padding-left:1.3rem}.prose li+li{margin-top:.35rem}
.note{font-size:.92rem;color:var(--mut);border-left:3px solid var(--line);padding-left:1rem}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.4rem 1.3rem}.card h3{margin-bottom:.45rem}.card p,.card li{font-size:.97rem;color:var(--mut)}.card ul{padding-left:1.1rem;margin-top:.5rem}
.alt .card{border-color:#CCD9E8}
.spec{width:100%;border-collapse:collapse;font-size:.95rem;background:#fff}.spec th,.spec td{text-align:left;padding:.7rem .8rem;border-bottom:1px solid var(--line);vertical-align:top}.spec th{font-family:'Bricolage Grotesque',sans-serif;color:var(--ink);background:var(--mist)}.tscroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r)}
/* case studies */
.case{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff}.case>div{padding:1.2rem 1.15rem;border-left:1px solid var(--line)}.case>div:first-child{border-left:0;background:var(--mist)}
.case h3{font-size:1.1rem}.case small{display:block;font:600 .72rem ui-monospace,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--brand);margin-bottom:.35rem}.case p{font-size:.95rem;color:var(--mut)}
.case+.case{margin-top:1rem}
/* reviews */
blockquote{font:500 1.15rem/1.5 'Bricolage Grotesque',sans-serif;color:var(--ink)}cite{display:block;font:400 .9rem Manrope,sans-serif;color:var(--mut);margin-top:.8rem;font-style:normal}
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.quotes blockquote{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.4rem 1.3rem}.stars{color:#E8A317;letter-spacing:.1em;font-size:1rem;display:block;margin-bottom:.5rem}
.rating{display:inline-flex;align-items:center;gap:.6rem;font-weight:700;color:var(--ink)}.rating .stars{margin:0}
.pull{font:500 1.3rem/1.5 'Bricolage Grotesque',sans-serif;border-left:4px solid var(--brand);padding-left:1.2rem;margin:1.4rem 0;color:var(--ink)}
/* videos */
.vids{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1.5rem;align-items:start}.vid iframe{width:100%;border:0;aspect-ratio:16/9;border-radius:var(--r);background:#000}.vid.short iframe{aspect-ratio:9/16}.vid p{font-size:.9rem;color:var(--mut);margin-top:.5rem}.dark .vid p{color:#9FB6D1}.dark .vid a{color:var(--cyan)}
/* chips */
.chips{display:flex;flex-wrap:wrap;gap:.6rem}.chips a{border:1.5px solid var(--brand);border-radius:99px;padding:.4rem 1rem;text-decoration:none;font-weight:700;font-size:.95rem}.chips a:hover{background:var(--brand);color:#fff}
/* law band */
.law{background:var(--brand);color:#fff;padding:2.4rem 0}.law h2{color:#fff;font-size:1.6rem}.lgrid{display:flex;gap:2rem;align-items:center;justify-content:space-between;flex-wrap:wrap}.lgrid>div{max-width:760px}.law .btn{background:#fff;color:var(--ink);border-color:#fff}
/* page head */
.phead{background:radial-gradient(900px 400px at 90% 0,#0F3E73 0,transparent 60%),var(--ink);color:#C4D5EA;padding:clamp(2.6rem,5.5vw,4.4rem) 0}.phead h1{color:#fff;font-size:clamp(2rem,4.4vw,3.3rem);max-width:22ch;margin-bottom:1rem}.phead a:not(.btn){color:var(--cyan)}.bc{font-size:.9rem;margin-bottom:1.1rem;color:#9FB6D1}
.facts{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:1.6rem;margin-top:1.8rem;color:#9FB6D1;font-size:.92rem}.facts b{display:block;font:800 1.6rem 'Bricolage Grotesque',sans-serif;color:#fff}
/* faq */
details{border-bottom:1px solid var(--line);padding:1.05rem 0}summary{cursor:pointer;font-weight:700;font-size:1.06rem;list-style:none;display:flex;justify-content:space-between;gap:1rem}summary::-webkit-details-marker{display:none}summary::after{content:"+";font:700 1.3rem/1 Manrope,sans-serif;color:var(--brand)}details[open] summary::after{content:"\2013"}details p{margin-top:.6rem;color:var(--mut)}
/* cta */
.cta{background:linear-gradient(120deg,var(--navy),var(--ink));color:#C4D5EA;padding:clamp(3.2rem,6vw,5rem) 0}.cta h2{color:#fff;max-width:24ch}.cta p{max-width:58ch}
/* forms */
form{display:grid;gap:1rem}label{display:grid;gap:.3rem;font-weight:700;font-size:.92rem}input,select,textarea{font:inherit;padding:.72rem .8rem;border:1.5px solid var(--line);border-radius:var(--r);width:100%;background:#fff}input:focus,select:focus,textarea:focus{border-color:var(--brand);outline:none}
.chk{display:flex;gap:.6rem;align-items:flex-start;font-weight:400}.chk input{width:auto;margin-top:.4rem}.frow{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.formcard{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.6rem;box-shadow:0 20px 50px rgba(6,24,46,.08)}
.ok{background:#E7F6EE;border:1px solid #B5E2C8;color:#145C36;border-radius:var(--r);padding:1rem 1.1rem;font-weight:600}
/* calculator */
.calc{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}.calc .out{background:var(--ink);color:#C4D5EA;border-radius:var(--r);padding:1.6rem}.calc .out b{display:block;font:800 2.6rem/1 'Bricolage Grotesque',sans-serif;color:#fff;margin:.3rem 0 .6rem}.calc .out dl{display:grid;grid-template-columns:1fr auto;gap:.4rem 1rem;margin-top:1rem;font-size:.95rem}.calc .out dd{color:#fff;font-weight:700;margin:0}
/* footer */
.foot{background:var(--ink);color:#9FB6D1;padding:3.4rem 0 2rem;font-size:.95rem}.foot a{color:#C4D5EA;text-decoration:none}.foot a:hover{color:#fff}.foot h4{color:#fff;margin:0 0 .6rem;font-size:1rem}.foot ul{list-style:none;padding:0;margin-bottom:1.2rem}.foot li{padding:.15rem 0}.fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2.2rem}.foot p{margin:.8rem 0}.legal{margin-top:2rem;padding-top:1rem;border-top:1px solid #17304F;font-size:.85rem}
.dock{display:none}
/* reveal */
.js .rv{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}.js .rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rec::before{animation:none}html{scroll-behavior:auto}.btn,.svc,.inds img{transition:none}.js .rv{opacity:1;transform:none;transition:none}}
@media(max-width:1000px){.pillars,.quotes,.why,.proc{grid-template-columns:1fr 1fr}.fgrid{grid-template-columns:1fr 1fr}.flow{grid-template-columns:repeat(3,1fr)}.case{grid-template-columns:1fr 1fr}.case>div:nth-child(3){border-left:0}.case>div:nth-child(n+3){border-top:1px solid var(--line)}}
@media(max-width:860px){
.hgrid,.split,.vids,.calc,.frow,.tick.two-col{grid-template-columns:1fr}.split.rev>:first-child{order:0}.vid.short{max-width:300px}.burger{display:block}
#nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;flex-direction:column;align-items:flex-start;padding:1rem 4%;border-bottom:1px solid var(--line);gap:.9rem}#nav.open{display:flex}
.tgrid{grid-template-columns:1fr 1fr}.tgrid>*:nth-child(3){border-left:0}.tgrid>*:nth-child(n+3){border-top:1px solid #17304F}
.layer{grid-template-columns:1fr;gap:.5rem}
body{padding-bottom:56px}.dock{display:grid;grid-template-columns:1fr 1fr 1.3fr;position:fixed;left:0;right:0;bottom:0;z-index:30;background:#fff;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.dock a{padding:.9rem .5rem;text-align:center;font-weight:700;text-decoration:none;font-size:.95rem}.dock .wa{color:#0E7039}.dock .hot{background:var(--cta);color:#fff}}
@media(max-width:560px){.pillars,.quotes,.why,.proc,.fgrid,.case{grid-template-columns:1fr}.case>div{border-left:0!important;border-top:1px solid var(--line)}.case>div:first-child{border-top:0}.flow{grid-template-columns:1fr 1fr}.btns .btn{flex:1 1 100%;justify-content:center}}
article.prose h2{font-size:clamp(1.35rem,2.4vw,1.75rem);margin-top:2rem}article.prose{font-size:1.08rem}
