*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:#fff;font-family:Inter,Arial,sans-serif;background:radial-gradient(ellipse at 75% 35%,#6d9ef3 0,transparent 48%),linear-gradient(125deg,#689ce8 0%,#4c76e8 58%,#355ed9 100%);min-height:100vh}a{color:inherit;text-decoration:none}a,button{ -webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #c9fff0;outline-offset:6px}.skip{position:fixed;top:-80px;background:#163858;padding:12px;z-index:10}.skip:focus{top:10px}.header{border-bottom:1px solid #ffffff26;background:#ffffff07}.header-inner{max-width:1280px;margin:auto;padding:24px 48px;display:flex;align-items:center;gap:48px}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand img{width:43px;height:56px}.brand span{font-size:13px;line-height:1.4;letter-spacing:.02em}.brand strong{font-weight:700}nav{display:flex;align-items:center;gap:27px;margin-left:auto;font-size:13px;font-weight:500}nav>a,.dropdown>a{display:block;padding:12px 0;white-space:nowrap}nav a:hover{color:#d3fff2}.socials{display:flex;gap:18px;margin-left:12px}.socials a{display:flex;align-items:center;padding:6px}.socials img{height:17px;width:17px;object-fit:contain}.dropdown{position:relative}.submenu{display:none;position:absolute;top:100%;left:-20px;width:210px;padding:12px;background:#fff;color:#234578;box-shadow:0 12px 40px #17398726;border-radius:12px;z-index:5}.submenu a{display:block;padding:10px;font-size:13px}.submenu a:hover{background:#eff4ff;color:#234578;border-radius:6px}.dropdown:hover .submenu,.dropdown:focus-within .submenu{display:block}.menu-toggle{display:none}.hero{max-width:1280px;margin:auto;display:grid;grid-template-columns:1fr 1fr;padding:76px 48px 90px;align-items:center;min-height:720px;position:relative;overflow:hidden}.hero-copy{position:relative;z-index:2}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.17em;text-transform:uppercase;display:flex;align-items:center;gap:10px;margin-bottom:25px}.eyebrow span{height:6px;width:6px;background:#baffdf;border-radius:50%}h1{font-size:clamp(68px,7.5vw,100px);line-height:.99;letter-spacing:-.065em;margin:0 0 30px;font-weight:700}.dot{color:#bbf8e4}.intro,.mission{max-width:465px;font-size:15px;line-height:1.8;margin:0 0 18px;font-weight:400}.intro{font-size:16px}.mission{color:#edf3ff}.actions{display:flex;gap:26px;align-items:center;margin-top:32px;font-size:13px;font-weight:600}.primary{display:flex;align-items:center;gap:30px;padding:18px 22px;background:#fff;color:#244e9f;border-radius:8px;box-shadow:0 4px 20px #183c9b14;transition:transform .2s,box-shadow .2s}.primary:hover{transform:translateY(-2px);box-shadow:0 8px 28px #183c9b25}.secondary{padding:15px 0;border-bottom:1px solid #ffffff60}.secondary span{margin-left:10px}.secondary:hover{border-color:#fff}.art{height:560px;position:relative;pointer-events:none}.main-virus{position:absolute;width:660px;max-width:none;left:-52px;top:-25px;filter:drop-shadow(0 20px 45px #234ba633)}.small-virus{position:absolute;width:165px;right:4px;bottom:0;opacity:.7}.orbit{position:absolute;width:450px;height:450px;border:1px solid #ffffff1a;border-radius:50%;top:50px;left:18px}.art-label{position:absolute;bottom:-16px;left:40px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#e1ecff}footer{border-top:1px solid #ffffff26;background:#2049ae12}.footer-inner{max-width:1280px;margin:auto;padding:30px 48px;display:flex;align-items:center;justify-content:space-between;gap:24px}.footer-copy{display:flex;flex-direction:column;gap:9px}.footer-copy strong{font-size:12px;font-weight:500}.footer-copy span{font-size:10px;color:#e0eaff}.partners{display:flex;align-items:center;gap:32px}.partners img{width:85px;max-height:40px}.partners img:last-child{width:50px}.cc-window.cc-floating{padding:20px!important;border-radius:12px!important;box-shadow:0 10px 40px #16345e25;max-width:300px!important;font-family:Inter,Arial,sans-serif!important;font-size:12px!important;line-height:1.6!important}.cc-btn{border-radius:6px!important}.cc-message{margin-bottom:12px!important}
@media(min-width:1500px){.hero{min-height:calc(100vh - 220px)}}
@media(max-width:1000px){.header-inner{gap:20px;padding:20px 28px}nav{gap:18px;font-size:12px}.socials{gap:8px;margin-left:0}.hero{padding:60px 28px 70px}.main-virus{width:570px;left:-35px;top:20px}.art{height:500px}.actions{gap:17px}.primary{gap:15px}.art-label{left:20px}.intro,.mission{max-width:420px}}
@media(max-width:760px){.header-inner{padding:18px 24px;justify-content:space-between;flex-wrap:wrap;gap:0}.brand img{width:35px;height:46px}.socials{display:none}.menu-toggle{display:flex;gap:12px;align-items:center;background:transparent;color:#fff;border:1px solid #ffffff66;padding:10px 14px;border-radius:6px;font:500 13px Inter,Arial;cursor:pointer}nav{display:none;width:100%;margin:20px 0 0;font-size:15px;flex-direction:column;align-items:stretch;gap:0;padding-top:10px;border-top:1px solid #ffffff33}nav.open{display:flex}.submenu{left:60px;top:0}.hero{grid-template-columns:1fr;padding:45px 24px 42px;min-height:0}.hero-copy{max-width:530px}.eyebrow{font-size:10px;margin-bottom:22px}h1{font-size:76px;margin-bottom:26px}.intro{font-size:15px}.mission{font-size:14px}.actions{gap:24px;flex-wrap:wrap;margin-top:26px}.primary{padding:16px 20px}.art{height:315px;margin-top:25px}.main-virus{width:390px;left:50%;top:-28px;transform:translateX(-50%)}.small-virus{width:100px;right:5%;bottom:10px}.orbit{width:270px;height:270px;left:50%;top:0;transform:translateX(-50%)}.art-label{bottom:0;left:0;font-size:9px}.footer-inner{padding:26px 24px;align-items:flex-start}.partners{gap:15px}.partners img{width:65px}.partners img:last-child{width:35px}.footer-copy strong{max-width:160px;line-height:1.6}.footer-copy span{font-size:9px}.cc-window.cc-floating{max-width:280px!important;left:12px!important;bottom:12px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Keep the artwork on compositor layers for continuous, low-cost motion. */
.main-virus,
.small-virus {
  will-change: transform;
  backface-visibility: hidden;
  transform-origin: center;
}
.main-virus {
  --virus-center: 0px;
  filter: none;
  animation: virus-float 18s cubic-bezier(.45, 0, .55, 1) -4s infinite;
}
.small-virus {
  animation: virus-drift 23s cubic-bezier(.45, 0, .55, 1) -12s infinite;
}
@keyframes virus-float {
  0%, 100% { transform: translate3d(calc(var(--virus-center) - 12px), 22px, 0) rotate(-2.5deg); }
  50% { transform: translate3d(calc(var(--virus-center) + 16px), -28px, 0) rotate(2.5deg); }
}
@keyframes virus-drift {
  0%, 100% { transform: translate3d(10px, -20px, 0) rotate(4deg); }
  50% { transform: translate3d(-20px, 22px, 0) rotate(-4deg); }
}
.footer-inner { padding-top: 34px; padding-bottom: 34px; }
.footer-copy span { font-size: 14px; line-height: 1.6; color: #fff; }
.partners { gap: 40px; }
.partners img { width: 120px; height: 64px; max-height: none; object-fit: contain; }
.partners img:last-child { width: 168px; height: auto; }
@media (max-width: 760px) {
  .main-virus { --virus-center: -50%; }
  .footer-inner { flex-direction: column; gap: 26px; padding: 30px 24px; }
  .footer-copy span { font-size: 13px; }
  .partners { gap: 28px; flex-wrap: wrap; }
  .partners img { width: 100px; height: 58px; }
  .partners img:last-child { width: 150px; }
}
@media (prefers-reduced-motion: reduce) {
  .main-virus, .small-virus { animation: none; will-change: auto; }
}
/* The main section fills the available space so the footer meets the viewport edge. */
body { display: flex; flex-direction: column; min-height: 100vh; min-height: 100svh; }
.hero { flex: 1 0 auto; width: 100%; }
footer { margin-top: auto; flex-shrink: 0; }
@media (min-width: 1500px) { .hero { min-height: 720px; } }
.virus-canvas { display: none; position: absolute; inset: -5% -8%; width: 116%; height: 110%; }
.art.has-3d .virus-canvas { display: block; }
.art.has-3d .main-virus, .art.has-3d .small-virus { display: none; }
@media (max-width: 760px) { .virus-canvas { inset: -12% -5%; width: 110%; height: 124%; } }
/* Keep the original images as a calm fallback when WebGL is unavailable. */
.art:not(.has-3d) .main-virus, .art:not(.has-3d) .small-virus { animation: none; }
/* Static, softly focused background artwork avoids animated blur flicker. */
.ambient-viruses { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.ambient-virus { position: absolute; filter: blur(2px); opacity: .23; }
.ambient-one { width: 160px; top: 4%; left: 39%; opacity: .19; }
.ambient-two { width: 110px; bottom: 3%; left: 24%; filter: blur(3px); opacity: .16; }
.ambient-three { width: 170px; right: 1%; top: 5%; filter: blur(3px); opacity: .19; }
@media (max-width: 760px) {
  .ambient-one { width: 90px; top: 3%; left: auto; right: -30px; opacity: .14; }
  .ambient-two { width: 70px; bottom: 5%; left: -20px; opacity: .15; }
  .ambient-three { display: none; }
}
/* Keep blur fixed while moving each layer, avoiding the previous dynamic depth blur. */
.virus-canvas { inset: -5% -21%; width: 142%; }
.ambient-virus { will-change: transform; }
.ambient-one { animation: ambient-float-one 23s ease-in-out infinite alternate; }
.ambient-two { animation: ambient-float-two 27s ease-in-out -8s infinite alternate; }
.ambient-three { animation: ambient-float-three 31s ease-in-out -13s infinite alternate; }
@keyframes ambient-float-one { from { transform: translate3d(-12px, 10px, 0) rotate(-4deg); } to { transform: translate3d(22px, 35px, 0) rotate(5deg); } }
@keyframes ambient-float-two { from { transform: translate3d(-8px, -12px, 0) rotate(5deg); } to { transform: translate3d(30px, 8px, 0) rotate(-6deg); } }
@keyframes ambient-float-three { from { transform: translate3d(-20px, 0, 0) rotate(-5deg); } to { transform: translate3d(5px, 34px, 0) rotate(6deg); } }
@media (max-width: 760px) { .virus-canvas { inset: -12% -15%; width: 130%; } }
@media (prefers-reduced-motion: reduce) { .ambient-virus { animation: none; will-change: auto; } }

/* A gentle zoom provides subtle feedback on the social icons. */
.socials img,.about-body .socials img{transition:transform .35s cubic-bezier(.22,1,.36,1),opacity .35s ease}
.socials a:hover img,.socials a:focus-visible img,.about-body .socials a:hover img,.about-body .socials a:focus-visible img{opacity:1;transform:scale(1.08)}
@media(prefers-reduced-motion:reduce){.socials a:hover img,.socials a:focus-visible img,.about-body .socials a:hover img,.about-body .socials a:focus-visible img{transform:none}}

/* Soft light behind the 3D artwork, without an animated blur filter. */
.home-body .art::before{content:"";position:absolute;inset:4% -4%;border-radius:50%;background:radial-gradient(ellipse,rgba(130,229,255,.3) 0%,rgba(132,186,255,.12) 40%,transparent 72%);pointer-events:none}
.home-body .header-inner{animation:home-entry 1.6s cubic-bezier(.22,1,.36,1) both}
.home-body .hero-copy h1{animation:home-entry 1.8s cubic-bezier(.22,1,.36,1) .12s both}
.home-body .intro{animation:home-entry 1.8s cubic-bezier(.22,1,.36,1) .35s both}
.home-body .mission{animation:home-entry 1.8s cubic-bezier(.22,1,.36,1) .52s both}
.home-body .actions{animation:home-entry 1.8s cubic-bezier(.22,1,.36,1) .68s both}
.home-body .art{animation:home-art-entry 2s ease .2s both}
.home-body .footer-inner{animation:home-entry 1.6s cubic-bezier(.22,1,.36,1) .6s both}
@keyframes home-entry{from{opacity:0;transform:translate3d(0,12px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes home-art-entry{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.home-body .header-inner,.home-body .hero-copy h1,.home-body .intro,.home-body .mission,.home-body .actions,.home-body .art,.home-body .footer-inner{animation:none}}

/* Distant models render on their own softly focused layer. */
.home-body .distant-canvas{display:none;position:absolute;inset:-5% -21%;width:142%;height:110%;filter:blur(2.5px);opacity:.7;pointer-events:none}
.home-body .art.has-3d .distant-canvas{display:block}
@media(max-width:760px){.home-body .distant-canvas{inset:-12% -15%;width:130%;height:124%;filter:blur(2px)}}
/* The distant layer extends behind the entire hero for a balanced composition. */
.home-body .distant-canvas{inset:-10% auto auto -108%;width:216%;height:120%;opacity:.55}
@media(max-width:760px){.home-body .distant-canvas{inset:-22% auto auto -25%;width:150%;height:144%;opacity:.45}}
/* Slowly drifting color fields add depth without animating blur or gradients. */
.home-body{isolation:isolate;background:linear-gradient(128deg,#6a9de8 0%,#4a70de 54%,#3158c9 100%)}
.home-body::before{content:"";position:fixed;z-index:-1;inset:-20%;pointer-events:none;background:radial-gradient(ellipse at 72% 32%,rgba(143,210,255,.28),transparent 36%),radial-gradient(ellipse at 22% 75%,rgba(112,137,242,.3),transparent 37%),radial-gradient(ellipse at 90% 86%,rgba(58,55,168,.23),transparent 34%);animation:space-drift 34s ease-in-out infinite alternate;will-change:transform}
@keyframes space-drift{from{transform:translate3d(-2%,-1%,0) scale(1)}to{transform:translate3d(2%,2%,0) scale(1.06)}}
@media(prefers-reduced-motion:reduce){.home-body::before{animation:none;will-change:auto}}
/* Restore the lighter blue palette that the overlay artwork was designed against. */
.home-body{background:radial-gradient(ellipse at 75% 35%,#6d9ef3 0,transparent 48%),linear-gradient(125deg,#689ce8 0%,#4c76e8 58%,#355ed9 100%)}
.home-body::before{opacity:.32}
/* Restore the earlier overlay blend across the complete 3D artwork. */
.home-body .art{mix-blend-mode:overlay}
.home-body .space-particles{position:fixed;inset:0;z-index:-1;width:100%;height:100%;pointer-events:none}

/* Stronger tonal depth while retaining the site's blue palette. */
.home-body{background:radial-gradient(ellipse at 73% 24%,rgba(149,199,255,.42),transparent 44%),radial-gradient(ellipse at 88% 95%,rgba(41,49,159,.28),transparent 45%),linear-gradient(132deg,#83b2f0 0%,#5d87e7 42%,#3158c9 100%)}
.home-body::before{opacity:.55}
