@font-face{font-family:'Space Grotesk';src:url('../fonts/space-grotesk-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('../fonts/space-grotesk-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('../fonts/space-grotesk-700.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Instrument Serif';src:url('../fonts/instrument-serif-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Instrument Serif';src:url('../fonts/instrument-serif-400-italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url('../fonts/jetbrains-mono-400.woff2') format('woff2');font-weight:400;font-display:swap}

:root{
  --navy:#0A2240; --cream:#FAF7F1; --slate:#4E5D72; --muted:#6B7A90;
  --line:#D6DCE6; --line-soft:#E7EBF1; --accent-1:#7C93B5; --accent-2:#8FA3BE;
  --panel:#F4F6FA; --panel-2:#EDF1F7;
  --font-sans:'Space Grotesk',system-ui,sans-serif;
  --font-display:'Instrument Serif',Georgia,serif;
  --font-mono:'JetBrains Mono',ui-monospace,monospace;
  --gutter:15vw; --maxw:1120px; --radius:18px; --radius-pill:999px;
}
@media (max-width:900px){ :root{ --gutter:7vw; } }

*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--cream);color:var(--navy);font-family:var(--font-sans);
     -webkit-font-smoothing:antialiased;line-height:1.5}
h1,h2,h3,h4{margin:0;letter-spacing:-0.03em;font-weight:700}
a{color:inherit;text-decoration:none}
img,video,canvas{max-width:100%;display:block}
.mono{font-family:var(--font-mono);font-size:12.5px;letter-spacing:0.04em;text-transform:uppercase}
.serif{font-family:var(--font-display);font-weight:400;letter-spacing:-0.01em;font-style:italic}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  #heroCanvas{display:none}
}

/* -- Skip link ------------------------------------------------------- */
.v-skip{position:absolute;left:-9999px;top:0;z-index:100;padding:10px 16px;
  background:var(--navy);color:var(--cream);border-radius:0 0 8px 0}
.v-skip:focus{left:0}

/* -- Global nav (prototype lines 53-66) ------------------------------- */
.v-nav{position:sticky;top:14px;z-index:50;display:flex;align-items:center;
  justify-content:space-between;gap:16px;flex-wrap:wrap;
  width:min(1120px,calc(100% - 8vw));margin:14px auto 0;
  padding:10px 12px 10px 18px;border-radius:var(--radius-pill);
  background:rgba(255,255,255,0.55);
  backdrop-filter:blur(16px) saturate(180%);
  -webkit-backdrop-filter:blur(16px) saturate(180%);
  border:1px solid rgba(255,255,255,0.75);
  box-shadow:inset 0 1px 1px rgba(255,255,255,0.9),0 12px 34px rgba(10,34,64,0.10)}

.v-nav__brand{display:flex;align-items:baseline;gap:10px;flex-shrink:0}
.v-nav__logo{width:34px;height:34px;border-radius:50%;align-self:center}
.v-nav__word{font-size:23px;font-weight:700;letter-spacing:-0.03em;color:var(--navy)}
.v-nav__dot{width:6px;height:6px;border-radius:50%;background:var(--accent-1);
  display:inline-block;animation:vblink 2.4s ease-in-out infinite}
@keyframes vblink{0%,100%{opacity:1}50%{opacity:0.25}}

.v-nav__links{display:flex;align-items:center;flex-wrap:wrap;
  justify-content:center;gap:2px;min-width:0;list-style:none;margin:0;padding:0}
.v-nav__link{display:block;padding:9px 12px;white-space:nowrap;
  border-radius:var(--radius-pill);color:var(--slate);
  transition:color 160ms,background 160ms}
.v-nav__link:hover{color:var(--navy);background:var(--panel)}

.v-nav__cta{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;
  padding:11px 18px;border-radius:var(--radius-pill);
  background:var(--navy);color:var(--cream);white-space:nowrap;
  transition:background 160ms}
.v-nav__cta:hover{background:#0d2a4f}
.v-nav__cta .v-icon{width:14px;height:14px}

.v-nav__toggle{display:none;flex-direction:column;justify-content:center;
  gap:4px;width:34px;height:34px;padding:0;border:0;background:transparent;
  cursor:pointer}
.v-nav__toggle span{display:block;width:100%;height:2px;background:var(--navy)}

@media (max-width:900px){
  .v-nav__toggle{display:flex}
  .v-nav__links{flex-basis:100%;justify-content:flex-start;
    flex-direction:column;align-items:stretch;gap:0;max-height:0;
    overflow:hidden}
  .v-nav.is-open .v-nav__links{max-height:400px}
  .v-nav__link{padding:12px 8px}
}

/* -- Closing CTA banner (prototype lines 826-832) --------------------- */
.v-cta-banner{padding:120px var(--gutter);border-top:1px solid rgba(10,34,64,0.08);
  background:linear-gradient(180deg,var(--panel),var(--panel-2))}
.v-cta-banner__inner{display:flex;flex-direction:column;align-items:flex-start;
  gap:22px;max-width:820px}
.v-cta-banner__title{font-size:clamp(32px,4.4vw,58px);line-height:1.05;
  letter-spacing:-0.04em;font-weight:600;color:var(--navy)}
.v-cta-banner__sub{margin:0;font-size:18px;color:var(--slate)}
.v-cta-banner__btn{display:inline-flex;align-items:center;gap:8px;
  padding:16px 28px;border-radius:var(--radius-pill);background:var(--navy);
  color:var(--cream);font-weight:600;transition:background 160ms}
.v-cta-banner__btn:hover{background:#0d2a4f}
.v-cta-banner__btn .v-icon{width:16px;height:16px}

/* -- Footer (prototype lines 834-858) --------------------------------- */
.v-footer{padding:52px var(--gutter) 44px;border-top:1px solid rgba(10,34,64,0.08);
  display:flex;flex-wrap:wrap;gap:40px;justify-content:space-between;
  align-items:flex-start}
.v-footer__about{max-width:320px}
.v-footer__brand{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.v-footer__logo{width:30px;height:30px;border-radius:50%}
.v-footer__word{font-size:21px;font-weight:700;letter-spacing:-0.03em;color:var(--navy)}
.v-footer__tagline{margin:0;font-size:14.5px;color:var(--muted)}

.v-footer__cols{display:flex;gap:56px;flex-wrap:wrap;font-size:14.5px}
.v-footer__col{display:flex;flex-direction:column;gap:9px}
.v-footer__col a,.v-footer__meta{color:var(--slate)}
.v-footer__col a:hover{color:var(--navy)}
.v-footer__heading{color:#5E6C82}

.v-footer__copy{color:#5E6C82;align-self:flex-end}

/* -- Shared home components ------------------------------------------ */
.v-home-section{padding:112px var(--gutter);border-bottom:1px solid rgba(10,34,64,0.08)}
.v-icon{width:18px;height:18px;flex:0 0 auto}
.v-eyebrow{display:block;margin-bottom:20px;color:var(--muted)}
.v-display,.v-section-head h2,.v-faq h2{font-size:clamp(32px,4.2vw,56px);line-height:1.08;
  letter-spacing:-0.04em;font-weight:600;text-wrap:balance}
.v-section-head{margin-bottom:44px}
.v-section-head--split{display:flex;align-items:flex-end;justify-content:space-between;
  flex-wrap:wrap;gap:26px}
.v-section-head--split>span{color:var(--muted)}
.v-actions{display:flex;flex-wrap:wrap;gap:12px}
.v-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;
  padding:14px 23px;border:1px solid var(--navy);border-radius:var(--radius-pill);
  font-weight:600;transition:transform 180ms,background 180ms,color 180ms}
.v-btn:hover{transform:translateY(-2px)}
.v-btn--primary{background:var(--navy);color:var(--cream)}
.v-btn--primary:hover{background:#0d2a4f}
.v-btn--secondary{background:rgba(255,255,255,0.55);color:var(--navy)}
.v-btn--secondary:hover,.v-btn--light:hover{background:#fff}
.v-btn--light{background:rgba(255,255,255,0.72);border-color:rgba(255,255,255,0.9)}
.v-btn--small{min-height:42px;padding:10px 17px;font-size:14px}
.v-btn .v-icon{width:16px;height:16px}
.v-btn:focus-visible,.v-service-card:focus-visible,.v-case-card:focus-visible,
.v-case-card__brand a:focus-visible,.v-post-card__title a:focus-visible,
.v-faq summary:focus-visible{outline:3px solid var(--accent-1);outline-offset:4px}

.v-panel{position:relative;min-height:220px;overflow:hidden;background:var(--panel-2)}
.v-panel::before,.v-panel::after{content:"";position:absolute;inset:0}
.v-panel--gradient::before{background:radial-gradient(circle at 24% 30%,rgba(143,163,190,.72),transparent 31%),
  radial-gradient(circle at 76% 66%,rgba(124,147,181,.58),transparent 34%),
  linear-gradient(135deg,#f8f9fb,#dfe6ef)}
.v-panel--gradient::after{background-image:linear-gradient(rgba(10,34,64,.06) 1px,transparent 1px),
  linear-gradient(90deg,rgba(10,34,64,.06) 1px,transparent 1px);background-size:38px 38px;
  mask-image:linear-gradient(135deg,#000,transparent)}
.v-panel--grid::before{background-image:linear-gradient(rgba(10,34,64,.08) 1px,transparent 1px),
  linear-gradient(90deg,rgba(10,34,64,.08) 1px,transparent 1px);background-size:42px 42px;
  transform:perspective(500px) rotateX(52deg) scale(1.4);transform-origin:center bottom}
.v-panel__label{position:absolute;left:22px;bottom:20px;z-index:1;padding:7px 11px;
  border:1px solid rgba(255,255,255,.78);border-radius:var(--radius-pill);
  background:rgba(255,255,255,.62);backdrop-filter:blur(12px);color:var(--slate)}
.v-media{margin:0;isolation:isolate;background:#DCE3EC}
.v-media__image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.v-media::after{z-index:1;background:linear-gradient(180deg,rgba(10,34,64,.03) 35%,rgba(10,34,64,.42))}
.v-media .v-panel__label{z-index:2;color:var(--navy)}
.v-media__credit{position:absolute;top:10px;right:10px;z-index:2;max-width:calc(100% - 20px);
  margin:0;padding:5px 8px;border-radius:8px;background:rgba(10,34,64,.68);color:#fff;
  font-size:10px;line-height:1.35;backdrop-filter:blur(10px)}
.v-media__credit a{color:#fff;text-decoration:underline;text-underline-offset:2px}

/* -- Home: hero (prototype lines 69-120) ----------------------------- */
.v-hero{position:relative;min-height:100vh;margin-top:-82px;padding-top:180px;
  display:flex;align-items:center;overflow:hidden}
.v-hero__wash{position:absolute;inset:0;background:radial-gradient(120% 90% at 72% 10%,
  #EDF1F7 0%,#F7F4EE 45%,#FAF7F1 100%)}
.v-field{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}
.v-hero__grid{position:absolute;inset:0;opacity:.42;pointer-events:none;
  background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),
  linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);background-size:64px 64px;
  mask-image:radial-gradient(120% 90% at 70% 0%,#000 20%,transparent 75%)}
.v-hero__inner{position:relative;z-index:1;display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);gap:56px;align-items:center;width:100%}
.v-hero__copy{display:flex;flex-direction:column;align-items:flex-start;gap:26px}
.v-kicker{margin:0;color:var(--slate)}
.v-kicker--glass{display:flex;align-items:center;gap:10px;padding:7px 15px 7px 11px;
  border:1px solid rgba(255,255,255,.75);border-radius:var(--radius-pill);
  background:rgba(255,255,255,.55);box-shadow:inset 0 1px 1px rgba(255,255,255,.9),
  0 6px 18px rgba(10,34,64,.08);backdrop-filter:blur(16px)}
.v-kicker--glass span{width:6px;height:6px;border-radius:50%;background:var(--navy)}
.v-hero__title{font-size:clamp(40px,4.6vw,72px);line-height:1.02;letter-spacing:-.05em;
  font-weight:600;text-wrap:balance}
.v-hero__title span{display:inline;background:linear-gradient(transparent 62%,rgba(124,147,181,.38) 0)}
.v-hero__lede{max-width:590px;margin:0;font-size:19px;line-height:1.58;color:var(--slate)}
.v-hero__lede strong{color:var(--navy)}
.v-hero__lede em,.v-cadence-card em,.v-ai-stage em{font-family:var(--font-display);
  font-size:1.12em;color:var(--navy)}
.v-hero__proof{display:flex;gap:12px;flex-wrap:wrap;width:100%;max-width:590px;
  margin:5px 0 0;padding-top:21px;border-top:1px solid rgba(10,34,64,.1);
  font-size:14px;color:var(--slate)}
.v-hero__proof strong{color:var(--navy)}

.v-live-card{padding:22px;border:1px solid rgba(255,255,255,.78);border-radius:26px;
  background:rgba(255,255,255,.55);backdrop-filter:blur(18px) saturate(180%);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.95),0 26px 60px rgba(10,34,64,.14)}
.v-live-card__head,.v-live-card__foot{display:flex;justify-content:space-between;gap:12px;
  color:var(--muted)}
.v-live-card__head{padding:0 4px 16px;border-bottom:1px solid rgba(10,34,64,.08)}
.v-live-card__status{display:flex;align-items:center;gap:6px;color:var(--navy)}
.v-live-card__status i{width:6px;height:6px;border-radius:50%;background:var(--navy);animation:vblink 2s ease-in-out infinite}
.v-live-card__stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}
.v-live-card__stats>div{padding:16px;border:1px solid rgba(255,255,255,.9);border-radius:14px;background:rgba(255,255,255,.72)}
.v-live-card__stats span{display:block;color:var(--muted)}
.v-live-card__stats strong{display:block;margin-top:6px;font-size:clamp(19px,2vw,28px);letter-spacing:-.03em;overflow-wrap:anywhere}
.v-live-card__signal{margin-top:16px;padding:18px;border:1px solid rgba(255,255,255,.8);
  border-radius:14px;background:rgba(10,34,64,.05)}
.v-live-card__signal>div:first-child{display:flex;justify-content:space-between;gap:12px;color:var(--muted)}
.v-signal-bars,.v-test-bars{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.v-signal-bars>span,.v-test-bars>span{display:flex;align-items:center;gap:10px}
.v-signal-bars i,.v-test-bars i{width:54px;font-style:normal;font-size:10px;color:var(--muted)}
.v-signal-bars b,.v-test-bars b{flex:1;height:8px;border-radius:var(--radius-pill);background:rgba(10,34,64,.1);overflow:hidden}
.v-signal-bars em,.v-test-bars em{display:block;width:var(--value);height:100%;background:var(--navy);border-radius:inherit}
.v-signal-bars>span:nth-child(2) em,.v-test-bars>span:nth-child(2) em{background:var(--accent-2)}
.v-signal-bars>span:nth-child(3) em,.v-test-bars>span:nth-child(3) em{background:var(--accent-1)}
.v-live-card__foot{margin:14px 4px 0}.v-live-card__foot strong{color:var(--navy);overflow-wrap:anywhere}

/* -- Home: proof, marquee, approach and cadence ---------------------- */
.v-proof-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;
  padding-top:84px;padding-bottom:72px}
.v-proof-strip>div{padding:26px 28px;background:rgba(255,255,255,.66);border-block:1px solid rgba(255,255,255,.8)}
.v-proof-strip>div:first-child{border-left:1px solid rgba(255,255,255,.8);border-radius:24px 0 0 24px}
.v-proof-strip>div:last-child{border-right:1px solid rgba(255,255,255,.8);border-radius:0 24px 24px 0}
.v-proof-strip strong{display:block;font-size:clamp(22px,2.4vw,34px);letter-spacing:-.04em;overflow-wrap:anywhere}
.v-proof-strip span{display:block;margin-top:5px;color:var(--muted)}
.v-marquee{padding:28px 0;overflow:hidden;background:linear-gradient(180deg,var(--panel),var(--panel-2));
  border-bottom:1px solid rgba(10,34,64,.08)}
.v-marquee__track{display:flex;width:max-content;color:var(--muted);animation:vmarquee 38s linear infinite}
.v-marquee__track>div{display:flex;gap:44px;padding-right:44px}
.v-marquee__track span::after{content:"✦";margin-left:44px;color:var(--accent-1)}
@keyframes vmarquee{to{transform:translateX(-50%)}}
.v-approach{padding-top:88px;padding-bottom:40px}
.v-approach__panel{position:relative;min-height:430px;border-radius:28px;overflow:hidden;
  box-shadow:0 30px 70px rgba(10,34,64,.14)}
.v-approach__panel>.v-panel{position:absolute;inset:0;min-height:100%}
.v-approach__copy{position:absolute;left:28px;bottom:28px;z-index:2;max-width:430px;
  padding:26px;border:1px solid rgba(255,255,255,.8);border-radius:20px;
  background:rgba(255,255,255,.67);backdrop-filter:blur(18px);box-shadow:0 14px 40px rgba(10,34,64,.16)}
.v-approach__copy span{color:var(--muted)}
.v-approach__copy p{margin:10px 0 0;color:var(--navy)}
.v-approach__panel>.v-btn{position:absolute;right:28px;bottom:28px;z-index:2}
.v-cadence{padding-top:64px}
.v-cadence__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.v-cadence-card{overflow:hidden;border:1px solid rgba(255,255,255,.8);border-radius:26px;
  background:rgba(255,255,255,.6);box-shadow:inset 0 1px 1px rgba(255,255,255,.95),
  0 18px 46px rgba(10,34,64,.1)}
.v-cadence-card__body{padding:28px}.v-cadence-card__body>span{color:var(--muted)}
.v-cadence-card h3{margin:14px 0 8px;font-size:23px;font-weight:600}
.v-cadence-card p{margin:0;color:var(--slate)}

/* -- Home: problems and services ------------------------------------ */
.v-problems .v-display{max-width:920px;margin-bottom:54px}
.v-problems .v-display u{text-decoration-color:var(--accent-1);text-underline-offset:7px}
.v-problems__grid,.v-services-grid,.v-process__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;overflow:hidden;border:1px solid rgba(255,255,255,.72);border-radius:24px;
  background:rgba(226,231,238,.55);box-shadow:inset 0 1px 1px rgba(255,255,255,.9),
  0 18px 48px rgba(10,34,64,.09)}
.v-problems__grid article,.v-service-card,.v-step{padding:31px 28px;background:rgba(255,255,255,.66)}
.v-problems__grid article>span{color:var(--accent-1)}
.v-problems__grid h3,.v-step h3{margin:14px 0 10px;font-size:20px;font-weight:600}
.v-problems__grid p,.v-step p{margin:0;color:var(--slate)}
.v-problems__grid em{font-family:var(--font-display);font-size:1.12em;color:var(--navy)}
.v-service-card{position:relative;display:flex;min-height:280px;flex-direction:column;
  transition:background 260ms,transform 260ms}
.v-service-card:hover{z-index:1;background:#fff;transform:translateY(-3px)}
.v-service-card__meta{display:flex;justify-content:space-between;color:var(--muted)}
.v-service-card__title{margin:17px 0 10px;font-size:22px;font-weight:600}
.v-service-card__blurb{margin:0;color:var(--slate)}
.v-service-card__arrow{display:flex;align-items:center;justify-content:center;width:36px;height:36px;
  margin-top:auto;padding-top:24px;color:var(--navy)}

/* -- Home: CSS-only AI stage machine -------------------------------- */
.v-ai-machine,.v-process{background:linear-gradient(180deg,var(--panel),var(--panel-2))}
.v-ai-machine>.v-display{max-width:880px;margin-bottom:16px}
.v-ai-machine__lede{max-width:720px;margin:0 0 46px;font-size:18px;color:var(--slate)}
.v-ai-machine__shell{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);
  min-height:455px;overflow:hidden;border:1px solid rgba(255,255,255,.72);border-radius:24px;
  background:rgba(226,231,238,.55);box-shadow:inset 0 1px 1px rgba(255,255,255,.9),
  0 18px 48px rgba(10,34,64,.09)}
.v-ai-machine__nav{display:flex;flex-direction:column;gap:6px;margin:0;padding:16px;
  list-style:none;background:rgba(255,255,255,.66)}
.v-ai-machine__nav>li:not(.v-ai-machine__status){display:flex;gap:12px;padding:14px 15px;
  border:1px solid transparent;border-radius:12px;animation:v-ai-nav-cycle 30s linear infinite;
  animation-delay:calc(var(--stage) * -24s)}
.v-ai-machine__nav>li>span:first-child{padding-top:3px;color:var(--muted)}
.v-ai-machine__nav strong,.v-ai-machine__nav small{display:block}
.v-ai-machine__nav strong{font-size:15px}.v-ai-machine__nav small{margin-top:2px;color:var(--muted)}
.v-ai-machine__status{margin-top:auto;padding:14px 16px 0;border-top:1px dashed var(--line);color:var(--muted)}
.v-ai-machine__status span{color:var(--navy)}
.v-ai-stage-stack{position:relative;min-width:0;min-height:455px;background:rgba(255,255,255,.72)}
.v-ai-stage{position:absolute;inset:0;padding:38px 40px;opacity:0;visibility:hidden;
  animation:v-ai-stage-cycle 30s linear infinite;animation-delay:calc(var(--stage) * -24s)}
.v-ai-stage>span{color:var(--navy)}
.v-ai-stage h3{margin:14px 0 12px;font-size:clamp(25px,2.3vw,32px);font-weight:600}
.v-ai-stage>p:not(.v-ai-stage__foot){max-width:650px;margin:0 0 26px;color:var(--slate)}
.v-ai-stage__foot{margin:24px 0 0;color:var(--muted)}
.v-ai-stage__foot strong{color:var(--navy);overflow-wrap:anywhere}
@keyframes v-ai-stage-cycle{
  0%,16%{opacity:1;visibility:visible;transform:translateY(0)}
  20%,96%{opacity:0;visibility:hidden;transform:translateY(8px)}
  100%{opacity:1;visibility:visible;transform:translateY(0)}
}
@keyframes v-ai-nav-cycle{
  0%,16%{background:rgba(255,255,255,.88);border-color:var(--navy)}
  20%,96%{background:transparent;border-color:transparent}
  100%{background:rgba(255,255,255,.88);border-color:var(--navy)}
}
.v-ai-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.v-ai-metrics--four{grid-template-columns:repeat(2,minmax(0,1fr))}
.v-ai-metrics>div{padding:14px;border:1px solid var(--line-soft);border-radius:10px;background:rgba(255,255,255,.66)}
.v-ai-metrics span{display:block;color:var(--muted)}
.v-ai-metrics strong{display:block;margin-top:5px;font-size:18px;overflow-wrap:anywhere}
.v-ai-chips,.v-flow{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.v-ai-chips span,.v-flow span{padding:9px 13px;border:1px solid var(--line);border-radius:var(--radius-pill);
  background:rgba(255,255,255,.66);font-size:13px;color:var(--slate)}
.v-ai-chips .is-approved{border-color:var(--navy);background:var(--navy);color:var(--cream)}
.v-flow{gap:10px}.v-flow span{border-radius:10px}.v-flow i{font-style:normal;color:var(--accent-2)}
.v-flow .is-active{border-color:var(--navy);background:rgba(10,34,64,.08);color:var(--navy)}
.v-test-bars small{width:60px;color:var(--muted)}

/* -- Home: work, process and FAQ ------------------------------------ */
.v-work-preview>.v-display,.v-process>.v-display{max-width:900px;margin-bottom:48px}
.v-work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:28px}
.v-case-card{overflow:hidden;border:1px solid rgba(255,255,255,.76);border-radius:24px;
  background:rgba(255,255,255,.66);box-shadow:inset 0 1px 1px rgba(255,255,255,.9),
  0 18px 48px rgba(10,34,64,.09);transition:transform 260ms,box-shadow 260ms}
.v-case-card:hover{transform:translateY(-4px);box-shadow:0 28px 64px rgba(10,34,64,.14)}
.v-case-card__body{padding:24px}.v-case-card__sector{color:var(--muted)}
.v-case-card__brand{margin:10px 0 8px;font-size:22px;font-weight:600}
.v-case-card__summary{margin:0;color:var(--slate)}
.v-case-card__metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;
  margin:22px 0 0;padding:18px 0 0;border-top:1px solid var(--line-soft);list-style:none}
.v-case-card__metrics li{color:var(--muted);overflow-wrap:anywhere}
.v-case-card__metrics span{display:block;margin-bottom:4px;color:var(--navy)}
.v-step>span{color:var(--navy)}
.v-faq{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(0,1.4fr);gap:56px;align-items:start}
.v-faq__items details{border-bottom:1px solid rgba(10,34,64,.1)}
.v-faq summary{display:flex;justify-content:space-between;gap:20px;padding:24px 0;
  cursor:pointer;font-size:19px;font-weight:500;list-style:none}
.v-faq summary::-webkit-details-marker{display:none}
.v-faq summary i{display:flex;transition:transform 180ms}.v-faq summary .v-icon{width:20px;height:20px}
.v-faq details[open] summary i{transform:rotate(45deg)}
.v-faq details p{max-width:650px;margin:-6px 0 24px;color:var(--slate)}

@media (max-width:1100px){
  .v-problems__grid,.v-services-grid,.v-process__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v-service-card{min-height:240px}
}
@media (max-width:820px){
  .v-home-section{padding-top:84px;padding-bottom:84px}
  .v-hero{padding-top:154px}
  .v-hero__inner,.v-ai-machine__shell,.v-faq{grid-template-columns:1fr}
  .v-live-card{max-width:620px}
  .v-cadence__grid,.v-work-grid{grid-template-columns:1fr}
  .v-ai-machine__nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));overflow-x:auto}
  .v-ai-machine__nav>li:not(.v-ai-machine__status){min-width:150px}
  .v-ai-machine__status{display:none}
}
@media (max-width:640px){
  :root{--gutter:5.5vw}
  .v-nav{border-radius:18px}
  .v-nav__cta{display:none}
  .v-home-section{padding-top:72px;padding-bottom:72px}
  .v-hero{padding-top:148px}
  .v-hero__title{font-size:clamp(38px,12vw,54px)}
  .v-hero__lede{font-size:17px}
  .v-btn{width:100%}
  .v-proof-strip,.v-problems__grid,.v-services-grid,.v-process__grid,
  .v-cadence__grid,.v-work-grid,.v-live-card__stats,.v-ai-metrics,
  .v-ai-metrics--four,.v-case-card__metrics,.v-about-values,.v-blog-grid,
  .v-post-sidebar,.v-service-siblings__grid,.v-case-metrics,.v-roster__grid,
  .v-founder-card{grid-template-columns:1fr}
  .v-proof-strip>div:first-child{border-radius:20px 20px 0 0}
  .v-proof-strip>div:last-child{border-radius:0 0 20px 20px}
  .v-approach__panel{min-height:500px}
  .v-approach__copy{left:18px;right:18px;bottom:86px}
  .v-approach__panel>.v-btn{left:18px;right:18px;bottom:18px;width:auto}
  .v-ai-machine__nav{grid-template-columns:1fr;overflow:visible}
  .v-ai-machine__nav>li:not(.v-ai-machine__status){min-width:0}
  .v-ai-stage-stack{min-height:610px}.v-ai-stage{padding:30px 24px}
  .v-case-card__metrics{gap:14px}
}
@media (prefers-reduced-motion:reduce){
  .v-marquee__track{transform:none}
  .v-ai-stage{display:none}
  .v-ai-stage:first-child{display:block;position:relative;opacity:1;visibility:visible;transform:none}
  .v-ai-stage-stack{min-height:0}
  .v-ai-machine__nav>li:not(.v-ai-machine__status){background:transparent;border-color:transparent}
  .v-ai-machine__nav>li:first-child{background:rgba(255,255,255,.88);border-color:var(--navy)}
}

/* -- Core inner pages (prototype lines 454-628) ---------------------- */
.v-page-hero{padding:104px var(--gutter) 64px;border-bottom:1px solid rgba(10,34,64,.08)}
.v-page-hero h1{max-width:920px;font-size:clamp(38px,5.2vw,68px);line-height:1.05;
  letter-spacing:-.045em;font-weight:600;text-wrap:balance}
.v-page-hero>p{max-width:720px;margin:20px 0 0;font-size:18px;color:var(--slate)}
.v-page-hero>p strong{color:var(--navy)}

.v-service-list{display:flex;flex-direction:column;padding:0 var(--gutter) 112px}
.v-service-row{position:relative;display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);
  gap:40px;padding:44px 0;border-bottom:1px solid rgba(10,34,64,.08);
  transition:padding 220ms,background 220ms}
.v-service-row:hover{padding-inline:20px;background:rgba(255,255,255,.48)}
.v-service-row.is-featured{background:linear-gradient(90deg,rgba(10,34,64,.06),transparent 68%)}
.v-service-row>div:first-child>span{color:var(--navy)}
.v-service-row h2{margin:12px 0 0;font-size:30px;font-weight:600}
.v-service-row p{margin:0 0 16px;font-size:16.5px;color:var(--slate)}
.v-service-row ul{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;color:var(--muted)}
.v-service-row li{padding:7px 12px;border:1px solid var(--line);border-radius:var(--radius-pill)}
.v-service-row__arrow{position:absolute;right:0;top:24px;display:flex;align-items:center;
  justify-content:center;width:38px;height:38px;border:1px solid var(--line);border-radius:50%}
.v-service-row:focus-visible{outline:3px solid var(--accent-1);outline-offset:4px}

.v-work-page{padding:64px var(--gutter) 40px}
.v-roster{padding:36px var(--gutter) 112px}
.v-roster__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:1px;
  overflow:hidden;border:1px solid rgba(255,255,255,.72);border-radius:24px;background:rgba(226,231,238,.55)}
.v-roster__grid>div{padding:20px;background:rgba(255,255,255,.66)}
.v-roster .v-panel{min-height:88px;border-radius:12px}
.v-roster .v-panel__label{display:none}
.v-roster__grid>div>span{display:block;margin-top:12px;color:var(--slate);overflow-wrap:anywhere}

.v-about-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;
  margin:96px var(--gutter);overflow:hidden;border:1px solid rgba(255,255,255,.72);
  border-radius:24px;background:rgba(226,231,238,.55);box-shadow:0 18px 48px rgba(10,34,64,.09)}
.v-about-values article{padding:34px 30px;background:rgba(255,255,255,.66)}
.v-about-values h2{margin:0 0 10px;font-size:20px;font-weight:600}
.v-about-values p{margin:0;color:var(--slate)}
.v-about-values em{font-family:var(--font-display);font-size:1.12em;color:var(--navy)}
.v-about-story{display:grid;grid-template-columns:minmax(260px,1fr) minmax(0,1.2fr);
  gap:48px;align-items:center;padding:0 var(--gutter) 112px}
.v-about-story>.v-panel{min-height:410px;border:1px solid rgba(255,255,255,.75);
  border-radius:26px;box-shadow:0 22px 58px rgba(10,34,64,.12)}
.v-about-story h2,.v-founders>h2{font-size:clamp(28px,3.2vw,44px);line-height:1.1;
  letter-spacing:-.035em;font-weight:600}
.v-about-story p{margin:18px 0 0;font-size:16.5px;color:var(--slate)}
.v-about-story__people{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:14px;
  align-items:center;margin-top:32px;padding-top:28px;border-top:1px solid rgba(10,34,64,.1)}
.v-avatar{display:flex;align-items:center;justify-content:center;width:46px;height:46px;
  border-radius:50%;background:var(--navy);color:var(--cream)}
.v-about-story__people strong,.v-about-story__people small{display:block}
.v-about-story__people small{margin-top:3px;color:var(--muted)}
.v-founders{padding:0 var(--gutter) 112px}
.v-founders>h2{max-width:760px;margin-bottom:44px}
.v-founders__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:24px}
.v-founder-card{display:grid;grid-template-columns:minmax(150px,.75fr) minmax(0,1.25fr);
  overflow:hidden;border:1px solid rgba(255,255,255,.76);border-radius:26px;
  background:rgba(255,255,255,.66);box-shadow:0 18px 48px rgba(10,34,64,.09)}
.v-founder-card>.v-panel{min-height:280px}.v-founder-card>.v-panel .v-panel__label{font-size:15px}
.v-founder-card>div:last-child{display:flex;flex-direction:column;justify-content:center;
  gap:10px;padding:30px 28px}
.v-founder-card>div>span{color:var(--muted)}
.v-founder-card h3{font-size:26px;font-weight:600}.v-founder-card p{margin:0;color:var(--slate)}

@media (max-width:1000px){
  .v-about-values{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .v-page-hero{padding-top:84px}
  .v-service-row,.v-about-story{grid-template-columns:1fr}
  .v-service-row{gap:22px}.v-service-row__arrow{top:38px}
  .v-about-story>.v-panel{min-height:300px}
}
@media (max-width:560px){
  .v-about-values{grid-template-columns:1fr;margin-top:72px;margin-bottom:72px}
  .v-about-story__people{grid-template-columns:auto 1fr}
  .v-founder-card{grid-template-columns:1fr}
  .v-founder-card>.v-panel{min-height:220px}
}

/* -- Journal index and archive (prototype lines 629-706) ------------- */
.v-page-hero--compact h1{max-width:760px;font-size:clamp(36px,4.6vw,58px)}
.v-blog-categories{display:flex;flex-wrap:wrap;gap:9px;padding:28px var(--gutter) 0}
.v-blog-categories a{padding:8px 13px;border:1px solid var(--line);border-radius:var(--radius-pill);
  color:var(--slate);background:rgba(255,255,255,.52)}
.v-blog-categories a:hover{border-color:var(--navy);color:var(--navy)}
.v-blog-feature-wrap{padding:40px var(--gutter)}
.v-blog-feature{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;
  border:1px solid rgba(255,255,255,.76);border-radius:26px;background:rgba(255,255,255,.66);
  box-shadow:0 18px 48px rgba(10,34,64,.09);transition:transform 260ms,box-shadow 260ms}
.v-blog-feature:hover{transform:translateY(-4px);box-shadow:0 28px 64px rgba(10,34,64,.14)}
.v-blog-feature__media{min-height:340px}.v-blog-feature__media>.v-panel{height:100%;min-height:340px}
.v-blog-feature__media img{width:100%;height:100%;object-fit:cover}
.v-blog-feature__body{display:flex;flex-direction:column;justify-content:center;gap:14px;padding:40px 38px}
.v-blog-feature__meta{display:flex;flex-wrap:wrap;gap:16px;color:var(--muted)}
.v-blog-feature__meta span:first-child{color:var(--navy)}
.v-blog-feature h2{font-size:clamp(26px,2.6vw,36px);line-height:1.12;font-weight:600}
.v-blog-feature__body>p{margin:0;color:var(--slate)}
.v-blog-feature__author{display:flex;align-items:center;gap:12px;margin-top:8px;font-size:14px;color:var(--slate)}
.v-blog-feature__author .v-avatar{width:34px;height:34px;font-size:10px}
.v-blog-grid-wrap{padding:24px var(--gutter) 112px}
.v-blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.v-post-card{overflow:hidden;border:1px solid rgba(255,255,255,.76);border-radius:24px;
  background:rgba(255,255,255,.66);box-shadow:0 18px 48px rgba(10,34,64,.09);
  transition:transform 260ms,box-shadow 260ms}
.v-post-card:hover{transform:translateY(-4px);box-shadow:0 28px 64px rgba(10,34,64,.14)}
.v-post-card>.v-panel,.v-post-card__img{width:100%;height:210px;min-height:210px;object-fit:cover}
.v-post-card__body{padding:25px}
.v-post-card__meta{display:flex;justify-content:space-between;gap:12px;color:var(--muted)}
.v-post-card__meta span:first-child{color:var(--navy)}
.v-post-card__title{margin:12px 0 8px;font-size:21px;font-weight:600}
.v-post-card__excerpt{display:-webkit-box;overflow:hidden;margin:0;color:var(--slate);
  -webkit-box-orient:vertical;-webkit-line-clamp:3}

@media (max-width:1000px){.v-blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){
  .v-blog-feature,.v-blog-grid{grid-template-columns:1fr}
  .v-blog-feature__media{min-height:260px}
}

/* -- Single journal post (prototype lines 707-787) ------------------- */
.v-post-hero{padding:104px var(--gutter) 0}
.v-post-hero__back{display:inline-flex;margin-bottom:28px;color:var(--muted)}
.v-post-hero__back:hover{color:var(--navy)}
.v-post-hero__meta{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px;color:var(--muted)}
.v-post-hero__meta span:first-child{color:var(--navy)}
.v-post-hero h1{max-width:940px;font-size:clamp(36px,4.6vw,62px);line-height:1.06;
  letter-spacing:-.045em;font-weight:600;text-wrap:balance}
.v-post-hero>p{max-width:760px;margin:22px 0 30px;font-size:20px;line-height:1.55;color:var(--slate)}
.v-post-hero__author{display:flex;align-items:center;gap:14px;padding-bottom:36px;
  border-bottom:1px solid rgba(10,34,64,.08)}
.v-post-hero__author>span:last-child strong,.v-post-hero__author>span:last-child small{display:block}
.v-post-hero__author small{margin-top:3px;color:var(--muted)}
.v-post-media{padding:44px var(--gutter) 0}
.v-post-media>.v-panel,.v-post-media>img{width:100%;height:min(56vh,520px);min-height:360px;
  object-fit:cover;border:1px solid rgba(255,255,255,.76);border-radius:26px;
  box-shadow:0 22px 58px rgba(10,34,64,.12)}
.v-article-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.42fr);
  gap:64px;align-items:start;padding:56px var(--gutter) 112px}
.v-article{min-width:0;max-width:760px;overflow-x:auto;font-size:18px;line-height:1.72;color:#3D4E66}
.v-post-sidebar{position:sticky;top:120px;display:flex;flex-direction:column;gap:22px}
.v-post-toc,.v-post-audit{display:flex;flex-direction:column;gap:11px;padding:26px;
  border:1px solid rgba(255,255,255,.76);border-radius:24px;background:rgba(255,255,255,.66);
  box-shadow:0 18px 48px rgba(10,34,64,.09)}
.v-post-toc>span{margin-bottom:3px;color:var(--muted)}
.v-post-toc a{font-size:14.5px;color:var(--slate)}
.v-post-toc a:hover{color:var(--navy)}
.v-post-audit p{margin:0 0 6px;color:var(--navy)}
.v-related-posts{padding:0 var(--gutter) 112px}

@media (max-width:860px){
  .v-article-shell{grid-template-columns:1fr}
  .v-post-sidebar{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .v-post-media>.v-panel,.v-post-media>img{min-height:240px;height:42vh}
  .v-post-sidebar{grid-template-columns:1fr}
}

/* -- Contact (prototype lines 788-824) ------------------------------- */
.v-contact-page{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);
  gap:56px;align-items:start;padding:104px var(--gutter) 112px}
.v-contact-page__intro h1{font-size:clamp(36px,4.6vw,60px);line-height:1.05;
  letter-spacing:-.045em;font-weight:600}
.v-contact-page__intro>p{max-width:550px;margin:20px 0 30px;font-size:18px;color:var(--slate)}
.v-contact-page__intro>p strong{color:var(--navy)}
.v-contact-facts{display:flex;flex-direction:column;gap:14px;margin:0;color:var(--muted)}
.v-contact-facts>div{display:flex;flex-wrap:wrap;gap:8px}.v-contact-facts dt,.v-contact-facts dd{margin:0}
.v-contact-facts dd{color:#1B3A63}
.v-contact-card{padding:32px;border:1px solid rgba(255,255,255,.76);border-radius:26px;
  background:rgba(255,255,255,.7);box-shadow:0 20px 54px rgba(10,34,64,.1);backdrop-filter:blur(22px)}
.v-contact-form{display:flex;flex-direction:column;gap:16px}
.v-contact-form>label{display:flex;flex-direction:column;gap:7px}
.v-contact-form>label>span{color:var(--muted)}
.v-contact-form input,.v-contact-form select,.v-contact-form textarea{width:100%;padding:13px 14px;
  border:1px solid rgba(10,34,64,.16);border-radius:10px;background:rgba(255,255,255,.82);
  color:var(--navy);font:15px var(--font-sans);outline:none}
.v-contact-form textarea{resize:vertical}
.v-contact-form input:focus,.v-contact-form select:focus,.v-contact-form textarea:focus{
  border-color:var(--navy);box-shadow:0 0 0 3px rgba(124,147,181,.22)}
.v-contact-form button{width:100%;margin-top:4px;cursor:pointer}
.v-contact-form button:disabled{cursor:wait;opacity:.62}
.v-contact-form__note{margin:0;text-align:center;font-size:12.5px;color:var(--muted)}
.v-contact-form__error{margin:0;padding:12px;border-radius:10px;background:#fff1f0;color:#8a1f17}
.v-contact-success{padding:42px 8px;text-align:center}.v-contact-success>span{font-size:34px}
.v-contact-success h2{margin:14px 0 8px;font-size:24px;font-weight:600}.v-contact-success p{margin:0;color:var(--slate)}

@media (max-width:820px){.v-contact-page{grid-template-columns:1fr}}
@media (max-width:520px){.v-contact-card{padding:24px}}

/* -- Service detail pages ------------------------------------------- */
.v-service-hero{padding:104px var(--gutter) 72px;border-bottom:1px solid rgba(10,34,64,.08)}
.v-service-hero>span{color:var(--muted)}
.v-service-hero h1{max-width:920px;margin:18px 0;font-size:clamp(40px,5.4vw,72px);
  line-height:1.03;letter-spacing:-.05em;font-weight:600}
.v-service-hero__lede{max-width:820px;margin:0;font-size:20px;line-height:1.58;color:var(--slate)}
.v-service-hero__lede strong{color:var(--navy)}
.v-service-body{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);
  gap:48px;align-items:stretch;padding:72px var(--gutter) 112px}
.v-service-body__list{display:flex;flex-direction:column;justify-content:center;gap:0;margin:0;padding:0;list-style:none}
.v-service-body__list li{display:flex;align-items:center;gap:14px;padding:19px 0;
  border-bottom:1px solid rgba(10,34,64,.1);font-size:18px}
.v-service-body__list .v-icon{width:22px;height:22px;color:var(--accent-1)}
.v-service-body>.v-panel{min-height:420px;border:1px solid rgba(255,255,255,.76);border-radius:26px;
  box-shadow:0 22px 58px rgba(10,34,64,.12)}
.v-panel--mono::before{background:radial-gradient(circle at 70% 25%,rgba(124,147,181,.48),transparent 27%),
  linear-gradient(145deg,#0A2240,#4E5D72)}
.v-panel--mono::after{background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),
  linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:44px 44px}
.v-panel--mono .v-panel__label{color:var(--cream);background:rgba(10,34,64,.35)}
.v-service-siblings{padding:112px var(--gutter);background:linear-gradient(180deg,var(--panel),var(--panel-2))}
.v-service-siblings>h2{max-width:780px;margin-bottom:44px;font-size:clamp(32px,4.2vw,56px);
  line-height:1.08;letter-spacing:-.04em;font-weight:600}
.v-service-siblings__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;
  overflow:hidden;border:1px solid rgba(255,255,255,.72);border-radius:24px;background:rgba(226,231,238,.55)}

@media (max-width:1050px){.v-service-siblings__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){
  .v-service-body{grid-template-columns:1fr}
  .v-service-body>.v-panel{min-height:300px}
}
@media (max-width:520px){.v-service-siblings__grid{grid-template-columns:1fr}}

/* -- Case studies and remaining templates --------------------------- */
.v-case-hero{padding:104px var(--gutter) 64px;border-bottom:1px solid rgba(10,34,64,.08)}
.v-case-hero>span{color:var(--muted)}
.v-case-hero h1{margin:18px 0;font-size:clamp(42px,6vw,78px);line-height:1;
  letter-spacing:-.055em;font-weight:600}
.v-case-hero p{max-width:820px;margin:0;font-size:20px;line-height:1.58;color:var(--slate)}
.v-case-visual{padding:52px var(--gutter)}
.v-case-visual>.v-panel{min-height:min(58vh,560px);border:1px solid rgba(255,255,255,.76);
  border-radius:28px;box-shadow:0 24px 62px rgba(10,34,64,.13)}
.v-case-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;
  margin:0 var(--gutter) 72px;overflow:hidden;border:1px solid rgba(255,255,255,.72);
  border-radius:24px;background:rgba(226,231,238,.55)}
.v-case-metrics>div{padding:28px;background:rgba(255,255,255,.68)}
.v-case-metrics strong{display:block;font-size:clamp(19px,2.3vw,30px);overflow-wrap:anywhere}
.v-case-metrics span{display:block;margin-top:7px;color:var(--muted)}
.v-case-content,.v-generic-page{padding:16px var(--gutter) 112px}
.v-generic-page{padding-top:56px}
.v-not-found{display:flex;min-height:68vh;flex-direction:column;align-items:center;justify-content:center;
  gap:20px;padding:104px var(--gutter);text-align:center}
.v-not-found>span{color:var(--muted)}
.v-not-found h1{max-width:720px;font-size:clamp(38px,5vw,68px);line-height:1.05;font-weight:600}
.v-not-found p{max-width:560px;margin:0;color:var(--slate)}

@media (max-width:620px){.v-case-metrics{grid-template-columns:1fr}}
