
/* Self-hosted Inter (variable, latin). No third-party font calls — keeps CSP
   font-src 'self' and leaks no visitor IPs to Google. See landing_redesign_PLAN.md D2. */
@font-face{
  font-family:'Inter';
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  src:url('fonts/Inter-variable.woff2') format('woff2');
}

:root{
  --bg:#07111f;--bg2:#0b1730;--ink:#0c1526;--muted:#657084;--text:#eaf1ff;--soft:#f5f8fd;--card:#ffffff;--line:#dbe4f3;
  --blue:#1a7cff;--violet:#7b4dff;--cyan:#5ee4ff;--accent:linear-gradient(90deg,#1a7cff,#7b4dff);
  --shadow:0 22px 70px rgba(12,21,38,.14);--radius:22px;--max:1180px;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.55} a{color:inherit;text-decoration:none}.container{max-width:var(--max);margin:auto;padding:0 28px}.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.87);backdrop-filter:blur(18px);border-bottom:1px solid rgba(219,228,243,.8)}.nav-inner{height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;font-weight:850;letter-spacing:.02em;text-transform:none;font-size:17px}.brand img.brand-icon{height:42px;width:42px;object-fit:contain;border-radius:0;filter:drop-shadow(0 10px 24px rgba(26,124,255,.20))} .brand img.footer-icon{height:46px;width:46px;object-fit:contain;border-radius:0;filter:drop-shadow(0 10px 26px rgba(26,124,255,.22))}.brand .fallback{display:none}.brand-lockup{display:flex;align-items:center;gap:12px}.brand-text{font-weight:850;color:#111a2c;letter-spacing:-.02em}.footer .brand-text{color:#f4f8ff}.hero-logo{display:flex;justify-content:center;margin-bottom:18px}.hero-logo img{width:min(330px,82%);height:auto;filter:drop-shadow(0 22px 55px rgba(26,124,255,.28));border-radius:28px}.hero-card{position:relative}.logo-watermark{position:absolute;right:-70px;bottom:-80px;width:240px;opacity:.08;pointer-events:none}.page-mark{margin-top:34px;display:flex;align-items:center;gap:18px;color:#dbe8ff}.page-mark img{width:82px;height:82px;object-fit:contain;border-radius:0;filter:drop-shadow(0 18px 42px rgba(83,123,255,.30))}.logo-strip{display:grid;grid-template-columns:100px 1fr;gap:22px;align-items:center;background:linear-gradient(135deg,#07111f,#102248);color:#fff;border-radius:28px;padding:24px;border:1px solid rgba(255,255,255,.12);box-shadow:0 20px 70px rgba(12,21,38,.12)}.logo-strip img{width:92px;height:92px;object-fit:contain;border-radius:24px}.logo-strip p{margin:0;color:#c7d4ef}.square-brand-card{background:linear-gradient(135deg,#07111f,#102248);border:1px solid rgba(255,255,255,.12);border-radius:28px;padding:18px;box-shadow:0 24px 70px rgba(12,21,38,.15)}.square-brand-card img{width:100%;display:block;border-radius:18px}.brand-dot{width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#8be9ff,#2d7fff 45%,#6e41ff);box-shadow:0 0 24px rgba(26,124,255,.3)}.links{display:flex;align-items:center;gap:22px;font-size:14px;color:#26364f}.links a:hover{color:#125fd6}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:13px 19px;font-weight:750;border:1px solid transparent;transition:.2s}.btn-primary{background:var(--accent);color:white;box-shadow:0 14px 35px rgba(26,124,255,.24)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 18px 48px rgba(26,124,255,.3)}.btn-secondary{background:rgba(255,255,255,.1);color:white;border-color:rgba(255,255,255,.2)}.btn-light{background:#fff;color:#12213a;border-color:#dfe7f4}.btn-light:hover{border-color:#aebde0}.mobile-toggle{display:none;border:0;background:transparent;font-size:28px}.hero{position:relative;overflow:hidden;background:radial-gradient(900px 600px at 75% 20%,rgba(53,116,255,.36),transparent 65%),radial-gradient(700px 500px at 15% 10%,rgba(123,77,255,.28),transparent 65%),linear-gradient(135deg,#07111f 0%,#0b1830 54%,#081222 100%);color:white}.hero:after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.13) 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(90deg,rgba(0,0,0,.3),transparent 65%);opacity:.55}.hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;min-height:620px;padding:86px 0}.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:850;letter-spacing:.17em;text-transform:uppercase;color:#1d6fe8}.hero .eyebrow{color:#8bdcff}.eyebrow:before{content:"";width:28px;height:2px;background:var(--accent);border-radius:99px}.h1{font-size:clamp(44px,6vw,78px);line-height:.98;margin:18px 0 20px;letter-spacing:-.055em}.h2{font-size:clamp(31px,4vw,48px);line-height:1.05;margin:12px 0 18px;letter-spacing:-.04em}.lead{font-size:20px;color:#d8e4ff;max-width:760px}.copy{font-size:17px;color:#566279}.hero .copy{color:#b9c8e5}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}.hero-card{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);border-radius:30px;padding:28px;backdrop-filter:blur(16px);box-shadow:0 30px 80px rgba(0,0,0,.24)}.signal-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.signal{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:18px;min-height:120px}.signal strong{display:block;font-size:15px;margin-bottom:8px}.signal span{font-size:13px;color:#c7d4ef}.section{padding:88px 0}.section.alt{background:var(--soft)}.section.dark{background:linear-gradient(135deg,#07111f,#0d1b34);color:white}.section.dark .copy,.section.dark .muted{color:#bcc9e2}.section-head{max-width:830px;margin-bottom:38px}.grid{display:grid;gap:22px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:0 12px 40px rgba(12,21,38,.05)}.dark .card{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.13);box-shadow:none}.card h3{margin:0 0 10px;font-size:20px;letter-spacing:-.02em}.card p{margin:0;color:#607089}.dark .card p{color:#c5d1e8}.metric{font-size:13px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:#1d6fe8}.band{background:linear-gradient(135deg,#0b1730,#122b55);color:#fff;border-radius:32px;padding:42px;display:grid;grid-template-columns:1.2fr .8fr;gap:24px;align-items:center;position:relative;overflow:hidden}.band:after{content:"";position:absolute;right:-80px;top:-90px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(94,228,255,.24),transparent 68%)}.band>*{position:relative;z-index:2}.list{display:grid;gap:12px;margin:18px 0 0;padding:0;list-style:none}.list li{padding-left:22px;position:relative;color:#566279}.dark .list li,.band .list li{color:#d5e2f7}.list li:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--blue);position:absolute;left:0;top:.63em}.page-hero{background:linear-gradient(135deg,#07111f,#102248);color:#fff;padding:86px 0 70px;position:relative;overflow:hidden}.page-hero:after{content:"";position:absolute;inset:auto -80px -120px auto;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(26,124,255,.22),transparent 65%)}.page-hero .container{position:relative;z-index:2}.page-hero .h1{max-width:920px}.page-hero .lead{max-width:900px}.split{display:grid;grid-template-columns:.92fr 1.08fr;gap:42px;align-items:start}.pill-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.pill{border:1px solid #dbe4f3;background:white;border-radius:999px;padding:9px 13px;font-size:13px;font-weight:700;color:#33435d}.dark .pill{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);color:#dce7fb}.footer{background:#050b15;color:#dce7fb;padding:50px 0 26px}.footer-grid{display:grid;grid-template-columns:1fr auto;gap:30px;border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:30px}.footer a{color:#dce7fb}.fine{font-size:13px;color:#8fa0bb}.form{background:white;border:1px solid var(--line);border-radius:28px;padding:30px;box-shadow:var(--shadow)}.form input,.form select,.form textarea{width:100%;border:1px solid #d7e0ee;border-radius:14px;padding:14px 14px;font:inherit;margin-top:7px;background:#fff}.form label{font-weight:750;font-size:14px;color:#26364f}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}textarea{min-height:140px;resize:vertical}.mini-cta{margin-top:26px}.accent-line{height:4px;background:var(--accent)}
@media(max-width:900px){.links{display:none}.mobile-toggle{display:block}.hero-inner,.split,.band{grid-template-columns:1fr}.hero-inner{min-height:auto;padding:68px 0}.hero-card{display:none}.grid-3,.grid-4{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}}
@media(max-width:620px){.container{padding:0 20px}.nav-inner{height:68px}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.section{padding:64px 0}.h1{font-size:42px}.h2{font-size:32px}.lead{font-size:18px}.brand img.brand-icon{height:42px;width:42px;object-fit:contain;border-radius:0;filter:drop-shadow(0 10px 24px rgba(26,124,255,.20))} .brand img.footer-icon{height:46px;width:46px;object-fit:contain;border-radius:0;filter:drop-shadow(0 10px 26px rgba(26,124,255,.22))}.btn{width:100%}.hero-actions{width:100%}.band{padding:30px 22px}.page-hero{padding:64px 0 54px}}

.nav .brand:hover .brand-text{color:#1d6fe8}
.hero-card .signal-grid{position:relative;z-index:2}
.dark-logo-lockup{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.dark-logo-lockup img{width:64px;height:64px;border-radius:16px;object-fit:contain}
@media(max-width:900px){.page-mark{display:none}.logo-strip{grid-template-columns:1fr}.logo-watermark{display:none}}
@media(max-width:620px){.brand-text{font-size:15px}.brand img.brand-icon{height:38px;width:38px}.hero-logo img{width:240px}.logo-strip img{width:76px;height:76px}}

.location-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:22px}
.location-card{background:white;border:1px solid var(--line);border-radius:24px;padding:24px;box-shadow:0 12px 40px rgba(12,21,38,.05)}
.location-card h3{margin:0 0 8px;font-size:20px}
.location-card p{margin:0;color:#607089}
.footer-locations{margin-top:14px;color:#aebdde;font-size:13px;line-height:1.65}
.footer-locations strong{color:#ffffff}
@media(max-width:760px){.location-grid{grid-template-columns:1fr}}

/* ---- Accessibility: visible keyboard focus (DESIGN.md AA floor) ---- */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid #5ee4ff;outline-offset:2px;border-radius:6px}
.nav a:focus-visible,.footer a:focus-visible{outline-offset:4px}

/* ---- Skip to content link ---- */
.skip-link{position:absolute;left:12px;top:-60px;z-index:200;background:#fff;color:#0c1526;
  padding:10px 16px;border-radius:10px;font-weight:750;box-shadow:0 8px 24px rgba(0,0,0,.25);
  transition:top .15s ease}
.skip-link:focus{top:12px}

/* ---- Mobile nav: the hamburger toggles body.menu-open; show the links as a
   full-width dropdown panel. Without this the menu button did nothing <900px. ---- */
@media(max-width:900px){
  body.menu-open .links{
    display:flex;flex-direction:column;align-items:stretch;gap:4px;
    position:absolute;left:0;right:0;top:100%;
    background:rgba(255,255,255,.98);backdrop-filter:blur(18px);
    border-bottom:1px solid rgba(219,228,243,.9);
    padding:12px 28px 20px;box-shadow:0 24px 48px rgba(12,21,38,.14)}
  body.menu-open .links a{padding:14px 6px;min-height:44px;display:flex;align-items:center;
    border-bottom:1px solid rgba(219,228,243,.6);color:#1b2740;font-size:16px}
  body.menu-open .links a.btn{justify-content:center;margin-top:10px;border-bottom:0}
  .nav{position:sticky}
  .mobile-toggle{min-width:44px;min-height:44px}
}

/* ---- Blueprint form: loading / success / error states ---- */
.form .field-error{display:none;color:#d6483b;font-size:13px;font-weight:600;margin-top:6px}
.form .form-field.invalid input,.form .form-field.invalid select,.form .form-field.invalid textarea{
  border-color:#d6483b;background:#fff6f5}
.form .form-field.invalid .field-error{display:block}
.form button[disabled]{opacity:.6;cursor:progress}
.form .form-status{display:none;margin-top:16px;padding:14px 16px;border-radius:14px;font-weight:600;font-size:14px}
.form .form-status.error{display:block;background:#fdecea;color:#a3271b;border:1px solid #f3c0b9}
.form-success{display:none;background:#fff;border:1px solid var(--line);border-radius:28px;
  padding:40px 32px;box-shadow:var(--shadow);text-align:center}
.form-success.show{display:block}
.form-success h3{margin:0 0 10px;font-size:24px;color:#0c1526;letter-spacing:-.02em}
.form-success p{margin:0;color:#566279;font-size:16px}
.form-success .ok-mark{width:56px;height:56px;border-radius:50%;margin:0 auto 18px;
  display:flex;align-items:center;justify-content:center;font-size:28px;color:#fff;
  background:linear-gradient(135deg,#1a7cff,#7b4dff)}
.spinner{display:none;width:16px;height:16px;border:2px solid rgba(255,255,255,.5);
  border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;margin-left:4px}
.is-submitting .spinner{display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.spinner{animation:none}html{scroll-behavior:auto}}

/* ---- 7-link nav (Trust Center added 2026-07): the full row needs ~1130px at
   default sizing. Compact the links below 1160px and hand over to the hamburger
   below 1024px, so labels never wrap to two lines in the laptop range. ---- */
.links a{white-space:nowrap}
.brand-text{white-space:nowrap}
@media(max-width:1160px){
  .links{gap:13px;font-size:13px}
  .links .btn{padding:11px 14px}
}
@media(max-width:1023px){
  .links{display:none}
  .mobile-toggle{display:block}
  body.menu-open .links{
    display:flex;flex-direction:column;align-items:stretch;gap:4px;
    position:absolute;left:0;right:0;top:100%;
    background:rgba(255,255,255,.98);backdrop-filter:blur(18px);
    border-bottom:1px solid rgba(219,228,243,.9);
    padding:12px 28px 20px;box-shadow:0 24px 48px rgba(12,21,38,.14)}
  body.menu-open .links a{padding:14px 6px;min-height:44px;display:flex;align-items:center;
    border-bottom:1px solid rgba(219,228,243,.6);color:#1b2740;font-size:16px}
  body.menu-open .links a.btn{justify-content:center;margin-top:10px;border-bottom:0}
}
