/* vb-light v1: STARK-style light theme */
:root{--paper:#f3f3f0;--ink:#0a0a0a;--mute:#5d5d58;--line:rgba(10,10,10,.12);}
html,body{background:#f3f3f0!important;color:#0a0a0a!important;}
::selection{background:#0a0a0a;color:#fff;}
.veil{background:#f3f3f0!important;}
.nav{background:rgba(243,243,240,.94)!important;border-bottom:1px solid var(--line)!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);}
.brand{color:#0a0a0a!important;}
.nav-main>a,.nav-main .nav-dd>a,.vb-navbtn{color:#0a0a0a!important;opacity:.78;}
.nav-main>a:hover,.nav-main .nav-dd>a:hover,.vb-navbtn:hover{opacity:1;}
.nav-main>a.on,.nav-main .nav-dd>a.on{opacity:1;}
.nav-main>a.on:after,.nav-main .nav-dd>a.on:after{background:#0a0a0a!important;}
.nav-dd{position:relative;display:inline-flex;align-items:center;}
.nav-dd>a{display:inline-flex;align-items:center;gap:6px;position:relative;}
.dd-car{width:6px;height:6px;border-right:1.2px solid currentColor;border-bottom:1.2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .35s ease;opacity:.7;}
.nav-dd:hover .dd-car{transform:rotate(225deg) translateY(-1px);}
.dd-panel{position:absolute;top:calc(100% + 22px);left:50%;transform:translate(-50%,8px);min-width:280px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;box-shadow:0 20px 50px rgba(0,0,0,.12);opacity:0;pointer-events:none;transition:opacity .3s ease,transform .45s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column;z-index:300;}
.dd-panel:before{content:"";position:absolute;left:0;right:0;top:-24px;height:24px;}
.nav-dd:hover .dd-panel,.nav-dd:focus-within .dd-panel{opacity:1;pointer-events:auto;transform:translate(-50%,0);}
.dd-panel a{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-radius:10px;color:#0a0a0a;transition:background .25s;}
.dd-panel a:hover{background:#f0f0ec;}
.dd-panel a b{font-size:15px;font-weight:500;letter-spacing:-.02em;}
.dd-panel a em{font-style:normal;font-size:12px;color:var(--mute);}
.dd-panel a.dd-all{flex-direction:row;margin-top:4px;border-top:1px solid var(--line);border-radius:0;padding-top:12px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);}
.vb-comenu{background:#f3f3f0!important;border-color:var(--line)!important;}
.vb-corow{color:#0a0a0a!important;border-color:var(--line)!important;}
.vb-corow:hover{background:#0a0a0a!important;color:#f3f3f0!important;}
.vb-search{background:rgba(243,243,240,.92)!important;}
.vb-search input{color:#0a0a0a!important;border-color:rgba(10,10,10,.35)!important;}
.vb-search input::placeholder{color:rgba(10,10,10,.35)!important;}
.vb-smag circle,.vb-smag line{stroke:#0a0a0a!important;}
.vb-sres a{color:#333!important;border-color:var(--line)!important;}.vb-sres a:hover{color:#000!important;}.vb-sres a i{color:#777!important;}.vb-sx{color:#0a0a0a!important;}
/* inset hero like STARK */
.hero{margin:94px 20px 0!important;height:calc(100svh - 114px)!important;min-height:520px;border-radius:16px;overflow:hidden;}
@media(max-width:760px){.hero{margin:86px 12px 0!important;height:calc(100svh - 98px)!important;border-radius:12px;}}
.hero .mono,.cue,.hero-cue{color:rgba(243,243,239,.9)!important;}
/* dark blocks -> light */
.manifesto,.camp,.contact,.runs,.cta,.syhead,.stats,.feat,.dir,.vstatus-wrap,.ngrid,.lead-side,.opener,.story,.spec,.wrap,.rows,.vals,.sy,.pr{background:transparent!important;color:#0a0a0a!important;}
.manifesto h2,.manifesto p,.camp .txt h3,.camp .txt p,.contact h2,.runs-cell b,.runs-cell span,.cta h2,.syhead h1,.syhead p,.stat b,.stat span,.txt h3,.txt p,.feat h2,.feat p,.dir h3,.dir p,.lead-side p,.kick,.vcell h3,.vcell p,.cell b,.cell span,.sy-card p,.sy-card h2,.pr-card b,.pr-boiler p,.pr-boiler h3,.stats h2,.opener h1,.opener p{color:#0a0a0a!important;}
.manifesto p,.camp .txt p,.txt p,.feat p,.dir p,.lead-side p,.vcell p,.sy-card p,.pr-boiler p,.stat span,.runs-cell span,.syhead p,.hero-copy p{color:#3d3d39!important;}
.hero-copy p,.hero-copy h1{color:#fff!important;}
.mono,.kick,.cell b,.vcell b,.ccap,.dcap,.runs-cell em,.sy-note,.pr-card span,.stats .mono,.rows .mono,.txt .mono,.dir .num{color:#6a6a64!important;}
.hero .mono,.mesh .mono,.mesh .feed,.mesh .legend,.mesh .state b{color:rgba(243,243,239,.85)!important;}
.mesh .state span{color:#f3f3ef!important;}
.kick i,.mono i,.runs .mono i,.contact .kick i{background:#0a0a0a!important;}
.manifesto,.camp,.runs,.vals,.stats,.contact,.rows,.sy,.pr,.feat,.dir{border-color:var(--line)!important;}
.cell,.vcell,.stat,.runs-cell,.sy-card,.pr-card,.dir a{border-color:rgba(10,10,10,.18)!important;}
.runs-cell:hover{border-color:#0a0a0a!important;}
.vstatus{background:#fff!important;border-color:var(--line)!important;color:#4a4a45!important;}
.vstatus b{color:#0a0a0a!important;}
.vstatus i{background:#0a0a0a!important;}
.cta a,.sy-cta a,.ctas a,.contact a.btn{border-color:#0a0a0a!important;color:#0a0a0a!important;background:transparent!important;}
.cta a:hover,.sy-cta a:hover,.ctas a:hover{background:#0a0a0a!important;color:#fff!important;}
.ctas a{background:#0a0a0a!important;color:#fff!important;}
.ctas a.ghostbtn{background:transparent!important;color:#0a0a0a!important;}
.ctas a:hover{background:#333!important;}
.media,.sy-img,.feat .media,.camp .media{background:#e6e6e1;}
.media img{filter:none!important;}
.n2-product,.n4-rail{color:#0a0a0a!important;}
.vfoot{background:#ebebe7!important;border-color:var(--line)!important;}
.vfoot-brand .bmark{color:#0a0a0a!important;}
.vfoot-brand p,.vfoot-cols a,.vfoot-cols span.li,.vfoot-base{color:#4a4a45!important;}
.vfoot-cols a:hover,.vfoot-base a:hover{color:#0a0a0a!important;}
.vfoot-cols b{color:#777772!important;}
.vfoot-base{border-color:var(--line)!important;}
.sy-cta,.cta{border-top:1px solid var(--line);}
.r{transform:translateY(24px);}
/* dark-block exceptions */
.band .mono,.loop .mono,.loop .kick,.loop .foot,.strip b,.hero .kick{color:rgba(243,243,239,.82)!important;}
.loop .kick i,.band .kick i{background:#f3f3ef!important;}
.loop .step b{color:#f3f3ef!important;}
@media(max-width:980px){.nav-dd{display:none!important;}}
@media(max-width:560px){.hero-copy .mono{font-size:9px;letter-spacing:.18em;}}
/* v4: whiter, heavier, STARK-like */
:root{--paper:#ffffff;--line:rgba(10,10,10,.1);}
html,body{background:#ffffff!important;}
.veil{background:#ffffff!important;}
.nav{background:rgba(255,255,255,.94)!important;}
#intro{background:#ffffff!important;}
.vb-comenu,.vb-search{background:rgba(255,255,255,.96)!important;}
.subnav{background:rgba(255,255,255,.94)!important;}
.vfoot{background:#f4f4f2!important;}
.vstatus,.col,.eco a,.fact,.sys-card,.sy-card,.pr-card,.step{background:#fff!important;}
.vstatus{border-color:rgba(10,10,10,.14)!important;}
.hero-copy h1,h2.big,.state h2,.lead-sec h2,.cta h2,.syhead h1,.opener h1,.manifesto h2,.row h3,.prod h3,.band h2,.loop h2,.careers h2,.sys-head h2,.sys-card h3,.sy-card h2,.feat h2,.camp .txt h3,.contact h2,.stats h2{font-weight:600!important;letter-spacing:-.045em!important;}
.kick,.mono{letter-spacing:.2em;}
.serve-grid div,.kd th,.kd td,.row li{border-color:rgba(10,10,10,.1)!important;}
.media,.sy-img,.sys-card .img,.row .media,.prod .media{background:#f2f2f0!important;}

.sys-card .img img.contain,.sy-img img.contain{object-fit:contain!important;background:#fff;padding:3% 6%;}
.sys-card .img,.sy-img{background:#fff!important;}

.strip.light b,.strip.light .s,.strip.light i{color:#0a0a0a!important;}

.loop .step{background:rgba(255,255,255,.04)!important;border-color:rgba(243,243,239,.18)!important;}
.loop .step .n{color:rgba(243,243,239,.55)!important;}
.loop .step span{color:rgba(243,243,239,.78)!important;}

/* v8: STARK-style full-width systems mega menu */
.nav-dd{position:static!important;}
.dd-panel.mega{left:0;right:0;top:100%;transform:translateY(-8px);min-width:0;width:100%;border-radius:0;border:0;border-top:1px solid var(--line);background:linear-gradient(180deg,#f5f6f7 0%,#e8eaec 100%);padding:clamp(26px,3vw,44px) clamp(20px,4vw,60px) clamp(20px,2.2vw,30px);display:block;box-shadow:0 30px 60px rgba(0,0,0,.10);}
.nav-dd:hover .dd-panel.mega,.nav-dd:focus-within .dd-panel.mega{transform:translateY(0);}
.dd-panel.mega:before{top:-26px;height:26px;}
.mega-in{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,32px);}
.mega-in .mega-tile:nth-child(1){grid-column:1/2;}.mega-in .mega-tile:nth-child(2){grid-column:2/3;}
.dd-panel.mega a.mega-tile{display:block;padding:0;border-radius:0;color:#0a0a0a;background:transparent;}
.dd-panel.mega a.mega-tile:hover{background:transparent;}
.dd-panel.mega a.mega-tile b{display:block;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#3d3d39;font-weight:500;}
.dd-panel.mega a.mega-tile strong{display:block;margin-top:6px;font-size:clamp(20px,1.8vw,28px);font-weight:600;letter-spacing:-.02em;line-height:1;}
.dd-panel.mega a.mega-tile img{display:block;margin-top:12px;width:100%;aspect-ratio:16/10;object-fit:cover;background:#fff;border:1px solid var(--line);transition:transform .5s ease;}
.dd-panel.mega a.mega-tile img.contain{object-fit:contain;padding:6%;}
.dd-panel.mega a.mega-tile:hover img{transform:translateY(-2px);}
.dd-panel.mega a.mega-tile .mega-more{display:flex;align-items:flex-end;margin-top:12px;aspect-ratio:16/10;border:1px dashed rgba(10,10,10,.25);padding:14px;font-size:13px;color:#3d3d39;}
.mega-foot{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:clamp(22px,2.4vw,34px);padding-top:18px;border-top:1px solid var(--line);}
.mega-foot>span{display:block;}
.mega-foot b{display:block;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#6a6a64;font-weight:500;}
.dd-panel.mega .mega-foot a{display:block;margin-top:6px;font-size:14px;color:#0a0a0a;padding:0;border-radius:0;}
.dd-panel.mega .mega-foot a:hover{background:transparent;text-decoration:underline;}
@media(max-width:1100px){.mega-in{grid-template-columns:repeat(3,1fr);}}

/* v9: STARK-style preloader on every page */
#pre{position:fixed;inset:0;z-index:9000;background:#fff;display:flex;align-items:center;justify-content:center;pointer-events:auto;transition:opacity .55s ease,transform .65s cubic-bezier(.76,0,.24,1);}
#pre.out{opacity:0;pointer-events:none;}
#pre.gone{display:none;}
.pre-logo{display:flex;align-items:center;justify-content:center;gap:clamp(10px,1.6vw,22px);width:min(78vw,520px);padding:0 24px;}
.pre-word{display:flex;font-family:'Instrument Sans',Inter,Arial,sans-serif;font-weight:600;font-size:clamp(38px,7.2vw,84px);letter-spacing:.04em;line-height:1;color:#0a0a0a;}
.pre-word i{font-style:normal;opacity:0;transform:translateY(6px);transition:opacity .35s ease,transform .45s cubic-bezier(.2,.7,.2,1);}
.pre-logo svg{width:clamp(44px,7.2vw,84px);height:auto;overflow:visible;flex:none;margin-top:-.04em;}
.pre-logo svg polygon{opacity:0;transition:opacity .45s ease;}
html.preloading{overflow:hidden;}
@media(prefers-reduced-motion:reduce){#pre{display:none;}}

/* v11 — STARK/Anduril geometry: square corners everywhere (dots stay round) */
*:not(i):not(svg):not(svg *):not(.pre-word i):not(video){border-radius:0!important;}

/* v12 — responsive art direction: keep the subject of each photo in frame on phone/tablet */
@media(max-width:900px){
  img[src*="co-panel"]{object-position:14% 50%!important;}
  img[src*="edge-hero"]{object-position:50% 34%!important;}
  img[src*="edge-machine"]{object-position:40% 50%!important;}
  img[src*="edge-command"]{object-position:60% 50%!important;}
  img[src*="cit-boat"]{object-position:55% 50%!important;}
  .strip{min-height:150px;}
  .strip:before{background-position:50% 40%!important;}
}
@media(max-width:560px){
  img[src*="co-panel"]{object-position:10% 50%!important;}
  img[src*="edge-hero"]{object-position:46% 30%!important;}
}

/* v13 — contrast sweep: no light-on-light or dark-on-dark text anywhere (site-wide audit 2026-08-23) */
.pg p,.pg li,.pg small,.pg .lead,.secwrap p,.camp li,.contact p,.cta p,.pg a.ln,.pg a.ln:hover{color:#3b3b38!important;}
.pg h3,.pg h4,.camp li b,.secwrap h3,.ccard h3{color:#0a0a0a!important;}
.pg a.ln{border-bottom-color:#0a0a0a!important;}
.pg p[style*="opacity"],.pg .updated,.pg small{color:#6b6b66!important;}
.tt li,.tt-count,.tt .mono{color:#55554f!important;}
.ccard{background:#fff!important;border-color:var(--line)!important;}
.ccard p,.ccard .mono,.ccard span{color:#3b3b38!important;}
.ccard a,.ccard h3{color:#0a0a0a!important;}

/* v14 — STARK-style frosted nav: always visible, translucent, page blurs through it */
.nav{background:rgba(255,255,255,.58)!important;backdrop-filter:blur(18px) saturate(1.15)!important;-webkit-backdrop-filter:blur(18px) saturate(1.15)!important;border-bottom:1px solid rgba(10,10,10,.08)!important;}
.nav.nav-hid{transform:none!important;}
@supports not (backdrop-filter:blur(1px)){.nav{background:rgba(255,255,255,.92)!important;}}

/* v15 — dropdown hover bridge: no dead zone between the Systems link and the mega panel */
.nav-dd:after{content:"";position:absolute;top:100%;height:40px;left:-100vw;right:-100vw;}
.dd-panel{transition-delay:.18s!important;}
.nav-dd:hover .dd-panel,.nav-dd:focus-within .dd-panel{transition-delay:0s!important;}

/* v16 — Careers flyout ("Work with us"), Anduril-style list */
.dd-list{min-width:250px;padding:14px 8px 10px;gap:0;}
.dd-lbl{display:block;padding:2px 14px 10px;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#6f6f6a;}
.dd-list a{flex-direction:row;align-items:center;gap:10px;padding:9px 14px;font-size:15px;font-weight:500;color:#0a0a0a;}
.dd-list a:before{content:"+";font-weight:400;font-size:18px;line-height:1;color:#0a0a0a;width:14px;}
.job:target{scroll-margin-top:100px;}
.nav-dd-careers{position:relative!important;}
.nav-dd-careers .dd-panel{left:50%;top:calc(100% + 20px);}

/* v17 — forgiving dropdowns: link-relative hover bridge for ALL menus, mega panel fixed to the bar, longer close delay */
.nav-dd{position:relative!important;}
.nav-dd:after{content:"";position:absolute;top:100%;height:44px;left:-60px;right:-60px;}
.nav-dd:hover:after{left:-100vw;right:-100vw;}
.dd-panel.mega{position:fixed!important;left:0!important;right:0!important;top:74px!important;width:100%!important;transform:translateY(-8px);}
.nav-dd:hover .dd-panel.mega,.nav-dd:focus-within .dd-panel.mega{transform:translateY(0)!important;}
.dd-panel{transition-delay:.35s!important;}
.nav-dd:hover .dd-panel,.nav-dd:focus-within .dd-panel{transition-delay:0s!important;}
@media(max-width:900px){.nav-dd:after{display:none;}}

/* v18 — dropdowns driven by .open (vb-nav.js), not raw :hover */
.nav-dd:hover .dd-panel{opacity:0!important;pointer-events:none!important;}
.nav-dd.open .dd-panel{opacity:1!important;pointer-events:auto!important;transform:translate(-50%,0)!important;transition-delay:0s!important;}
.nav-dd.open .dd-panel.mega{transform:translateY(0)!important;}
.nav-dd:hover .dd-car{transform:none!important;}
.nav-dd.open .dd-car{transform:rotate(225deg) translateY(-1px)!important;}
.nav-dd:after{display:none;}
.nav-dd.open:after{display:block;left:-100vw;right:-100vw;top:100%;height:44px;}
.nav-dd.open>a{opacity:1!important;}

/* mission hero crop on small screens: keep the headland + tower in frame */
@media(max-width:900px){img[src*="mission-hero"]{object-position:62% 50%!important;}}

/* v19b — no scroll cues anywhere (Rafael) */
.cue,.hero-cue{display:none!important;}

/* v21 — Anduril-weight nav: thicker items, main cluster left of an isolated Company+Search */
.nav-r{font-size:16px!important;gap:clamp(18px,2.2vw,34px)!important;align-items:center;}
.nav-r>a,.nav-dd>a,.vb-navbtn{font-size:clamp(15px,1.1vw,16.5px)!important;font-weight:600!important;letter-spacing:-.01em;color:#0a0a0a!important;opacity:1!important;}
.nav-r>a:hover,.nav-dd>a:hover,.vb-navbtn:hover{opacity:.55!important;}
@media(min-width:992px){.nav-r>a[href="/company/"]{margin-left:clamp(48px,7vw,150px);}}

/* v22 — Palantir-style display type: light grotesk, sentence case, airy (nav untouched) */
h1,h2,h3:not(.sx-cat),.hero-copy h1,.hero-copy-vx h1,.vxs-head h2,.vxs-txt b,.sx-name,.opener h1,.manifesto h2,.state h2,.vals h2,.camp .txt h3,.intro-s h2,.capd h2,.tt-title,.syhead h1,.contact h2,.careers h2,.sys-head h2,.job-h h3,.stats h2,.band h2,.loop h2{
  font-family:'Inter Tight','Instrument Sans',Inter,Arial,sans-serif!important;
  font-weight:350!important;font-stretch:100%!important;font-variation-settings:"wght" 350!important;
  text-transform:none!important;letter-spacing:-.02em!important;
}
.hero-copy-vx h1{font-size:clamp(42px,5.8vw,100px)!important;line-height:1.02!important;font-weight:330!important;font-variation-settings:"wght" 330!important;}
.vxs-head h2{font-weight:350!important;}
.vx-st-lines{font-family:'Inter Tight','Instrument Sans',Arial,sans-serif!important;font-weight:400!important;font-variation-settings:"wght" 400!important;text-transform:none!important;letter-spacing:-.02em!important;}
.vx-st-lines .o{-webkit-text-stroke-width:1.2px;}
.sx-cat{font-family:'Inter Tight','Instrument Sans',Arial,sans-serif!important;font-weight:500!important;text-transform:none!important;letter-spacing:-.01em!important;font-size:clamp(18px,1.5vw,24px)!important;}
.sx-name{font-weight:400!important;}
h2.big{font-weight:350!important;}

/* v23 — phone polish for the light type: balanced wraps, sturdier weight on small screens */
h1,h2,.hero-copy h1,.hero-copy-vx h1,.vxs-head h2,.opener h1{text-wrap:balance;}
@media(max-width:760px){
  h1,h2,h3:not(.sx-cat),.hero-copy h1,.hero-copy-vx h1,.vxs-head h2,.vxs-txt b,.sx-name,.opener h1,.manifesto h2,.state h2,.vals h2,.camp .txt h3,.intro-s h2,.capd h2,.contact h2,.careers h2,.sys-head h2,.job-h h3,.band h2,.loop h2{font-weight:400!important;font-variation-settings:"wght" 400!important;letter-spacing:-.015em!important;}
  .hero-copy-vx h1{font-size:clamp(30px,8.4vw,46px)!important;line-height:1.08!important;}
  .vx-st-lines{font-size:clamp(44px,13vw,72px)!important;}
}

/* v24 — the mix: Palantir-light for display heroes/titles, Anduril-medium for statements & working headings */
.vx-st-lines{font-weight:600!important;font-variation-settings:"wght" 600!important;letter-spacing:-.03em!important;}
.vx-st-lines .o{-webkit-text-stroke-width:1.6px;}
.vxs-head h2{font-weight:500!important;font-variation-settings:"wght" 500!important;letter-spacing:-.02em!important;}
.vxs-txt b{font-weight:550!important;font-variation-settings:"wght" 550!important;}
.sx-name{font-weight:500!important;font-variation-settings:"wght" 500!important;}
.camp .txt h3,.vals .vcell h3,.job-h h3,.dir h3,.step h3,.eco a b,.row h3,.prod h3,.tt-copy h3{font-weight:500!important;font-variation-settings:"wght" 500!important;}
.state h2,.manifesto h2,.band h2,.loop h2,.contact h2,.careers h2,.feat h2,.stats h2{font-weight:430!important;font-variation-settings:"wght" 430!important;}
.fact b,.stat b{font-weight:550!important;font-variation-settings:"wght" 550!important;}
@media(max-width:760px){
  .vx-st-lines{font-weight:620!important;font-variation-settings:"wght" 620!important;}
  .state h2,.manifesto h2,.band h2,.loop h2,.contact h2,.careers h2{font-weight:470!important;font-variation-settings:"wght" 470!important;}
}

/* ============================================================
   v25 — PALANTIR CLEAN PASS
   Tokens measured from live palantir.com (2026-08-26):
     display  400wt / -.0425em / lh .975
     labels   10px / .05em tracking / #b9b9b9
     body     16px / lh 1.43
   Applied as discipline, not imitation: Vaubren keeps its own
   hero, palette, ink-fill statement and card system.
   ============================================================ */

/* -- 1. ONE vertical rhythm ------------------------------------
   The site had 6 different ad-hoc section paddings. A single
   repeating measure is the main thing that reads as "designed". */
:root{
  --vb-rhythm: clamp(88px,9.5vw,152px);
  --vb-rhythm-tight: clamp(56px,6vw,96px);
  --vb-gutter: clamp(20px,4vw,64px);
  --vb-rule: rgba(10,10,10,.12);
}
.state,.careers,.manifesto,.feat,.contact,.loop,.stats,.vxs,.band{
  padding-top:var(--vb-rhythm)!important;
  padding-bottom:var(--vb-rhythm)!important;
  padding-left:var(--vb-gutter)!important;
  padding-right:var(--vb-gutter)!important;
}
.sys{padding:0 var(--vb-gutter) var(--vb-rhythm)!important;}
.strips{padding-left:var(--vb-gutter)!important;padding-right:var(--vb-gutter)!important;}

/* -- 2. Labels stop shouting -----------------------------------
   Over-tracked micro-caps everywhere is the single loudest
   generated-site tell. Palantir runs 10px at .05em. */
.mono,.kick,.ccap,.dcap,.sy-note,.vx-kicker{
  font-size:10px!important;
  letter-spacing:.11em!important;
  line-height:1.6!important;
  font-weight:500!important;
}
.kick,.ccap,.dcap,.sy-note{color:#7d7d76!important;}
.kick i{width:16px!important;height:1px!important;opacity:.5;}

/* -- 3. Body copy: fixed measure, tighter leading --------------
   Was scaling to 19px at 1.6 — too loose to read as considered. */
.state p,.careers p,.manifesto p,.contact p,.feat p,.loop p,
.vcell p,.row p,.txt p,.prod p{
  font-size:clamp(16px,1.1vw,17.5px)!important;
  line-height:1.5!important;
  max-width:64ch!important;
  letter-spacing:-.003em!important;
}

/* -- 4. Display tracking discipline ----------------------------
   Hero is untouched (approved Anduril weight). Section heads
   inherit Palantir's tighter optical tracking. */
.state h2,.careers h2,.manifesto h2,.contact h2,.feat h2,.loop h2,.stats h2{
  letter-spacing:-.038em!important;
  line-height:.99!important;
  text-wrap:balance;
}

/* -- 5. One hairline, everywhere -------------------------------
   32 separate border declarations previously; unify the weight
   and value so rules read as a system. */
.state,.careers,.manifesto,.feat,.loop,.contact{
  border-top:1px solid var(--vb-rule)!important;
}
.hero + *,.strips{border-top:0!important;}

/* -- 6. Products: quieter chrome, more air ---------------------
   Frosted-glass pill buttons are a generated-UI signature.
   Replaced with a hairline ghost control. Card gains breathing
   room. Legibility is baked into the art, not overlaid in CSS. */
.sx-card{min-height:clamp(440px,42vw,620px)!important;}
.sx-top,.sx-bottom{padding:clamp(24px,2.6vw,38px)!important;}

.sx-name{letter-spacing:-.042em!important;line-height:.98!important;}
.sx-cat{font-size:clamp(10px,.9vw,11px)!important;letter-spacing:.12em!important;font-weight:500!important;opacity:.86;}
.sx-line{font-size:clamp(14px,1.05vw,16px)!important;line-height:1.45!important;max-width:34ch!important;}
.sx-btn{
  background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  border:1px solid rgba(255,255,255,.42)!important;
  padding:11px 18px!important;font-size:12px!important;letter-spacing:.08em!important;
  text-transform:uppercase;font-weight:500!important;
  transition:background .35s ease,border-color .35s ease!important;
}
.sx-card:hover .sx-btn{background:rgba(255,255,255,.1)!important;border-color:rgba(255,255,255,.8)!important;}
.sx-grid{gap:clamp(12px,1.2vw,18px)!important;}

/* -- 7. Motion restraint --------------------------------------
   Palantir barely moves. Uniform, slow, no easing personality. */
.sx-card,.sx-bg,.sx-btn,.eco a,.row,.prod{
  transition-duration:.4s!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;
}

@media(max-width:760px){
  :root{--vb-rhythm:clamp(64px,13vw,92px);--vb-gutter:20px;}
  .state p,.careers p,.manifesto p,.contact p{max-width:none!important;}
  .sx-top,.sx-bottom{padding:22px!important;}
}

/* v26 — Citadel card now carries the REAL Citadel operational picture
   (screenshot of the running GCS, not a staged photo). Left-align the
   crop so the app's tool rail reads as chrome and the live detection
   cards clear the card's own copy. */
.sx-photo .sx-bg img{object-position:0% 50%!important;}
.sx-photo .sx-line{max-width:28ch!important;}
/* Portrait cards crop to a window narrower than the gap between the app's
   tool rail and its alert cards, which sliced the alert box at the edge.
   Zoom a touch and offset so the window lands cleanly between them:
   pure operational map with the tracked aircraft, no cut UI. */
@media(max-width:760px){
  .sx-photo .sx-bg img{object-position:3% 50%!important;transform:scale(1.14)!important;}
}

/* v27 — statement now reads "Institutional Sovereignty in the age of AI".
   Longer copy than "Detect. Decide. Respond.", so the type comes down and
   the lines are locked to one line each (the .f fill overlay is absolutely
   positioned, so a wrap would desync it from its outline). */
.vx-st-lines{
  font-size:clamp(34px,6.4vw,104px)!important;
  letter-spacing:-.028em!important;
  line-height:.99!important;
}
.vx-st-lines .ln{white-space:nowrap;}
.vx-st-lines .o,.vx-st-lines .f{-webkit-text-stroke-width:1.4px!important;}
.vx-st-sub{margin-top:30px!important;}
@media(max-width:760px){
  .vx-st-lines{font-size:clamp(30px,12.4vw,58px)!important;}
  .vx-st-lines .o,.vx-st-lines .f{-webkit-text-stroke-width:.9px!important;}
}

/* v31 — minimal card scrims. The originals ramped ~40% of the card height to
   .55/.60 black (heavy, and a long "slow" ramp). Cut to a short, light edge.
   Legibility now comes from a soft shadow on the TEXT itself — localized to
   the letters instead of a band across the artwork. Needed because
   .sx-render's backdrop ends near-white (#e2e2e0) under white type. */
.sx-photo .sx-bg:after{
  background:linear-gradient(180deg,rgba(0,0,0,.16) 0%,rgba(0,0,0,0) 15%,rgba(0,0,0,0) 84%,rgba(0,0,0,.20) 100%)!important;
}
.sx-render .sx-bg:after{
  background:linear-gradient(180deg,rgba(0,0,0,.10) 0%,rgba(0,0,0,0) 15%,rgba(0,0,0,0) 82%,rgba(0,0,0,.26) 100%)!important;
}
.sx-name{text-shadow:0 1px 2px rgba(0,0,0,.34),0 3px 22px rgba(0,0,0,.44);}
.sx-cat,.sx-line,.sx-tag{text-shadow:0 1px 2px rgba(0,0,0,.30),0 2px 14px rgba(0,0,0,.34);}
.sx-btn{text-shadow:0 1px 2px rgba(0,0,0,.28);}
/* The Vanguard backdrop blew out to #e2e2e0 at the bottom, which is why it
   needed a heavy black band under white type. Roll the sweep off at the
   bottom like a real lit cyclorama instead — then the scrim can stay minimal
   and the wordmark still reads. */
.sx-render{background:linear-gradient(180deg,#6b6b6b 0%,#a3a3a2 44%,#787876 100%)!important;}
.sx-render .sx-bg:after{
  background:linear-gradient(180deg,rgba(0,0,0,.10) 0%,rgba(0,0,0,0) 15%,rgba(0,0,0,0) 84%,rgba(0,0,0,.14) 100%)!important;
}

/* v33 — .flow (Citadel "How it works") shipped with ZERO bottom padding, so
   its last paragraph butted straight into the footer. Match the site rhythm. */
.flow{padding-bottom:var(--vb-rhythm)!important;}
/* Newsroom's .secwrap shipped with 0 bottom padding too — same footer-collision
   bug as .flow. Audited every page; these were the only two. */
.secwrap{padding-bottom:var(--vb-rhythm)!important;}

/* v35 — scrims removed outright. The v32 backdrop roll-off (#787876 at the
   bottom of .sx-render) plus the text-shadow on .sx-name/.sx-cat/.sx-line now
   carry legibility on their own, so no overlay is needed on either card. */
.sx-photo .sx-bg:after,.sx-render .sx-bg:after{display:none!important;}
