/* Lenis rules (inlined from lenis@1.3.27/dist/lenis.css to avoid a blocking request) */
html.lenis,html.lenis body{height:auto}
.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}
.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}
.lenis.lenis-smooth iframe{pointer-events:none}
.lenis.lenis-autoToggle{transition-property:overflow;transition-duration:1ms;transition-behavior:allow-discrete}

/* ================= Tokens ================= */
:root{
  --navy:#0B1F52;      /* the "black" of this design */
  --navy-2:#0F2766;    /* raised surfaces on navy */
  --navy-3:#17317A;    /* hover / borders on navy */
  --navy-deep:#081840; /* footer */
  --pale:#F6F5F1;      /* the "white" of this design */
  --pale-2:#ECEAE3;    /* alternate band, cards on pale */
  --pale-3:#E1DED4;    /* hover on pale */
  --ink-2:#3E4A6E;     /* secondary text on pale (8:1) */
  --ink-3:#5A6585;     /* captions on pale (5.6:1) */
  --on-navy-2:#C9CDDA; /* secondary text on navy (9:1) */
  --on-navy-3:#A3AAC0; /* captions on navy (6.4:1) */
  --line:rgba(11,31,82,.14);
  --line-d:rgba(246,245,241,.16);
  --ok:#1F7A4D;--err:#C4161C;--err-d:#FF9C9C;--flag:#FF4D4D;
  --font:"Inter Tight",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --r-s:4px;--r-m:12px;--r-l:20px;
  --dur-1:160ms;--dur-2:260ms;--dur-3:480ms;
  --ease:cubic-bezier(.2,.8,.2,1);--ease-move:cubic-bezier(.65,0,.35,1);
  --gutter:20px;--header-h:72px;--max:1240px;
  --focus:var(--navy);
  color-scheme:light;
}
@media (min-width:640px){:root{--gutter:32px}}
@media (min-width:1024px){:root{--gutter:40px}}

/* ================= Base ================= */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(11,31,82,.12);scroll-padding-top:calc(var(--header-h) + 12px)}
body{margin:0;background:var(--pale);color:var(--navy);font:400 1.0625rem/1.55 var(--font);letter-spacing:-.005em;-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg,canvas{display:block;max-width:100%}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
h1,h2,h3,h4{font-weight:300;text-wrap:balance}
p{text-wrap:pretty}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}
button{cursor:pointer}
a,button,select,input,textarea,summary,label{touch-action:manipulation}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
::selection{background:var(--navy);color:var(--pale)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.dark{background:var(--navy);color:var(--pale);--focus:var(--pale)}
.dark ::selection{background:var(--pale);color:var(--navy)}

/* Type */
.display{font-size:clamp(3rem,1.5rem + 6.2vw,7.5rem);line-height:.98;letter-spacing:-.055em;font-weight:300}
.h2{font-size:clamp(2.25rem,1.35rem + 3.4vw,4.5rem);line-height:1.02;letter-spacing:-.045em;font-weight:300}
.h3{font-size:clamp(1.375rem,1.15rem + .8vw,1.875rem);line-height:1.15;letter-spacing:-.025em;font-weight:400}
.lead{font-size:clamp(1.0625rem,.98rem + .35vw,1.3125rem);line-height:1.5;color:var(--ink-2);max-width:32.5em}
.dark .lead{color:var(--on-navy-2)}
.small{font-size:.875rem;line-height:1.5}
.label{font-size:.75rem;line-height:1.3;font-weight:500;letter-spacing:.06em;text-transform:uppercase}
.muted{color:var(--ink-3)}
.dark .muted{color:var(--on-navy-3)}
.num{font-variant-numeric:tabular-nums}

/* Layout */
.wrap{width:min(var(--max),100% - 2 * var(--gutter));margin-inline:auto}
.sec{padding-block:clamp(88px,11vw,168px);position:relative}
.band-2{background:var(--pale-2)}
.center{text-align:center}
.center .lead{margin-inline:auto}
.sec-head{margin-bottom:clamp(40px,6vw,72px)}
.sec-head .lead{margin-top:20px}
.eyebrow{display:block;margin-bottom:18px;color:var(--ink-3)}
.dark .eyebrow{color:var(--on-navy-3)}
.split-head{display:grid;gap:20px;align-items:end;margin-bottom:clamp(40px,6vw,72px)}
@media (min-width:900px){.split-head{grid-template-columns:1.1fr 1fr;gap:48px}.split-head .lead{justify-self:end}}

/* ================= Components ================= */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 28px;border:0;border-radius:var(--r-s);
  font:500 .875rem/1 var(--font);letter-spacing:.04em;text-transform:uppercase;text-decoration:none;white-space:nowrap;
  transition:background-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease)}
@media (max-width:420px){.btn{white-space:normal;text-align:center;line-height:1.25;padding-block:10px}}
.btn-dark{background:var(--navy);color:var(--pale)}
.btn-dark:hover{background:var(--navy-3)}
.btn-pale{background:var(--pale);color:var(--navy)}
.btn-pale:hover{background:#fff}
.btn-line{background:transparent;color:inherit;box-shadow:inset 0 0 0 1px currentColor}
.btn-line:hover{background:rgba(11,31,82,.06)}
.dark .btn-line:hover{background:rgba(246,245,241,.08)}
.btn .i{transition:transform var(--dur-1) var(--ease)}
.btn:hover .i{transform:translateX(3px)}
.btn-row{display:flex;flex-wrap:wrap;gap:12px}
.center .btn-row{justify-content:center}
.tlink{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;transition:text-decoration-thickness var(--dur-1) var(--ease)}
.tlink:hover{text-decoration-thickness:2px}
.i{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.pills{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.pill{min-height:44px;padding:0 18px;border:0;border-radius:999px;background:transparent;color:var(--ink-2);font-weight:500;font-size:.9375rem;
  transition:background-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}
.pill:hover{background:var(--pale-3);color:var(--navy)}
.pill[aria-selected="true"],.pill[aria-pressed="true"]{background:var(--navy);color:var(--pale)}
.dark .pill{color:var(--on-navy-2)}
.dark .pill:hover{background:var(--navy-3);color:var(--pale)}
.dark .pill[aria-selected="true"],.dark .pill[aria-pressed="true"]{background:var(--pale);color:var(--navy)}
.tag{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;font-size:.75rem;font-weight:500;letter-spacing:.02em;background:rgba(11,31,82,.07);color:var(--ink-2)}
.dark .tag,.svc .tag{background:rgba(246,245,241,.1);color:var(--on-navy-2)}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.round-btn{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:999px;border:1px solid var(--line);background:transparent;color:inherit;transition:background-color var(--dur-1) var(--ease)}
.round-btn:hover{background:var(--pale-3)}
.dark .round-btn{border-color:var(--line-d)}
.dark .round-btn:hover{background:var(--navy-3)}
.round-btn:disabled{opacity:.35;cursor:default}
.dot-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#3FBF7F;margin-right:8px;vertical-align:1px}
.dot-dot.is-flag{background:var(--flag)}

/* Reveals (turned on by the script) */
.motion.reveal-ready [data-reveal]{opacity:0;transform:translateY(20px);transition:opacity var(--dur-3) var(--ease),transform var(--dur-3) var(--ease)}
.motion.reveal-ready [data-reveal].is-in{opacity:1;transform:none}

/* ================= Hero ================= */
.hero{position:relative;padding-top:calc(var(--header-h) + clamp(56px,10vh,120px));overflow:hidden;
  background:radial-gradient(80% 50% at 50% 0%,rgba(23,49,122,.95),transparent 70%),var(--navy)}
/* Quiet dot field around the headline; fades out under the text and at the edges */
.hero::before{content:"";position:absolute;left:0;right:0;top:0;height:min(1000px,100%);pointer-events:none;
  background:radial-gradient(circle,rgba(246,245,241,.2) 1px,transparent 1.6px) 0 0/24px 24px;
  -webkit-mask-image:radial-gradient(70% 55% at 50% 38%,transparent 34%,#000 66%,transparent 96%);mask-image:radial-gradient(70% 55% at 50% 38%,transparent 34%,#000 66%,transparent 96%)}
.hero-meta{color:var(--on-navy-3);margin-bottom:28px}
.hero-meta time{display:inline-block;width:5.2em;text-align:left;font-variant-numeric:tabular-nums} /* fixed width: the live clock fills in without moving the line */
.hero h1{max-width:7em;margin-inline:auto}
.hero .lead{margin-top:28px;max-width:26.7em}
.hero .btn-row{margin-top:40px}
.hero-note{margin-top:18px;color:var(--on-navy-3)}
.hero-globe{position:absolute;left:50%;top:calc(-1 * var(--g-up));width:min(1100px,150vw);aspect-ratio:1;transform:translateX(-50%);pointer-events:none;z-index:0}
/* Phones: more room above the card so the globe shows instead of hiding behind it */
@media (max-width:899px){.show{--g-gap:clamp(240px,72vw,400px);margin-top:var(--g-gap)!important;--g-up:calc(var(--g-gap) + 24px)!important}.hero-globe{width:min(600px,112vw)}}
.hero-globe canvas{width:100%;height:100%;opacity:0;transition:opacity 1.2s var(--ease)}
.hero-globe canvas.is-on{opacity:1}
.hero-globe::after{content:"";position:absolute;inset:0;background:radial-gradient(closest-side,transparent 70%,var(--navy) 100%)}
/* Showcase cards */
.show{--g-up:clamp(220px,20vw,300px);text-align:left;position:relative;z-index:1;margin-top:clamp(64px,9vw,112px);height:clamp(300px,36vw,460px)}
.show-card{position:absolute;top:0;left:50%;border-radius:var(--r-m);overflow:hidden;box-shadow:0 40px 80px -30px rgba(2,8,28,.75)}
.show-card.c{width:min(580px,86vw);height:100%;transform:translateX(-50%);z-index:2}
.show-card.l,.show-card.r{width:min(420px,40vw);height:84%;top:8%;z-index:1;display:none}
.show-card.l{transform:translateX(calc(-50% - min(470px,44vw)))}
.show-card.r{transform:translateX(calc(-50% + min(470px,44vw)))}
@media (min-width:900px){.show-card.l,.show-card.r{display:block}}
/* Cards are still: no scroll or tilt animation */
.sc{height:100%;padding:clamp(20px,2.4vw,32px);display:flex;flex-direction:column;gap:14px}
.sc-pale{background:var(--pale);color:var(--navy)}
.sc-white{background:#fff;color:var(--navy)}
.sc-navy{background:var(--navy-2);color:var(--pale);box-shadow:inset 0 0 0 1px var(--line-d)}
.sc-top{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;opacity:.7}
.sc-big{font-size:clamp(2.5rem,1.5rem + 3vw,4.25rem);font-weight:300;letter-spacing:-.05em;line-height:1}
.sc-rows{display:grid;border-top:1px solid var(--line)}
.sc-rows div{display:grid;grid-template-columns:6rem 1fr auto;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.875rem;align-items:baseline}
.sc-rows span:first-child{color:var(--ink-3);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;font-weight:500}
.sc-rows b{font-weight:500}
.sc-bar{height:6px;border-radius:99px;background:var(--pale-2);overflow:hidden;margin-top:auto}
.sc-bar i{display:block;height:100%;width:25%;background:var(--navy);border-radius:99px}
.sc-doc{flex:1;display:grid;grid-template-columns:1fr auto;gap:14px;min-height:0}
.sc-page{border-radius:8px;background:var(--pale);padding:16px;display:flex;flex-direction:column;gap:9px}
.sc-page b{display:block;height:6px;border-radius:9px;background:var(--pale-3)}
.sc-page b:nth-child(1){width:46%;height:10px;background:var(--navy);opacity:.85}
.sc-page b:nth-child(3){width:82%}.sc-page b:nth-child(5){width:64%}.sc-page b:nth-child(7){width:74%}
.sc-tabs{display:grid;gap:6px;align-content:start}
.sc-tabs span{display:grid;place-items:center;width:40px;height:30px;border-radius:6px;background:var(--pale);font-size:.6875rem;font-weight:600}
.sc-tabs span.on{background:var(--navy);color:var(--pale)}
.sc-read{display:grid;gap:10px}
.sc-read div{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:center;padding:10px 12px;border-radius:8px;background:rgba(246,245,241,.06)}
.sc-read b{font-size:1.5rem;font-weight:300;letter-spacing:-.03em;grid-row:span 2}
.sc-read b.out{color:var(--err-d)}
.sc-read small{font-size:.75rem;color:var(--on-navy-3)}
.sc-read svg{width:100%;height:18px}
.sc-chip{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:6px 12px;border-radius:99px;background:rgba(246,245,241,.1);font-size:.75rem;font-weight:500}
/* Stats */
.stats-sec{background:linear-gradient(to bottom,rgba(11,31,82,0),var(--navy) 120px);width:100%;max-width:none;padding-inline:max(var(--gutter),calc((100% - var(--max)) / 2));padding-top:clamp(56px,7vw,96px);padding-bottom:clamp(88px,10vw,140px);position:relative;z-index:2}
.stats-intro{color:var(--on-navy-2)}
.stats{margin-top:clamp(40px,5vw,64px);display:grid;gap:36px 24px;grid-template-columns:repeat(2,1fr)}
@media (min-width:900px){.stats{grid-template-columns:repeat(4,1fr)}}
.stats dd{font-size:clamp(3.25rem,2rem + 4vw,6rem);font-weight:200;letter-spacing:-.06em;line-height:1}
.stats div{display:flex;flex-direction:column-reverse;gap:10px;text-align:center}
.stats dt{color:var(--on-navy-3);font-size:.9375rem}

/* ================= Reach: one route board ================= */
.rx-head{display:grid;gap:28px;align-items:end;margin-bottom:clamp(40px,6vw,72px)}
@media (min-width:960px){.rx-head{grid-template-columns:1.1fr 1fr;gap:48px}}
.rf-sentence{margin:0;max-width:17em;font-size:clamp(1.375rem,1.05rem + 1.2vw,2rem);line-height:1.4;font-weight:300;letter-spacing:-.03em}
.rf-select{appearance:none;-webkit-appearance:none;font:inherit;letter-spacing:inherit;color:var(--navy);font-weight:500;background:transparent;border:0;border-bottom:2px solid var(--navy);
  padding:0 1.1em 0 .1em;margin-inline:.18em;cursor:pointer;field-sizing:content;max-width:100%;border-radius:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1F52' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .1em center;background-size:.62em}
.rf-select:hover{border-bottom-color:var(--ink-3)}
.rf-select option,select.input option{background-color:#fff;color:var(--navy);font-weight:400}
/* Board header */
.rx-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 24px;margin-bottom:28px}
.rx-title{font-size:1.25rem;font-weight:400;letter-spacing:-.02em;margin-bottom:4px}
.rx-top .pills{justify-content:flex-start;background:var(--pale-2);border-radius:999px;padding:4px}
/* One row per authority: number · name and market · pathway · time bar · open */
.rx{--cols:3rem minmax(9rem,1fr) minmax(10rem,1.1fr) minmax(0,2.2fr) 44px;--gap:24px}
.rx-axis{display:grid;grid-template-columns:var(--cols);column-gap:var(--gap);padding-bottom:10px;font-size:.75rem;color:var(--ink-3)}
.rx-ax{grid-column:4;position:relative;height:16px;margin-right:5.5rem}
.rx-ax span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}
.rx-ax span:first-child{transform:none}
.rx-list{border-top:1px solid var(--line)}
.rx-row{border-bottom:1px solid var(--line)}
.rx-h{font:inherit;margin:0}
.rx-btn{width:100%;display:grid;grid-template-columns:var(--cols);column-gap:var(--gap);align-items:center;min-height:92px;padding:14px 0;border:0;background:transparent;color:inherit;text-align:left;transition:background-color var(--dur-1) var(--ease)}
.rx-btn:hover{background:rgba(11,31,82,.03)}
.rx-btn:focus-visible{outline-offset:-2px}
.rx-n{font-size:.875rem;color:var(--ink-3);padding-left:4px}
.rx-name{display:block;font-size:clamp(1.5rem,1.15rem + 1vw,2.25rem);font-weight:300;letter-spacing:-.04em;line-height:1.05}
.rx-market{display:block;margin-top:4px;font-size:.875rem;color:var(--ink-3)}
.rx-path{font-size:.9375rem;color:var(--ink-2);line-height:1.35}
.rx-plot{position:relative;align-self:stretch;padding-right:5.5rem}
.rx-in{position:relative;display:block;height:100%;background:linear-gradient(to right,var(--line) 1px,transparent 1px) 0 0/25% 100% repeat-x;box-shadow:inset -1px 0 0 var(--line)}
.rx-bar{position:absolute;left:0;top:50%;height:10px;margin-top:-5px;width:calc(var(--m) / 16 * 100%);border-radius:0 4px 4px 0;background:rgba(11,31,82,.28);transition:width var(--dur-3) var(--ease),background-color var(--dur-1) var(--ease)}
.rx-val{position:absolute;top:50%;left:calc(var(--m) / 16 * 100% + 10px);transform:translateY(-50%);white-space:nowrap;font-size:.9375rem;color:var(--ink-2);background:var(--pale);padding:2px 6px;margin-left:-6px;transition:left var(--dur-3) var(--ease),opacity var(--dur-2) var(--ease)}
.rx-val b{font-weight:500;color:var(--navy)}
.rx-btn:hover .rx-bar{background:rgba(11,31,82,.5)}
.rx-row.is-open .rx-bar{background:var(--navy)}
.rx-row.is-open .rx-name{font-weight:400}
.rx.is-pre .rx-bar{width:0}
.rx.is-pre .rx-val{opacity:0}
.rx-plus{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-s);box-shadow:inset 0 0 0 1px var(--line);transition:background-color var(--dur-1) var(--ease)}
.rx-btn:hover .rx-plus{background:var(--pale-3)}
.rx-plus i{grid-area:1 / 1;width:14px;height:1.5px;background:currentColor;transition:transform var(--dur-2) var(--ease)}
.rx-plus i+i{transform:rotate(90deg)}
.rx-row.is-open .rx-plus{background:var(--navy);color:var(--pale);box-shadow:none}
.rx-row.is-open .rx-plus i+i{transform:rotate(0)}
/* The opened route */
.rx-panel{display:grid;grid-template-rows:1fr;transition:grid-template-rows var(--dur-3) var(--ease)}
.js .rx-row:not(.is-open) .rx-panel{grid-template-rows:0fr}
.rx-in2{min-height:0;overflow:hidden}
.js .rx-row:not(.is-open) .rx-in2{visibility:hidden;transition:visibility 0s linear var(--dur-3)}
.rx-card{margin:2px 0 24px;border-radius:var(--r-l);padding:clamp(24px,3.5vw,44px);display:grid;gap:28px}
@media (min-width:1024px){.rx-card{grid-template-columns:minmax(0,.75fr) minmax(0,1.5fr) auto;gap:48px;align-items:start}}
.rx-active{display:flex;align-items:center;color:var(--on-navy-2)}
.rx-full{margin-top:12px;font-size:1.25rem;font-weight:300;letter-spacing:-.02em;line-height:1.35;max-width:16em}
.rx-what{display:grid;gap:24px}
.rx-cta{align-self:end;justify-self:start}
.route-rows{display:grid;border-top:1px solid var(--line-d)}
.route-rows div{display:grid;grid-template-columns:7rem 1fr auto;gap:12px;align-items:baseline;padding:16px 0 16px 14px;border-bottom:1px solid var(--line-d)}
.route-rows dt{color:var(--on-navy-3)}
.route-rows dd{font-size:1.125rem;font-weight:300;letter-spacing:-.01em}
.route-rows dd.num{white-space:nowrap}
.route-rows .is-pick{box-shadow:inset 3px 0 0 var(--pale)}
.route-rows .is-pick dt{color:var(--pale)}
.route-rows .is-pick dd{font-weight:400}
.route-does p{color:var(--on-navy-3)}
.route-does ul{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px}
/* Narrow screens: name and open button on top, pathway, then the bar */
@media (max-width:799px){
  .rx-axis{display:none}
  .rx-btn{grid-template-columns:2rem minmax(0,1fr) 44px;grid-template-areas:"n id plus" "n path path" "n plot plot";row-gap:8px;column-gap:14px;padding:18px 0 10px}
  .rx-n{grid-area:n;align-self:start;padding-top:8px;padding-left:0}
  .rx-id{grid-area:id}
  .rx-path{grid-area:path}
  .rx-plot{grid-area:plot;height:30px;padding-right:4.5rem}
  .rx-plus{grid-area:plus}
  .route-rows div{grid-template-columns:1fr auto}
  .route-rows dt{grid-column:1 / -1}
}

/* ================= How a file is built: one layered card ================= */
/* Card: illustration left, text right (stacked on narrow screens) */
.bf{border-radius:var(--r-l);background:var(--navy-2);box-shadow:inset 0 0 0 1px var(--line-d);overflow:hidden;display:grid}
@media (min-width:960px){.bf{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}}
.bf-vis{position:relative;min-height:clamp(360px,42vw,540px);overflow:hidden;background:radial-gradient(60% 55% at 50% 55%,var(--navy-3),transparent 75%)}
.bf-body{padding:clamp(28px,4vw,56px);display:flex;flex-direction:column;justify-content:center;gap:clamp(28px,3.5vw,44px)}
@media (min-width:960px){.bf-body{border-left:1px solid var(--line-d)}}
@media (max-width:959px){.bf-body{border-top:1px solid var(--line-d)}}
.bf-part+.bf-part{padding-top:clamp(28px,3.5vw,44px);border-top:1px solid var(--line-d)}
.bf-title{font-weight:300;font-size:clamp(1.75rem,1.3rem + 1.4vw,2.5rem);letter-spacing:-.04em;line-height:1.08}
.bf-title-sm{font-size:clamp(1.375rem,1.15rem + .8vw,1.875rem);letter-spacing:-.03em}
.bf-text{margin-top:14px;color:var(--on-navy-2);max-width:30em}
.bf-steps{justify-content:flex-start;gap:4px;margin:18px 0 16px}
.bf-steps .pill{min-height:40px;padding:0 14px;font-size:.875rem}
.step-text{min-height:3.2em;color:var(--on-navy-2)}
.stack-status{margin-top:10px;color:var(--on-navy-3)}
/* Layered plates, seen from above at an angle */
.iso{position:absolute;inset:0;display:grid;place-items:center}
.iso-stage{--pw:clamp(140px,14vw,190px);position:relative;width:var(--pw);height:calc(var(--pw) * .72);transform-style:preserve-3d;
  transform:translateY(var(--lift,24px)) rotateX(58deg) rotateZ(-40deg);transition:transform 800ms var(--ease-move)}
.plate{position:absolute;inset:0;border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;justify-content:flex-end;gap:7px;color:var(--pale);
  background:rgba(23,49,122,.86);box-shadow:inset 0 0 0 1px rgba(246,245,241,.55);
  transition:transform 800ms var(--ease-move),opacity var(--dur-3) var(--ease)}
.plate span{font-size:.75rem;font-weight:500;letter-spacing:.04em}
.plate b{display:block;height:4px;border-radius:9px;background:rgba(246,245,241,.35)}
.plate b:nth-of-type(2){width:70%}
.mod span{order:9} /* labels on the front edge, the part of each layer that stays visible */
.mod em{position:absolute;right:10px;top:10px;width:18px;height:18px;border-radius:50%;background:var(--pale);opacity:0;transform:scale(.5);transition:opacity var(--dur-3) var(--ease),transform var(--dur-3) var(--ease)}
.mod em::after{content:"";position:absolute;left:6px;top:3px;width:5px;height:9px;border:solid var(--navy);border-width:0 2px 2px 0;transform:rotate(45deg)}
/* 1 Scattered */
[data-state="scattered"] .mod:nth-child(1){transform:translate3d(-85%,-45%,0) rotateZ(-14deg)}
[data-state="scattered"] .mod:nth-child(2){transform:translate3d(75%,-70%,24px) rotateZ(12deg)}
[data-state="scattered"] .mod:nth-child(3){transform:translate3d(-65%,75%,12px) rotateZ(9deg)}
[data-state="scattered"] .mod:nth-child(4){transform:translate3d(85%,45%,40px) rotateZ(-10deg)}
[data-state="scattered"] .mod:nth-child(5){transform:translate3d(0,0,64px) rotateZ(-4deg)}
/* 2 Aligned, 3 Checked */
.iso-stage[data-state="aligned"],.iso-stage[data-state="checked"]{--lift:56px}
[data-state="aligned"] .mod,[data-state="checked"] .mod{transform:translateZ(calc(var(--k) * 26px))}
[data-state="checked"] .mod em,[data-state="filed"] .mod em{opacity:1;transform:none}
/* 4 Filed: modules press into one file, then the five authority layers rise above it */
.iso-stage[data-state="filed"]{--lift:68px}
[data-state="filed"] .mod{transform:translateZ(calc(var(--k) * 5px))}
.cover{background:var(--pale);color:var(--navy);box-shadow:none;justify-content:space-between;opacity:0;transform:translateZ(200px)}
.cover svg{width:30px;height:30px}
.cover span{line-height:1.25;max-width:9em}
[data-state="filed"] .cover{opacity:1;transform:translateZ(30px)}
.auth{opacity:0;transform:translateZ(260px)}
[data-state="filed"] .auth{opacity:1;transform:translateZ(calc(30px + var(--a) * 26px));transition-delay:calc(250ms + var(--a) * 60ms)}

/* ================= Services slider ================= */
.slider{position:relative}
#services{overflow-x:clip} /* the track bleeds to the page edge; 100vw includes the scrollbar */
.track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);padding:4px var(--gutter) 8px;margin-inline:calc(var(--gutter) * -1);scrollbar-width:none;overscroll-behavior-x:contain}
.track::-webkit-scrollbar{display:none}
@media (min-width:1320px){.track{padding-inline:calc((100vw - var(--max)) / 2);margin-inline:calc((100vw - var(--max)) / -2);scroll-padding-inline:calc((100vw - var(--max)) / 2)}}
.svc{flex:none;width:min(360px,82vw);scroll-snap-align:start;border-radius:var(--r-m);background:var(--navy);color:var(--pale);--focus:var(--pale);display:flex;flex-direction:column;min-height:520px;overflow:hidden;position:relative}
.svc-vis{height:150px;padding:24px 24px 0;color:var(--on-navy-3)}
.svc-vis svg{width:100%;height:100%}
.svc-body{padding:20px 24px 24px;display:flex;flex-direction:column;gap:14px;flex:1}
.svc-n{font-size:.75rem;font-weight:500;letter-spacing:.06em;color:var(--on-navy-3)}
.svc h3{font-weight:400;font-size:1.5rem;letter-spacing:-.03em;line-height:1.15}
.svc p{color:var(--on-navy-2);font-size:.9375rem}
.svc-get{border-top:1px solid var(--line-d);padding-top:14px;display:grid;gap:6px}
.svc-get span{color:var(--on-navy-3)}
.svc-get p{color:var(--pale)}
.svc-foot{margin-top:auto;display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.svc-time{font-size:.8125rem;color:var(--on-navy-2)}
.svc-go{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--pale);color:var(--navy);flex:none;transition:transform var(--dur-1) var(--ease)}
.svc:hover .svc-go{transform:translateX(3px)}
.slider-ctrl{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:28px}
.dots{display:flex;gap:4px}
.dots button{width:28px;height:44px;border:0;background:none;padding:0;display:grid;place-items:center}
.dots button[hidden]{display:none}
.dots button::before{content:"";width:24px;height:8px;border-radius:99px;background:var(--pale-3);transform:scaleX(.334);transition:transform var(--dur-2) var(--ease),background-color var(--dur-2) var(--ease)}
.dots button[aria-current="true"]::before{transform:none;background:var(--navy)}
.arrows{display:flex;gap:8px}

/* ================= VERA ================= */
.vera-logo{width:72px;height:72px;margin:0 auto 24px}
.vera-pills{margin-bottom:28px}
.v-panel{border-radius:var(--r-l);background:var(--navy-2);box-shadow:inset 0 0 0 1px var(--line-d);display:grid;overflow:hidden}
@media (min-width:1024px){.v-panel{grid-template-columns:1.45fr 1fr}}
.v-stage{position:relative;padding:clamp(12px,2vw,24px);border-bottom:1px solid var(--line-d);overflow:hidden}
@media (min-width:1024px){.v-stage{border-bottom:0;border-right:1px solid var(--line-d)}}
.v-text{padding:clamp(24px,3vw,40px);display:flex;flex-direction:column}
.v-step[hidden]{display:none}
.v-step .label{color:var(--on-navy-3);display:flex;align-items:center}
.v-step h3{margin-top:14px;font-weight:300;font-size:clamp(1.75rem,1.3rem + 1.4vw,2.5rem);letter-spacing:-.04em;line-height:1.08}
.v-step>p{margin-top:14px;color:var(--on-navy-2)}
.v-stats{margin-top:24px;display:flex;flex-wrap:wrap;gap:16px 36px}
.v-stats div{display:flex;flex-direction:column-reverse;gap:4px}
.v-stats dd{font-size:2.5rem;font-weight:200;letter-spacing:-.05em;line-height:1}
.v-stats dt{font-size:.875rem;color:var(--on-navy-3)}
.v-legend{margin-top:22px;display:flex;flex-wrap:wrap;gap:10px 18px;font-size:.875rem;color:var(--on-navy-2)}
.v-legend li{display:flex;align-items:center;gap:8px}
.v-legend i{width:14px;height:14px;border-radius:3px;box-shadow:inset 0 0 0 1px rgba(246,245,241,.6)}
.sw-ab{background:rgba(246,245,241,.55)}.sw-b{background:rgba(246,245,241,.34)}.sw-c{background:rgba(246,245,241,.18)}.sw-d{background:rgba(246,245,241,.08)}.sw-u{background:transparent}
.v-read{margin-top:22px;display:grid;border-top:1px solid var(--line-d)}
.v-read div{display:grid;grid-template-columns:5.5rem 1fr;gap:12px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--line-d)}
.v-read dd{font-size:1.75rem;font-weight:300;letter-spacing:-.03em;order:-1}
.v-read dt{font-size:.875rem;color:var(--on-navy-2)}
.v-read .is-out dd{color:var(--err-d)}
.advice{margin-top:20px;border-radius:var(--r-m);background:var(--pale);color:var(--navy);--focus:var(--navy);padding:20px}
.advice .label{color:var(--ink-3)}
.advice .adv-text{margin-top:10px;line-height:1.5}
.advice .btn-row{margin-top:16px;gap:8px}
.advice .btn{min-height:40px;padding:0 14px;font-size:.75rem}
.log{margin-top:18px;display:grid;border-top:1px solid var(--line-d)}
.log li{display:grid;grid-template-columns:3.25rem 1fr auto;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-d);font-size:.875rem;align-items:baseline}
.log time,.log .who{font-size:.8125rem;color:var(--on-navy-3)}
.v-status{margin-top:auto;padding-top:24px;display:flex;justify-content:space-between;color:var(--on-navy-3)}
.vera-more{margin-top:40px}
.vera-more small{display:block;margin-top:6px;color:var(--on-navy-3);font-size:.8125rem}
/* VERA drawing, pale line-art on navy */
.v-svg{width:100%;height:auto}
.v-svg polygon,.v-svg line,.v-svg polyline,.v-svg circle{vector-effect:non-scaling-stroke}
.v-scene{transform-box:view-box;transform-origin:0 0;transition:transform 900ms var(--ease-move)}
.v-slab{fill:var(--navy-2);stroke:var(--pale);stroke-width:1.2}
.v-room{stroke:rgba(246,245,241,.7);stroke-width:.75}
.g-ab{fill:var(--pale);fill-opacity:.5}.g-b{fill:var(--pale);fill-opacity:.32}.g-c{fill:var(--pale);fill-opacity:.17}.g-d{fill:var(--pale);fill-opacity:.07}.g-u{fill:var(--pale);fill-opacity:.02}
.v-box polygon{stroke:var(--pale);stroke-width:.9;stroke-linejoin:round}
.v-box .f-t{fill:#203B86}.v-box .f-l{fill:#162F73}.v-box .f-r{fill:#11286A}
.v-box.is-minor{opacity:.5}
.v-box.is-fl02 .f-t{fill:var(--pale)}
.v-box.is-hood polygon{fill:rgba(246,245,241,.12);stroke-dasharray:3 2}
.v-flow-line{fill:none;stroke:var(--pale);stroke-width:1.75;stroke-dasharray:6 5;stroke-linejoin:round}
.v-flow-head{fill:var(--pale)}
.v-labels text{font:500 9px var(--font);fill:var(--pale);paint-order:stroke;stroke:var(--navy-2);stroke-width:3px;stroke-linejoin:round}
.v-mlabel line{stroke:var(--pale);stroke-width:.75}
.v-mlabel text{font:500 10px var(--font);fill:var(--pale);paint-order:stroke;stroke:var(--navy-2);stroke-width:3px}
.v-h3-filter{fill:#203B86;stroke:var(--pale);stroke-width:1.2}
.v-h3-lead{stroke:var(--pale);stroke-width:.6}
.v-h3-text{font:500 4.4px var(--font);fill:var(--pale)}
.v-air{stroke:var(--pale);stroke-width:1;stroke-dasharray:2 2.5}
.v-part{fill:var(--pale)}
.v-flag circle{fill:var(--flag);stroke:var(--navy-2);stroke-width:2}
.v-walls polygon{fill:var(--navy-2);stroke:var(--pale);stroke-width:1.2;transition:fill-opacity var(--dur-3) var(--ease)}
.v-roof{transition:transform 700ms var(--ease-move),opacity var(--dur-3) var(--ease)}
.v-roof-top{fill:#132C6E;stroke:var(--pale);stroke-width:1.2}
.v-roof-line{fill:#203B86;stroke:var(--pale);stroke-width:.75}
.v-caption{font:400 10px var(--font);fill:var(--on-navy-3)}
.v-flow,.v-labels,.v-mlabels,.v-machines,.v-minor,.v-h3,.v-flag,.v-rooms{transition:opacity var(--dur-3) var(--ease)}
.v-flow,.v-labels,.v-mlabels,.v-machines,.v-minor,.v-h3,.v-flag{opacity:0}
.v[data-step="1"] .v-walls polygon{fill-opacity:1}
.v:not([data-step="1"]) .v-walls polygon{fill-opacity:0}
.v:not([data-step="1"]) .v-roof{transform:translateY(-80px);opacity:0}
.v[data-step="3"] .v-flow,.v[data-step="3"] .v-labels{opacity:1}
.v[data-step="3"] .v-flag,.v[data-step="4"] .v-flag,.v[data-step="5"] .v-flag,.v[data-step="6"] .v-flag{opacity:1}
.v[data-step="4"] .v-machines,.v[data-step="5"] .v-machines,.v[data-step="6"] .v-machines{opacity:1}
.v[data-step="4"] .v-minor,.v[data-step="4"] .v-mlabels{opacity:1}
.v[data-step="5"] .v-minor,.v[data-step="6"] .v-minor{opacity:.6}
.v[data-step="4"] .v-rooms,.v[data-step="5"] .v-rooms,.v[data-step="6"] .v-rooms{opacity:.45}
.v[data-step="5"] .v-h3,.v[data-step="6"] .v-h3{opacity:1}
.v[data-step="5"] .v-scene,.v[data-step="6"] .v-scene{--v-zoom:translate(-685.8px, -518.8px) scale(2.6);transform:var(--v-zoom)}
@media (prefers-reduced-motion:no-preference){
  .v-flow-line{animation:flow 1.2s linear infinite}
  .v-air{animation:air 2.4s linear infinite}
}
@keyframes flow{to{stroke-dashoffset:-22}}
@keyframes air{to{stroke-dashoffset:-9}}

/* ================= Clients ================= */
.marquee{width:min(var(--max),100% - 2 * var(--gutter));margin-inline:auto;overflow:hidden;padding-block:clamp(28px,4vw,48px);border-block:1px solid var(--line);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.mq-track{display:flex;width:max-content}
.mq-list{display:flex;flex:none}
.mq-list li{display:flex;align-items:center;gap:clamp(32px,5vw,72px);padding-right:clamp(32px,5vw,72px);font-size:clamp(1.75rem,1.2rem + 2vw,3.5rem);font-weight:300;letter-spacing:-.05em;line-height:1.1;white-space:nowrap}
.mq-list li::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--navy);opacity:.3}
@media (prefers-reduced-motion:no-preference){
  .mq-track{animation:mq 36s linear infinite}
  .marquee:hover .mq-track,.marquee.is-paused .mq-track{animation-play-state:paused}
}
@keyframes mq{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.marquee{-webkit-mask-image:none;mask-image:none}.mq-track,.mq-list{flex-wrap:wrap;width:auto}.mq-list[aria-hidden]{display:none}.mq-pause{display:none!important}}
.mq-pause{margin:16px auto 0;display:flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--line);background:none;font-size:.8125rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase}
.mq-pause:hover{background:var(--pale-3)}
.auths{margin-top:clamp(56px,7vw,88px);display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border-radius:var(--r-m);overflow:hidden}
@media (min-width:768px){.auths{grid-template-columns:repeat(5,1fr)}}
.auths li{background:var(--pale);padding:24px 20px;display:grid;gap:6px}
.auths li:last-child:nth-child(odd){grid-column:1 / -1}
@media (min-width:768px){.auths li:last-child:nth-child(odd){grid-column:auto}}
.auths b{font-size:1.5rem;font-weight:400;letter-spacing:-.03em}
.auths span{color:var(--ink-3);font-size:.9375rem}

/* ================= Process ================= */
.proc{display:grid;gap:20px}
@media (min-width:900px){.proc{grid-template-columns:repeat(3,1fr)}}
.proc li{border-radius:var(--r-m);background:var(--pale);padding:clamp(24px,3vw,36px);display:flex;flex-direction:column;gap:12px;min-height:300px}
.proc .big{font-size:4.5rem;font-weight:200;letter-spacing:-.06em;line-height:1}
.proc .label{color:var(--ink-3);margin-top:auto}
.proc h3{font-weight:400;font-size:1.625rem;letter-spacing:-.03em}
.proc p{color:var(--ink-2)}
.prog{height:4px;border-radius:99px;background:var(--pale-3);overflow:hidden}
.prog i{display:block;height:100%;background:var(--navy);border-radius:99px}
.principles{margin-top:clamp(72px,9vw,120px)}
.principles ul{margin-top:36px;display:grid;gap:0 40px}
@media (min-width:768px){.principles ul{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.principles ul{grid-template-columns:repeat(3,1fr)}}
.principles li{border-top:1px solid var(--line);padding:24px 0 32px;display:grid;gap:8px;align-content:start}
.principles h4{font-size:1.375rem;font-weight:400;letter-spacing:-.025em}
.principles p{color:var(--ink-2)}
/* FAQ (navy) */
.faq{border-top:1px solid var(--line-d)}
.faq details{border-bottom:1px solid var(--line-d)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:88px;padding:24px 0;cursor:pointer;list-style:none;font-size:clamp(1.25rem,1rem + 1vw,2rem);font-weight:300;letter-spacing:-.03em;line-height:1.2}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
.faq summary .i{width:24px;height:24px;transition:transform var(--dur-2) var(--ease)}
.faq details[open] summary .i{transform:rotate(45deg)}
.faq-a{padding:0 0 32px;max-width:37.1em;color:var(--on-navy-2);font-size:1.0625rem}
.faq details[open] .faq-a{animation:faq-in var(--dur-2) var(--ease)}
@keyframes faq-in{from{opacity:0;transform:translateY(-6px)}}

/* ================= Team ================= */
.team-pills{margin-bottom:40px}
.people{display:grid;grid-template-columns:repeat(2,1fr);gap:36px 20px}
@media (min-width:640px){.people{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1024px){.people{grid-template-columns:repeat(5,1fr)}}
.person{text-align:center}
.avatar{width:min(100%,180px);aspect-ratio:1;margin:0 auto;border-radius:50%;background:var(--navy);color:var(--pale);display:grid;place-items:center;font-size:clamp(1.75rem,1.2rem + 2vw,2.75rem);font-weight:300;letter-spacing:-.02em}
.person h3{margin-top:16px;font-size:1.125rem;font-weight:500;letter-spacing:-.015em}
.person p{margin-top:4px;color:var(--ink-3);font-size:.9375rem}
[role="tabpanel"][hidden]{display:none}

/* ================= Insights ================= */
.notes{display:grid;gap:20px}
@media (min-width:900px){.notes{grid-template-columns:repeat(3,1fr)}}
.note{border-radius:var(--r-m);background:var(--pale);overflow:hidden;display:flex;flex-direction:column;position:relative;transition:background-color var(--dur-1) var(--ease)}
.note:hover{background:#fff}
.note-cover{height:200px;background:var(--navy);color:var(--on-navy-3);position:relative;overflow:hidden}
.note-cover svg{position:absolute;inset:0;width:100%;height:100%}
.note-cover .tag{position:absolute;left:20px;top:20px;background:var(--pale);color:var(--navy)}
.note-body{padding:24px;display:flex;flex-direction:column;gap:12px;flex:1}
.note-meta{color:var(--ink-3);font-size:.875rem}
.note h3{font-size:1.375rem;font-weight:400;letter-spacing:-.025em;line-height:1.2}
.note p{color:var(--ink-2)}
.note a{margin-top:auto;display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:500;text-decoration:none}
.note a::after{content:"";position:absolute;inset:0}
.note a:hover{text-decoration:underline;text-underline-offset:4px}
.note:has(a:focus-visible){outline:2px solid var(--navy);outline-offset:3px}
.note a:focus-visible{outline:none}

/* ================= Contact ================= */
.contact{overflow:hidden}
.contact::before{content:"";position:absolute;left:50%;bottom:-60%;width:min(1400px,180vw);aspect-ratio:1;transform:translateX(-50%);border-radius:50%;
  background:radial-gradient(circle,rgba(246,245,241,.32) 1.1px,transparent 1.6px) 0 0/14px 14px;
  -webkit-mask-image:radial-gradient(closest-side,#000 55%,transparent 100%);mask-image:radial-gradient(closest-side,#000 55%,transparent 100%);pointer-events:none}
.contact .wrap{position:relative}
.contact-grid{display:grid;gap:40px;margin-top:clamp(48px,6vw,80px);align-items:start}
@media (min-width:1024px){.contact-grid{grid-template-columns:1fr 1.25fr;gap:64px}}
.cdl{display:grid;border-top:1px solid var(--line-d)}
.cdl div{display:grid;grid-template-columns:24px 5rem 1fr;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line-d)}
.cdl dt{color:var(--on-navy-3)}
.cdl .i{color:var(--on-navy-3)}
.cdl a{display:inline-flex;align-items:center;min-height:44px}
.next{margin-top:40px}
.next h3{font-weight:400;font-size:1.375rem}
.next ol{margin-top:18px;display:grid;gap:18px;counter-reset:n}
.next li{display:grid;grid-template-columns:2.5rem 1fr;gap:2px 12px;counter-increment:n}
.next li::before{content:counter(n);grid-row:span 2;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 1px var(--line-d);font-size:.875rem}
.next li b{font-weight:500}
.next li span{color:var(--on-navy-2)}
.form-card{border-radius:var(--r-l);background:var(--pale);color:var(--navy);--focus:var(--navy);padding:clamp(24px,3.4vw,44px)}
.form-card ::selection{background:var(--navy);color:var(--pale)}
.form{display:grid;gap:20px}
@media (min-width:640px){.form{grid-template-columns:1fr 1fr}.form .full{grid-column:1 / -1}}
.field{display:grid;gap:8px;align-content:start}
.field label{font-weight:500;font-size:.9375rem}
.field label small{font-weight:400;color:var(--ink-3)}
.input{width:100%;min-height:52px;padding:12px 16px;border-radius:8px;background:#fff;border:1px solid rgba(11,31,82,.22);transition:border-color var(--dur-1) var(--ease)}
.input::placeholder{color:var(--ink-3)}
.input:hover{border-color:rgba(11,31,82,.45)}
.input:focus-visible{outline:2px solid var(--navy);outline-offset:1px;border-color:var(--navy)}
select.input{appearance:none;-webkit-appearance:none;padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1F52' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px}
textarea.input{min-height:120px;resize:vertical}
.input[aria-invalid="true"]{border-color:var(--err)}
.err{color:var(--err);font-size:.875rem}
.err:empty{display:none}
.form-foot{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.form-foot p{color:var(--ink-3);font-size:.875rem}
.done{display:grid;gap:14px;outline:none}
.done .ok{width:48px;height:48px;border-radius:50%;background:var(--navy);color:var(--pale);display:grid;place-items:center}
.done h3{font-weight:300;font-size:2rem;letter-spacing:-.04em}
.done p{color:var(--ink-2)}

/* ================= Phone fixes ================= */
@media (pointer:coarse){
  .rf-select{min-height:44px}           /* comfortable tap height for the route sentence */
  .bf-steps .pill{min-height:44px}
}
@media (max-width:639px){
  .iso-stage{--pw:104px}                /* scattered modules stay inside the card */
  .avatar{width:min(100%,120px)}
  /* Room and machine names shrink to ~5px on a phone; the text beside the drawing names them */
  .v-labels,.v-mlabels,.v-caption{display:none}
}

/* =====================================================================
   Look and feel (team decision, inspired by auxia.io):
   one grotesque at medium weight with tight tracking, monospace labels,
   sentence-case buttons, big rounded panels, a quiet dot grid. Colours stay navy + pale.
   ===================================================================== */
:root{
  --font:"Inter Tight",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --header-h:76px;--max:1320px;--r-panel:28px;--panel-gap:12px;
}
@media (max-width:639px){:root{--panel-gap:8px;--r-panel:20px}}
body{letter-spacing:-.01em}
h1,h2,h3,h4{font-weight:500}
.display{font-weight:500;letter-spacing:-.05em;line-height:.96}
.h2{font-weight:500;letter-spacing:-.045em;line-height:1}
.h3{font-weight:500;letter-spacing:-.03em}
.lead{letter-spacing:-.01em}
/* Small labels: monospace, uppercase */
.label{font-family:var(--mono);font-weight:500;letter-spacing:.04em;font-size:.75rem}
/* Section label chip */
.eyebrow{display:flex;align-items:center;gap:8px;width:fit-content;padding:6px 12px 6px 10px;border-radius:999px;background:rgba(11,31,82,.06);color:var(--ink-2)}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.55}
.dark .eyebrow{background:rgba(246,245,241,.08);color:var(--on-navy-2)}
.center .eyebrow{margin-inline:auto}
/* Buttons: sentence case, rounded */
.btn{font:500 .9375rem/1 var(--font);letter-spacing:-.005em;text-transform:none;border-radius:12px;min-height:50px;padding:0 22px}
.btn .i{width:16px;height:16px}
.mq-pause{font-family:var(--mono);font-size:.75rem}
/* Display numbers and big titles at the new weight */
.stats dd,.proc .big,.v-stats dd,.sc-big{font-weight:400}
.v-read dd,.rx-name,.bf-title,.route-rows dd,.rx-full,.rf-sentence,.faq summary,.mq-list li,.done h3,.feat-body .h3,.v-step h3,.auths b,.avatar,.proc h3,.principles h4,.note h3,.svc h3,.person h3{font-weight:500}
.rf-sentence{font-weight:400}
.faq summary{letter-spacing:-.03em}

/* ---------- Big rounded panels ---------- */
.sec.dark,.band-2,.pg-hero{margin-inline:var(--panel-gap);border-radius:var(--r-panel)}
.sec.dark+.sec:not(.dark):not(.band-2),.band-2+.sec:not(.dark):not(.band-2){margin-top:0}
.hero{margin:calc(var(--header-h) + 4px) var(--panel-gap) 0;border-radius:var(--r-panel);padding-top:clamp(56px,9vh,112px)}
/* Dark panels on a light page: the quiet dot field on every dark panel */
.sec.dark::after,.pg-hero::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:radial-gradient(circle,rgba(246,245,241,.13) 1px,transparent 1.6px) 0 0/24px 24px;
  -webkit-mask-image:linear-gradient(180deg,#000,transparent 55%);mask-image:linear-gradient(180deg,#000,transparent 55%)}
.sec.dark>.wrap,.pg-hero>.wrap{position:relative;z-index:1}
.contact::after{display:none} /* contact already has its own dot globe */
/* ---------- Inner page title panel ---------- */
.pg-hero{position:relative;overflow:hidden;margin-top:calc(var(--header-h) + 4px);padding:clamp(72px,10vw,140px) 0 clamp(56px,8vw,104px);
  background:radial-gradient(80% 70% at 50% 0%,rgba(23,49,122,.95),transparent 70%),var(--navy);color:var(--pale);--focus:var(--pale)}
.pg-hero .eyebrow{margin-bottom:24px}
.pg-title{font-size:clamp(2.75rem,1.5rem + 4.6vw,6.25rem);font-weight:500;letter-spacing:-.05em;line-height:.98;max-width:13em}
.pg-hero .lead{margin-top:24px;color:var(--on-navy-2);max-width:36em}
.pg-hero .btn-row{margin-top:36px}
.pg-meta{margin-top:40px;display:flex;flex-wrap:wrap;gap:8px}
.pg-meta span{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line-d);font:500 .75rem var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--on-navy-2)}
/* ---------- "See more" link at the end of a home section ---------- */
.more{margin-top:clamp(32px,4vw,48px);display:flex}
.center .more{justify-content:center}
.more a{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-weight:500;text-decoration:none;border-bottom:1px solid currentColor}
.more a .i{transition:transform var(--dur-1) var(--ease)}
.more a:hover .i{transform:translateX(3px)}
/* ---------- Cards grid (services, SFDA, PMTA lists) ---------- */
.cards{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.card{border-radius:20px;background:#FBFAF7;box-shadow:inset 0 0 0 1px var(--line);padding:clamp(22px,2.6vw,32px);display:flex;flex-direction:column;gap:12px}
.band-2 .card{background:var(--pale)}
.dark .card{background:var(--navy-2);box-shadow:inset 0 0 0 1px var(--line-d)}
.card .label{color:var(--ink-3)}
.dark .card .label{color:var(--on-navy-3)}
.card h3{font-size:1.375rem;letter-spacing:-.03em;line-height:1.15}
.card p,.card li{color:var(--ink-2)}
.dark .card p,.dark .card li{color:var(--on-navy-2)}
.card ul{display:grid;gap:8px}
.card ul li{display:grid;grid-template-columns:18px 1fr;gap:10px;align-items:start}
.card ul li::before{content:"";width:14px;height:14px;margin-top:4px;border-radius:50%;box-shadow:inset 0 0 0 1.5px currentColor;opacity:.5}
.card .n{font:500 .75rem var(--mono);letter-spacing:.04em;color:var(--ink-3)}
/* Check list (two columns on wide screens) */
.checks{display:grid;gap:0 40px;border-top:1px solid var(--line)}
@media (min-width:860px){.checks{grid-template-columns:1fr 1fr}}
.checks li{display:grid;grid-template-columns:28px 1fr;gap:12px;padding:18px 0;border-bottom:1px solid var(--line);font-size:1.0625rem}
.checks .i{width:20px;height:20px;margin-top:2px}
.dark .checks{border-color:var(--line-d)}.dark .checks li{border-color:var(--line-d)}
/* Numbered steps joined by a thin line */
.steps{display:grid;gap:16px;counter-reset:s;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}
.steps li{position:relative;border-radius:20px;background:#FBFAF7;box-shadow:inset 0 0 0 1px var(--line);padding:28px 26px 26px;counter-increment:s}
.steps li::before{content:counter(s,decimal-leading-zero);display:block;margin-bottom:28px;font:500 .75rem var(--mono);letter-spacing:.06em;color:var(--ink-3)}
.steps li::after{content:"";position:absolute;left:26px;right:26px;top:52px;height:1px;background:linear-gradient(90deg,var(--navy) 0 28px,var(--line) 28px)}
.steps h3{font-size:1.375rem;letter-spacing:-.03em}
.steps p{margin-top:10px;color:var(--ink-2)}
/* Two-column text block */
.prose-grid{display:grid;gap:28px 64px}
@media (min-width:960px){.prose-grid{grid-template-columns:1fr 1.15fr}}
.prose p+p{margin-top:16px}
.prose p{color:var(--ink-2);font-size:1.0625rem}
.dark .prose p{color:var(--on-navy-2)}
/* Call-to-action panel */
.cta-band{text-align:center}
.cta-band .lead{margin-inline:auto;margin-top:18px}
.cta-band .btn-row{justify-content:center;margin-top:32px}
/* Job cards (Career) */
.jobs{display:grid;gap:16px}
@media (min-width:960px){.jobs{grid-template-columns:1fr 1fr}}
.job{border-radius:20px;background:#FBFAF7;box-shadow:inset 0 0 0 1px var(--line);padding:clamp(24px,3vw,36px);display:flex;flex-direction:column;gap:14px}
.job h3{font-size:1.5rem;letter-spacing:-.03em}
.job p{color:var(--ink-2)}
.job .tags .tag{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:.6875rem}
.job .is-open{background:rgba(31,122,77,.12);color:var(--ok)}
.job-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
/* Blog list */
.posts{display:grid;gap:16px}
@media (min-width:900px){.posts{grid-template-columns:1fr 1fr}}
.post{position:relative;border-radius:20px;background:#FBFAF7;box-shadow:inset 0 0 0 1px var(--line);padding:clamp(24px,3vw,36px);display:flex;flex-direction:column;gap:12px;transition:background-color var(--dur-1) var(--ease)}
.post:hover{background:#fff}
.post h3{font-size:1.5rem;letter-spacing:-.03em;line-height:1.15}
.post p{color:var(--ink-2)}
.post a{margin-top:auto;display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:500;text-decoration:none}
.post a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.post:has(a:focus-visible){outline:2px solid var(--navy);outline-offset:3px}
.post a:focus-visible{outline:none}
.chips{display:flex;flex-wrap:wrap;gap:8px}
/* Client logos in the marquee */
.mq-logos li{font-size:0;gap:clamp(48px,7vw,96px);padding-right:clamp(48px,7vw,96px)}
.mq-logos li::after{display:none}
.mq-logos img{display:block;height:clamp(30px,3.4vw,44px);width:auto;filter:grayscale(1) contrast(1.05);mix-blend-mode:multiply;opacity:.78;transition:filter var(--dur-2) var(--ease),opacity var(--dur-2) var(--ease)}
.mq-logos img.is-tall{height:clamp(48px,5vw,68px)}
.marquee:hover .mq-logos img{opacity:.9}
.mq-logos img:hover{filter:none;opacity:1}
/* FAQ groups on the FAQ page */
.faq-group+.faq-group{margin-top:clamp(56px,7vw,88px)}
.faq-group>.label{display:block;margin-bottom:16px;color:var(--on-navy-3)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}
}
/* Mono clock: fixed-width digits already, so no reserved width is needed */
.hero-meta{white-space:nowrap}
.hero-meta time{width:auto}
/* Logos have white backgrounds: a page-coloured backdrop lets the multiply blend remove them */
.mq-logos{background:var(--pale)} /* the moving row is its own layer, so the backdrop must sit on the row */
.mq-logos img{height:clamp(28px,3vw,38px)}
.mq-logos img[alt="Medtronic"],.mq-logos img[src*="Medtronic"]{height:clamp(24px,2.6vw,32px)}
.mq-logos img.is-tall{height:clamp(48px,4.6vw,62px)}
/* ---------- Inner page pieces ---------- */
.pg-first{margin-top:calc(var(--header-h) + 4px)}
.pg-stats{margin-top:clamp(48px,6vw,80px);padding-top:clamp(32px,4vw,48px);border-top:1px solid var(--line-d)}
.pg-stats dd{font-size:clamp(2.75rem,1.8rem + 3vw,4.5rem)}
.svc-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr))}
.svc-grid .svc{width:auto;min-height:0}
/* FAQ list on a light background */
.faq-light{border-top-color:var(--line)}
.faq-light details{border-bottom-color:var(--line)}
.faq-light .faq-a{color:var(--ink-2)}
/* Job details */
.job-meta{display:flex;flex-wrap:wrap;gap:12px 32px;padding-top:14px;border-top:1px solid var(--line)}
.job-meta div{display:grid;gap:4px}
.job-meta dd{font-weight:500}
/* ---------- Phone polish ---------- */
/* Two panels in a row keep a small gap, like the page edges */
.sec.dark+.band-2,.band-2+.sec.dark,.sec.dark+.sec.dark,.band-2+.band-2{margin-top:var(--panel-gap)}
@media (max-width:639px){
  .bf-steps{gap:2px}
  .bf-steps .pill{padding:0 10px;font-size:.8125rem}   /* all four steps fit on one line */
  .job .tags .tag{font-size:.75rem}
}
/* VERA logo on the home page: a link to the VERA 2.0 page */
.vera-logo-link{display:block;width:fit-content;margin:0 auto 24px;padding:14px;border-radius:22px;
  transition:background-color var(--dur-2) var(--ease),box-shadow var(--dur-2) var(--ease),transform var(--dur-2) var(--ease)}
.vera-logo-link .vera-logo{margin:0;transition:transform var(--dur-2) var(--ease)}
.vera-logo-link:hover{background:rgba(246,245,241,.08);box-shadow:inset 0 0 0 1px var(--line-d),0 0 0 6px rgba(246,245,241,.04)}
.vera-logo-link:hover .vera-logo{transform:scale(1.08) rotate(-6deg)}
.vera-logo-link:active{transform:scale(.97)}

/* ---------- Type tuned to match auxia.io (PP Neue Montreal; Inter Tight is the closest free match) ---------- */
body{font-weight:430;letter-spacing:-.005em}
h1,h2,h3,h4,.display,.h2,.h3,.pg-title,.bf-title,.rx-name{font-weight:500}
.display,.pg-title{letter-spacing:-.035em;line-height:.98}
.h2{letter-spacing:-.03em;line-height:1.02}
.h3,.card h3,.post h3,.job h3,.steps h3,.svc h3,.note h3,.proc h3,.principles h4{letter-spacing:-.02em}
.lead{font-weight:430}
.btn,.pill,.rh-nav a{font-weight:500}
.bf-title,.rx-name,.faq summary,.rh-foot-tag{letter-spacing:-.03em}

/* ---------- Fully navy page (Contact): no panel edges, the section runs edge to edge into the footer ---------- */
body.page-dark{background:var(--navy)}
.page-dark .sec.dark{margin:0;border-radius:0}
.page-dark .sec.dark.pg-first{margin-top:var(--header-h);padding-top:clamp(64px,9vw,120px)} /* space for the header (beats the no-margin rule above) */
.page-dark .rh-hdr{background:#F6F5F1} /* same white header as every page, solid over the navy body */
.page-dark .contact::before{bottom:0;
  -webkit-mask-image:radial-gradient(closest-side,#000 55%,transparent 100%),linear-gradient(180deg,#000 45%,transparent 92%);-webkit-mask-composite:source-in;
  mask-image:radial-gradient(closest-side,#000 55%,transparent 100%),linear-gradient(180deg,#000 45%,transparent 92%);mask-composite:intersect} /* the dotted globe fades out before the footer */
.page-dark .rh-foot{border-top:1px solid var(--rh-line-d)}

/* Contact page: the dotted globe stays very light */
.page-dark .contact::before{background:radial-gradient(circle,rgba(246,245,241,.14) 1px,transparent 1.5px) 0 0/14px 14px}
