*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#FDFDFB;color:#3C444C;font-family:'Public Sans',sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:#3E6B8C;text-decoration:none}
a:hover{color:#0F2A4A}
::selection{background:rgba(62,107,140,0.22)}
.cta{position:relative;font-family:'Public Sans',sans-serif;font-weight:600;letter-spacing:0.005em;display:inline-flex;align-items:center;gap:12px}
.cta-solid{color:#FDFDFB;background:#0F2A4A;padding:20px 40px;border-radius:8px;font-size:18px;transition:transform .25s cubic-bezier(.16,.84,.44,1),background .25s ease,box-shadow .25s ease;box-shadow:0 10px 30px -14px rgba(15,42,74,0.5)}
.cta-solid:hover{background:#0B2038;color:#FDFDFB;transform:translateY(-3px);box-shadow:0 22px 44px -18px rgba(15,42,74,0.65)}
.cta-solid .arw{transition:transform .3s cubic-bezier(.16,.84,.44,1)}
.cta-solid:hover .arw{transform:translateX(6px)}
.cta-link{font-size:18px;color:#0F2A4A;padding:6px 0}
.cta-link .ul{position:absolute;left:0;right:0;bottom:0;height:2px;background:#3E6B8C;transform:scaleX(1);transform-origin:left;transition:transform .35s cubic-bezier(.16,.84,.44,1)}
.cta-link:hover .ul{transform:scaleX(0);transform-origin:right}
.cta-link .ul2{position:absolute;left:0;right:0;bottom:0;height:2px;background:#0F2A4A;transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.16,.84,.44,1) .05s}
.cta-link:hover .ul2{transform:scaleX(1)}
.cta-link .arw{transition:transform .3s cubic-bezier(.16,.84,.44,1)}
.cta-link:hover .arw{transform:translateX(6px)}
.cta-sm{padding:14px 26px;font-size:15px;border-radius:6px}
.cta-on-dark,.cta-on-dark:hover{color:#FDFDFB}
.cta-on-dark .ul{background:#7FB0DA}
.cta-on-dark .ul2{background:#FDFDFB}
.cta-light{background:#FDFDFB;color:#0F2A4A;box-shadow:none}
.cta-light:hover{background:#EAF1F7;color:#0F2A4A}
.navlink{position:relative;font-family:'Public Sans',sans-serif;font-size:15px;color:#3C444C;padding-bottom:4px}
.navlink::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1.5px;background:#0F2A4A;transform:scaleX(0);transform-origin:right;transition:transform .3s cubic-bezier(.16,.84,.44,1)}
.navlink:hover,.navlink.on{color:#0F2A4A}
.navlink.on::after,.navlink:hover::after{transform:scaleX(1);transform-origin:left}
.navcta{font-family:'Public Sans',sans-serif;font-weight:600;font-size:15px;color:#FDFDFB;background:#0F2A4A;padding:12px 24px;border-radius:6px;transition:background .2s ease,transform .2s ease}
.navcta:hover{background:#0B2038;color:#FDFDFB;transform:translateY(-1px)}
.mobile-nav{display:none;position:relative}
.mobile-nav summary{display:flex;width:46px;height:46px;align-items:center;justify-content:center;border:1px solid rgba(15,42,74,.16);border-radius:8px;background:#FDFDFB;cursor:pointer;list-style:none;color:#0F2A4A}
.mobile-nav summary::-webkit-details-marker{display:none}
.mobile-nav summary:focus-visible{outline:3px solid rgba(62,107,140,.28);outline-offset:2px}
.hamburger{position:relative;width:22px;height:16px;border-top:2px solid currentColor;border-bottom:2px solid currentColor;transition:transform .2s ease}
.hamburger::after{content:"";position:absolute;left:0;top:5px;width:22px;height:2px;background:currentColor;transition:opacity .2s ease}
.mobile-nav[open] .hamburger{border:0;transform:rotate(45deg)}
.mobile-nav[open] .hamburger::before,.mobile-nav[open] .hamburger::after{content:"";position:absolute;left:0;top:7px;width:22px;height:2px;background:currentColor}
.mobile-nav[open] .hamburger::before{transform:rotate(90deg)}
.mobile-menu{position:absolute;right:0;top:55px;width:min(290px,calc(100vw - 40px));padding:10px;background:#FDFDFB;border:1px solid rgba(15,42,74,.12);border-radius:12px;box-shadow:0 22px 50px -24px rgba(15,42,74,.5);display:grid;gap:4px}
.mobile-menu a{display:block;padding:13px 14px;border-radius:7px;font-size:16px;font-weight:500;color:#0F2A4A}
.mobile-menu a:hover,.mobile-menu a.on{background:#EEF2F5;color:#0F2A4A}
.mobile-menu .navcta{margin-top:4px;text-align:center;color:#FDFDFB;background:#0F2A4A}
.mono{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:500;letter-spacing:0.2em;text-transform:uppercase;color:#8B95A1}
.mono-accent{color:#3E6B8C}
.h1{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(40px,5.6vw,72px);line-height:1.02;letter-spacing:-0.02em;color:#0F2A4A;margin:24px 0 0}
.h2{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(32px,4.4vw,52px);line-height:1.06;letter-spacing:-0.014em;color:#0F2A4A;margin:16px 0 0}
.lead{font-family:'Public Sans',sans-serif;font-weight:400;font-size:19px;line-height:1.72;color:#3C444C;max-width:64ch;margin:26px 0 0}
.wrap{max-width:1220px;margin:0 auto;padding-left:32px;padding-right:32px}
.section{padding:120px 0;scroll-margin-top:90px}
.card{background:#FDFDFB;border:1px solid rgba(15,42,74,0.10);border-radius:12px;padding:34px 30px;transition:transform .3s cubic-bezier(.16,.84,.44,1),box-shadow .3s ease,border-color .3s ease}
.card:hover{transform:translateY(-8px);box-shadow:0 26px 50px -28px rgba(15,42,74,0.5);border-color:rgba(62,107,140,0.45)}
.imgwrap{overflow:hidden}
.imgwrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.16,.84,.44,1)}
.card:hover .imgwrap img{transform:scale(1.06)}
.fld{width:100%;font-family:'Public Sans',sans-serif;font-size:15px;color:#0F2A4A;background:#FDFDFB;border:1px solid rgba(15,42,74,0.16);border-radius:8px;padding:13px 15px;transition:border-color .2s ease,box-shadow .2s ease}
.fld:focus{outline:none;border-color:#3E6B8C;box-shadow:0 0 0 3px rgba(62,107,140,0.16)}
.fld::placeholder{color:#8B95A1}
.flabel{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:#8B95A1;margin-bottom:7px;display:block}
.tag{align-self:flex-start;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:#3E6B8C;background:#EEF2F5;padding:5px 11px;border-radius:6px}
.social{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid rgba(15,42,74,0.16);border-radius:8px;color:#0F2A4A}
.social:hover{border-color:#3E6B8C;color:#3E6B8C;background:#EEF2F5}
.linkedin-link{display:inline-flex;width:21px;height:21px;align-items:center;justify-content:center;vertical-align:-4px;margin-left:3px;color:#0A66C2;border-radius:3px}
.linkedin-link svg{display:block;width:100%;height:100%}
.linkedin-link:hover{color:#084E96}
.ft{font-family:'Public Sans',sans-serif;font-size:14px;color:#9DB4CC}
.ft:hover{color:#FDFDFB}
.ftk{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:#6E85A0}
.cert-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}
.cert-mini{height:66px;border:1px solid rgba(15,42,74,.1);border-radius:8px;background:#fff;padding:10px;display:flex;align-items:center;justify-content:center}
.cert-mini img{display:block;width:100%;height:44px;object-fit:contain;mix-blend-mode:multiply}
.brand-dot{display:inline-block;width:.62em;height:.62em;flex:0 0 .62em;box-sizing:border-box;overflow:hidden;border:.09em solid #0F2A4A;border-radius:50%;background:#3E6B8C;color:transparent;font-size:inherit;line-height:0;text-indent:-999px;margin:0 .035em}
.site-logo{display:block;width:230px;height:58px;object-fit:contain;object-position:center;flex:none}
.site-logo--footer{width:230px;height:58px;filter:brightness(0) invert(1)}
.office-grid{display:grid;grid-template-columns:1.15fr repeat(4,minmax(0,1fr));gap:14px}
.office-hq{grid-row:span 2}
.product-grid > :nth-child(1){order:2}
.product-grid > :nth-child(2){order:3}
.product-grid > :nth-child(3){order:4}
.product-grid > :nth-child(4){order:1}
.product-grid > :nth-child(5){order:5}
.product-grid > :nth-child(n+6){order:6}
.news-item{display:grid;grid-template-columns:180px 1fr;gap:32px;padding:36px 0;border-top:1px solid rgba(15,42,74,0.12)}
.news-item h3{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(1.4rem,2.2vw,1.9rem);letter-spacing:-0.02em;line-height:1.2;color:#0F2A4A;margin:10px 0 0}
.news-item:hover h3{color:#3E6B8C}
.flagship-hero{position:relative;overflow:hidden;background:radial-gradient(circle at 78% 18%,rgba(123,80,162,.38),transparent 32%),linear-gradient(135deg,#0B2138 0%,#132D4D 50%,#241B3D 100%);color:#FDFDFB}
.flagship-hero::after{content:"";position:absolute;inset:auto -10% -48% 42%;height:72%;border:1px solid rgba(191,159,220,.22);border-radius:50%;transform:rotate(-8deg);pointer-events:none}
.flagship-grid{position:relative;z-index:1;min-height:670px;padding-top:82px;padding-bottom:82px;display:grid;grid-template-columns:minmax(0,.9fr) minmax(440px,1.1fr);gap:64px;align-items:center}
.flagship-copy{max-width:600px}
.flagship-label{display:inline-flex;align-items:center;gap:12px;padding:9px 14px;border:1px solid rgba(201,177,224,.42);border-radius:999px;background:rgba(255,255,255,.06);font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:#E6D8F1}
.flagship-label span{width:7px;height:7px;border-radius:50%;background:#B88BD7;box-shadow:0 0 0 5px rgba(184,139,215,.14)}
.flagship-title{font-family:'Newsreader',serif;font-weight:400;font-size:clamp(64px,8vw,108px);line-height:.9;letter-spacing:-.035em;color:#FDFDFB;margin:22px 0 0}
.flagship-title span{color:#B88BD7}
.flagship-subtitle{font-size:18px;font-weight:600;letter-spacing:.01em;color:#D8E6F1;margin:22px 0 0}
.flagship-description{font-size:16px;line-height:1.75;color:#B8C9D8;max-width:60ch;margin:18px 0 0}
.flagship-visual{position:relative;border-radius:18px;overflow:hidden;background:#F4F0F6;box-shadow:0 38px 80px -38px rgba(0,0,0,.72);border:1px solid rgba(255,255,255,.15)}
.flagship-visual img{display:block;width:100%;aspect-ratio:1.665/1;object-fit:cover}
.flagship-image-caption{display:flex;justify-content:space-between;gap:18px;padding:16px 20px;background:rgba(9,25,43,.94);font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#AFC8DE}
@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@media (max-width:860px){
  .navhide{display:none !important}
  .mobile-nav{display:block}
  .news-item{grid-template-columns:1fr;gap:10px}
  .wrap{padding-left:20px;padding-right:20px}
  .cert-mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .office-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .office-hq{grid-row:auto;grid-column:1/-1}
  .flagship-grid{min-height:auto;grid-template-columns:1fr;gap:44px;padding-top:70px;padding-bottom:70px}
  .flagship-copy{max-width:none}
}
@media (max-width:520px){.site-logo{width:164px;height:42px}.site-logo--footer{width:180px;height:46px}.office-grid{grid-template-columns:1fr}.proof-grid>*{padding:52px 0!important;border-left:0!important}.flagship-grid{padding-top:52px;padding-bottom:52px;gap:32px}.flagship-visual img{aspect-ratio:4/3}.flagship-image-caption{flex-direction:column;gap:7px}}
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important}
}
