:root {
  --bg: #02060f;
  --bg2: #070f20;
  --ink: #0b1730;
  --line: #172745;
  --tx: #f4f7fd;
  --mut: #93a4c3;
  --b1: #1270f5;
  --b2: #0a52d8;
  --b3: #4aa3ff;
  --lt: #f3f6fb;
  --ltl: #e1e8f3;
  --ltm: #5b6b86;
  --r: 16px;
  box-sizing: border-box;
  padding-top: env(safe-area-inset-top, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(84px + env(safe-area-inset-top, 0px));
}
*,
*::before,
*::after {
  box-sizing: inherit;
  margin: 0;
}
body {
  background: var(--bg);
  color: var(--tx);
  font:
    400 16px/1.7 Inter,
    system-ui,
    sans-serif;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
h1,
h2,
h3,
h4,
.hf {
  font-family: Manrope, Inter, system-ui, sans-serif;
  line-height: 1.15;
  letter-spacing: -0.02em;
}
a {
  color: inherit;
  text-decoration: none;
}
.w {
  width: min(1180px, 92%);
  margin: auto;
}
section {
  padding: 104px 0;
}
.lt {
  background: var(--lt);
  color: var(--ink);
}
.lt .m {
  color: var(--ltm);
}
.m {
  color: var(--mut);
}
h2 {
  font-size: clamp(30px, 3.8vw, 46px);
  font-weight: 800;
  max-width: 20ch;
}
.sub {
  max-width: 58ch;
  margin-top: 16px;
  font-size: 17px;
}
.eb {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font: 600 14px Manrope;
  color: var(--b3);
  margin-bottom: 16px;
}
.lt .eb {
  color: var(--b2);
}
.eb::before {
  content: "";
  width: 26px;
  height: 2px;
  background: currentColor;
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 26px;
  border-radius: 10px;
  border: 0;
  cursor: pointer;
  font:
    700 15px Manrope,
    sans-serif;
  color: #fff;
  background: var(--b1);
  transition:
    transform 0.25s,
    box-shadow 0.25s,
    background 0.25s;
  box-shadow: 0 10px 28px -8px rgba(18, 112, 245, 0.7);
}
.btn:hover {
  transform: translateY(-2px);
  background: #2a80ff;
  box-shadow: 0 16px 34px -8px rgba(18, 112, 245, 0.8);
}
.btn.g {
  background: transparent;
  border: 1.5px solid #2a3d63;
  box-shadow: none;
}
.btn.g:hover {
  border-color: var(--b3);
  background: rgba(74, 163, 255, 0.08);
}
.btn svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 0.25s;
}
.btn:hover svg {
  transform: translateX(4px);
}
:focus-visible {
  outline: 2px solid var(--b3);
  outline-offset: 3px;
}
#prog {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  width: 0;
  background: var(--b3);
  z-index: 100;
}
/* header */
.top {
  background: #050c1a;
  border-bottom: 1px solid var(--line);
  font-size: 13.5px;
  color: var(--mut);
}
.top .w {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 0;
  flex-wrap: wrap;
}
.top a:hover {
  color: #fff;
}
.top b {
  color: #fff;
  font-weight: 500;
}
header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(2, 6, 15, 0.8);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--line);
  padding-top: env(safe-area-inset-top, 0px);
}
.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 76px;
}
.logo {
  display: flex;
  align-items: center;
  gap: 11px;
}
.logo .mk {
  width: 42px;
  height: 42px;
}
.lt-t {
  display: flex;
  flex-direction: column;
  font: 800 24px Manrope;
  line-height: 1;
}
.lt-t b {
  display: flex;
  align-items: center;
  font-weight: 800;
}
.lt-t svg {
  width: 34px;
  height: 18px;
  margin: 0 1px;
}
.lt-t small {
  font-size: 9.5px;
  letter-spacing: 0.55em;
  color: var(--b1);
  margin-top: 5px;
  border-top: 2px solid var(--b3);
  padding-top: 4px;
  text-align: center;
}
nav ul {
  display: flex;
  gap: 6px;
  list-style: none;
  padding: 0;
}
nav a.l {
  padding: 9px 16px;
  border-radius: 8px;
  font-weight: 500;
  font-size: 15px;
  color: var(--mut);
  transition: 0.2s;
}
nav a.l:hover,
nav a.l.on {
  color: #fff;
  background: rgba(74, 163, 255, 0.1);
}
.bg {
  display: none;
  background: none;
  border: 0;
  width: 44px;
  height: 44px;
  cursor: pointer;
}
.bg span {
  display: block;
  height: 2px;
  background: #fff;
  margin: 6px 10px;
}
/* hero */
.hero {
  padding: 84px 0 110px;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(
      900px 500px at 85% 10%,
      rgba(18, 112, 245, 0.22),
      transparent 60%
    ),
    var(--bg);
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size: 64px 64px;
  opacity: 0.35;
  mask-image: radial-gradient(ellipse at 70% 30%, #000, transparent 70%);
  -webkit-mask-image: radial-gradient(
    ellipse at 70% 30%,
    #000,
    transparent 70%
  );
}
.hero .w {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 56px;
  align-items: center;
  position: relative;
}
.pill {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 7px 15px;
  border: 1px solid var(--line);
  border-radius: 99px;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--mut);
  background: rgba(11, 23, 48, 0.6);
}
.pill i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #2ecc8f;
  box-shadow: 0 0 0 0 rgba(46, 204, 143, 0.6);
  animation: ping 2s infinite;
}
@keyframes ping {
  70% {
    box-shadow: 0 0 0 9px transparent;
  }
}
.hero h1 {
  font-size: clamp(38px, 5.2vw, 64px);
  font-weight: 800;
  margin: 22px 0 20px;
}
.hero h1 span {
  color: var(--b3);
}
.hero p.m {
  font-size: 18px;
  max-width: 50ch;
}
.cta {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin: 34px 0 40px;
}
.trust {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 14px;
  color: var(--mut);
}
.faces {
  display: flex;
}
.faces .av {
  width: 38px;
  height: 38px;
  margin-left: -10px;
  border: 2px solid var(--bg);
}
.faces .av:first-child {
  margin: 0;
}
.av {
  border-radius: 50%;
  overflow: hidden;
  display: block;
  flex: none;
}
.av svg {
  width: 100%;
  height: 100%;
  display: block;
}
.in1 {
  opacity: 0;
  transform: translateY(24px);
  animation: up 0.8s forwards;
}
@keyframes up {
  to {
    opacity: 1;
    transform: none;
  }
}
/* dashboard visual */
.dash {
  position: relative;
  animation: fl 7s ease-in-out infinite;
}
@keyframes fl {
  50% {
    transform: translateY(-10px);
  }
}
.panel {
  background: linear-gradient(180deg, #0d1a34, #081226);
  border: 1px solid #1f3258;
  border-radius: 20px;
  padding: 22px;
  box-shadow: 0 40px 80px -30px rgba(18, 112, 245, 0.45);
}
.ph {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 18px;
  font: 700 15px Manrope;
}
.ph small {
  font: 500 12px Inter;
  color: #2ecc8f;
  background: rgba(46, 204, 143, 0.12);
  padding: 4px 10px;
  border-radius: 99px;
}
.cand {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 13px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid #162747;
  margin-bottom: 10px;
  opacity: 0;
  transform: translateX(30px);
  animation: sl 0.7s forwards;
}
.cand:nth-of-type(1) {
  animation-delay: 0.7s;
}
.cand:nth-of-type(2) {
  animation-delay: 0.95s;
}
.cand:nth-of-type(3) {
  animation-delay: 1.2s;
}
@keyframes sl {
  to {
    opacity: 1;
    transform: none;
  }
}
.cand .av {
  width: 44px;
  height: 44px;
}
.cand div {
  flex: 1;
  min-width: 0;
}
.cand b {
  display: block;
  font: 700 14.5px Manrope;
}
.cand small {
  color: var(--mut);
  font-size: 12.5px;
}
.bar {
  height: 6px;
  background: #162747;
  border-radius: 9px;
  margin-top: 7px;
  overflow: hidden;
}
.bar i {
  display: block;
  height: 100%;
  width: 0;
  background: linear-gradient(90deg, var(--b2), var(--b3));
  border-radius: 9px;
  animation: fill 1.4s 1.2s forwards;
}
@keyframes fill {
  to {
    width: var(--p);
  }
}
.cand em {
  font: 800 15px Manrope;
  font-style: normal;
  color: var(--b3);
}
.fc {
  position: absolute;
  background: #fff;
  color: var(--ink);
  border-radius: 14px;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 11px;
  font: 700 13px Manrope;
  box-shadow: 0 20px 40px -12px rgba(0, 0, 0, 0.6);
}
.fc small {
  display: block;
  font: 500 11.5px Inter;
  color: var(--ltm);
}
.fc .ic2 {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: var(--b1);
  display: grid;
  place-items: center;
}
.fc .ic2 svg {
  width: 18px;
  stroke: #fff;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.fc.a {
  top: -22px;
  right: -14px;
  animation: fl 5s ease-in-out infinite;
}
.fc.b {
  bottom: -24px;
  left: -26px;
  animation: fl 6s 1s ease-in-out infinite;
}
/* clients + stats */
.cl {
  padding: 46px 0;
  border-bottom: 1px solid var(--line);
  background: var(--bg2);
}
.cl p {
  text-align: center;
  font-size: 14px;
  color: var(--mut);
  margin-bottom: 24px;
}
.mq {
  overflow: hidden;
  mask-image: linear-gradient(
    90deg,
    transparent,
    #000 12%,
    #000 88%,
    transparent
  );
  -webkit-mask-image: linear-gradient(
    90deg,
    transparent,
    #000 12%,
    #000 88%,
    transparent
  );
}
.mq div {
  display: flex;
  gap: 70px;
  width: max-content;
  animation: mq 30s linear infinite;
}
.mq span {
  font: 800 22px Manrope;
  color: #4a5f88;
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 10px;
}
.mq span::before {
  content: "";
  width: 18px;
  height: 18px;
  border-radius: 5px;
  background: #26395f;
}
@keyframes mq {
  to {
    transform: translateX(-50%);
  }
}
.stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  text-align: center;
}
.stats b {
  display: block;
  font: 800 clamp(38px, 4.6vw, 56px) Manrope;
  color: var(--b2);
  letter-spacing: -0.03em;
}
.stats span {
  font-weight: 500;
}
/* about */
.two {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
}
.team {
  position: relative;
  aspect-ratio: 1/1.02;
  border-radius: 24px;
  background: linear-gradient(150deg, #0d2250, #050b1c);
  overflow: hidden;
  padding: 26px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-auto-rows: 1fr;
  gap: 16px;
}
.team::before {
  content: "";
  position: absolute;
  width: 520px;
  height: 520px;
  border-radius: 50%;
  left: -140px;
  top: -160px;
  box-shadow:
    0 0 0 60px rgba(74, 163, 255, 0.06),
    0 0 0 120px rgba(74, 163, 255, 0.04);
}
.tm {
  position: relative;
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 18px;
  padding: 18px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  backdrop-filter: blur(6px);
  transition: transform 0.4s;
}
.tm:hover {
  transform: translateY(-6px);
}
.tm .av {
  width: 62px;
  height: 62px;
  margin-bottom: auto;
}
.tm b {
  font: 700 15px Manrope;
  color: #fff;
}
.tm small {
  color: var(--mut);
  font-size: 12.5px;
}
.tm:nth-child(even) {
  transform: translateY(22px);
}
.tm:nth-child(even):hover {
  transform: translateY(16px);
}
.badge {
  position: absolute;
  right: 22px;
  bottom: -14px;
  background: var(--b1);
  color: #fff;
  padding: 14px 22px;
  border-radius: 14px;
  font: 700 14px Manrope;
  box-shadow: 0 18px 36px -10px rgba(18, 112, 245, 0.7);
  z-index: 2;
}
.badge b {
  display: block;
  font-size: 28px;
}
.ck {
  list-style: none;
  padding: 0;
  margin: 28px 0 34px;
  display: grid;
  gap: 14px;
}
.ck li {
  display: flex;
  gap: 14px;
  font-weight: 500;
}
.ck li::before {
  content: "";
  flex: none;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--b1)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4 4 8-8'/%3E%3C/svg%3E")
    center/14px no-repeat;
  margin-top: 1px;
}
/* cards */
.g3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 56px;
}
.cd {
  background: #fff;
  border: 1px solid var(--ltl);
  border-radius: var(--r);
  padding: 34px 30px;
  transition:
    transform 0.35s,
    box-shadow 0.35s,
    border-color 0.35s;
  position: relative;
  overflow: hidden;
}
.cd:hover {
  transform: translateY(-8px);
  box-shadow: 0 30px 50px -24px rgba(18, 112, 245, 0.35);
  border-color: #b9d3fb;
}
.cd::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  height: 3px;
  width: 0;
  background: var(--b1);
  transition: width 0.4s;
}
.cd:hover::after {
  width: 100%;
}
.ic {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: #e8f1ff;
  display: grid;
  place-items: center;
  margin-bottom: 24px;
  transition: 0.3s;
}
.cd:hover .ic {
  background: var(--b1);
}
.ic svg {
  width: 27px;
  height: 27px;
  stroke: var(--b2);
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: 0.3s;
}
.cd:hover .ic svg {
  stroke: #fff;
}
.cd h3 {
  font-size: 20px;
  margin-bottom: 10px;
}
.cd p {
  font-size: 15.5px;
}
.cd a {
  display: inline-flex;
  gap: 6px;
  margin-top: 20px;
  font: 700 14px Manrope;
  color: var(--b2);
}
/* process */
.dk2 {
  background: var(--bg2);
}
.steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
  margin-top: 60px;
  position: relative;
}
.steps::before {
  content: "";
  position: absolute;
  top: 27px;
  left: 30px;
  right: 30px;
  height: 2px;
  background: var(--line);
}
.steps::after {
  content: "";
  position: absolute;
  top: 27px;
  left: 30px;
  height: 2px;
  width: 0;
  background: var(--b3);
  transition: width 2s 0.3s;
}
.steps.in::after {
  width: calc(100% - 60px);
}
.st .n {
  position: relative;
  z-index: 1;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--bg2);
  border: 2px solid var(--b1);
  display: grid;
  place-items: center;
  font: 800 18px Manrope;
  color: var(--b3);
  margin-bottom: 22px;
}
.st h3 {
  font-size: 19px;
  margin-bottom: 8px;
}
.st p {
  font-size: 15px;
}
/* why */
.sk {
  display: grid;
  gap: 22px;
  margin-top: 34px;
}
.sk div {
  display: flex;
  justify-content: space-between;
  font: 600 14.5px Manrope;
}
.sk .tr {
  height: 8px;
  border-radius: 9px;
  background: var(--ltl);
  margin-top: 9px;
  overflow: hidden;
}
.sk i {
  display: block;
  height: 100%;
  width: 0;
  background: linear-gradient(90deg, var(--b2), var(--b3));
  border-radius: 9px;
  transition: width 1.6s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.sk.in i {
  width: var(--p);
}
.fts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.fts .cd {
  padding: 26px 24px;
}
.fts .ic {
  margin-bottom: 16px;
}
.fts h3 {
  font-size: 17px;
}
.fts p {
  font-size: 14.5px;
}
/* cases */
.cs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  margin-top: 56px;
}
.cs .cd {
  padding: 0;
}
.cv {
  height: 230px;
  background: linear-gradient(145deg, #0d2a66, #050d22);
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  gap: 14px;
  padding: 34px 40px 0;
}
.cv i {
  flex: 1;
  background: linear-gradient(180deg, var(--b3), var(--b2));
  border-radius: 8px 8px 0 0;
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform 1.1s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.cs.in .cv i {
  transform: scaleY(1);
}
.cv i:nth-child(2) {
  transition-delay: 0.12s;
}
.cv i:nth-child(3) {
  transition-delay: 0.24s;
}
.cv i:nth-child(4) {
  transition-delay: 0.36s;
}
.cv i:nth-child(5) {
  transition-delay: 0.48s;
}
.cv em {
  position: absolute;
  left: 34px;
  top: 26px;
  font: 800 40px Manrope;
  font-style: normal;
  color: #fff;
}
.cv em small {
  display: block;
  font: 500 13px Inter;
  color: #a9c6f3;
}
.cb {
  padding: 30px;
}
.cb h3 {
  font-size: 21px;
  margin-bottom: 10px;
}
.tg {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 18px;
}
.tg span {
  font: 600 12.5px Manrope;
  background: #e8f1ff;
  color: var(--b2);
  padding: 6px 13px;
  border-radius: 99px;
}
/* testimonials */
.tw {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-top: 56px;
}
.tq {
  background: var(--bg2);
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: 36px;
  transition: 0.35s;
}
.tq:hover {
  border-color: var(--b1);
  transform: translateY(-6px);
}
.tq .st5 {
  color: #ffb800;
  letter-spacing: 3px;
  margin-bottom: 16px;
}
.tq blockquote {
  font: 500 18px/1.65 Manrope;
  margin-bottom: 26px;
}
.tq footer {
  display: flex;
  align-items: center;
  gap: 14px;
  background: none;
  border: 0;
  padding: 0;
}
.tq .av {
  width: 50px;
  height: 50px;
}
.tq b {
  display: block;
  font: 700 15px Manrope;
}
.tq small {
  color: var(--mut);
}
/* cta */
.band {
  padding: 0 0 104px;
}
.bx {
  background: linear-gradient(120deg, var(--b2), var(--b1));
  border-radius: 28px;
  padding: clamp(36px, 6vw, 72px);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 32px;
  flex-wrap: wrap;
  position: relative;
  overflow: hidden;
}
.bx::before {
  content: "";
  position: absolute;
  width: 500px;
  height: 500px;
  border-radius: 50%;
  right: -100px;
  top: -200px;
  box-shadow:
    0 0 0 50px rgba(255, 255, 255, 0.07),
    0 0 0 100px rgba(255, 255, 255, 0.05);
}
.bx > * {
  position: relative;
}
.bx h2 {
  max-width: 18ch;
}
.bx p {
  margin-top: 12px;
  opacity: 0.9;
}
.bx .btn {
  background: #fff;
  color: var(--b2);
  box-shadow: none;
}
/* footer */
.ft {
  background: #000;
  border-top: 1px solid var(--line);
  padding: 76px 0 0;
}
.fg {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1.3fr;
  gap: 44px;
}
.ft h4 {
  font-size: 16px;
  margin-bottom: 18px;
}
.ft ul {
  list-style: none;
  padding: 0;
  display: grid;
  gap: 11px;
  color: var(--mut);
  font-size: 15px;
}
.ft li a:hover {
  color: var(--b3);
}
.ft .ab {
  color: var(--mut);
  margin-top: 18px;
  max-width: 34ch;
  font-size: 15px;
}
.cp {
  border-top: 1px solid var(--line);
  margin-top: 56px;
  padding: 24px 0;
  color: var(--mut);
  font-size: 14px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
}
#upb {
  position: fixed;
  right: 20px;
  bottom: calc(20px + env(safe-area-inset-bottom, 0px));
  width: 46px;
  height: 46px;
  border-radius: 12px;
  border: 0;
  background: var(--b1);
  color: #fff;
  font-size: 18px;
  cursor: pointer;
  opacity: 0;
  transform: translateY(20px);
  transition: 0.3s;
  z-index: 55;
}
#upb.s {
  opacity: 1;
  transform: none;
}
.rv {
  opacity: 0;
  transform: translateY(30px);
  transition:
    opacity 0.8s,
    transform 0.8s;
}
.rv.in {
  opacity: 1;
  transform: none;
}
/* contact page */
.ch {
  padding: 96px 0 80px;
  text-align: center;
  background:
    radial-gradient(
      800px 400px at 50% 0,
      rgba(18, 112, 245, 0.25),
      transparent 65%
    ),
    var(--bg);
}
.ch h1 {
  font-size: clamp(36px, 5vw, 58px);
  font-weight: 800;
  max-width: 18ch;
  margin: 18px auto;
}
.ch p {
  max-width: 56ch;
  margin: auto;
  font-size: 18px;
}
.ci {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: -56px;
  position: relative;
}
.ci .cd {
  text-align: center;
  padding: 30px 24px;
  box-shadow: 0 20px 40px -24px rgba(11, 23, 48, 0.3);
}
.ci .ic {
  margin: 0 auto 18px;
}
.ci h3 {
  font-size: 18px;
}
.ci a {
  margin-top: 6px;
  font-size: 15px;
  color: var(--b2);
  font-weight: 600;
}
.ci p {
  font-size: 14.5px;
  margin-top: 4px;
}
.cw {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 48px;
  margin-top: 72px;
  align-items: start;
}
.fm {
  background: #fff;
  border: 1px solid var(--ltl);
  border-radius: 22px;
  padding: clamp(26px, 4vw, 44px);
  box-shadow: 0 30px 60px -34px rgba(11, 23, 48, 0.3);
}
.fm h2 {
  font-size: 30px;
  max-width: none;
}
.fm .m {
  margin: 8px 0 26px;
}
.fr {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
label {
  display: block;
  font: 600 13.5px Manrope;
  margin-bottom: 16px;
}
input,
select,
textarea {
  width: 100%;
  margin-top: 7px;
  padding: 13px 15px;
  border-radius: 10px;
  border: 1.5px solid #d3deee;
  background: #f9fbfe;
  font:
    400 15px Inter,
    sans-serif;
  color: var(--ink);
  transition: 0.2s;
}
input:focus,
select:focus,
textarea:focus {
  outline: 0;
  border-color: var(--b1);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(18, 112, 245, 0.12);
}
.bad {
  border-color: #e5484d !important;
}
.fm .btn {
  width: 100%;
}
#ok {
  display: none;
  text-align: center;
  padding: 40px 10px;
}
#ok .ic {
  margin: 0 auto 20px;
  background: #e6f8f0;
}
#ok svg {
  stroke: #17a56b;
}
.fm.sent form {
  display: none;
}
.fm.sent #ok {
  display: block;
}
.fq details {
  background: #fff;
  border: 1px solid var(--ltl);
  border-radius: 12px;
  margin-bottom: 12px;
  overflow: hidden;
}
.fq summary {
  padding: 18px 22px;
  font: 700 15.5px Manrope;
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  gap: 12px;
}
.fq summary::-webkit-details-marker {
  display: none;
}
.fq summary::after {
  content: "+";
  font-size: 22px;
  color: var(--b1);
  line-height: 1;
  transition: 0.3s;
}
.fq details[open] summary::after {
  transform: rotate(45deg);
}
.fq details p {
  padding: 0 22px 20px;
  color: var(--ltm);
  font-size: 15px;
}
.fq h3 {
  font-size: 24px;
  margin-bottom: 20px;
}
@media (max-width: 980px) {
  .hero .w,
  .two,
  .cw {
    grid-template-columns: 1fr;
  }
  .g3,
  .ci {
    grid-template-columns: 1fr 1fr;
  }
  .steps {
    grid-template-columns: 1fr 1fr;
  }
  .steps::before,
  .steps::after {
    display: none;
  }
  .fg {
    grid-template-columns: 1fr 1fr;
  }
  .cs,
  .tw {
    grid-template-columns: 1fr;
  }
  .stats {
    grid-template-columns: 1fr 1fr;
    gap: 34px;
  }
  .bg {
    display: block;
  }
  nav ul {
    position: fixed;
    inset: 0 0 0 auto;
    width: min(300px, 82%);
    background: #050c1a;
    flex-direction: column;
    padding: 96px 24px;
    transform: translateX(100%);
    transition: 0.4s;
    border-left: 1px solid var(--line);
  }
  nav ul.open {
    transform: none;
  }
  .dash {
    max-width: 520px;
    margin-inline: auto;
  }
}
@media (max-width: 640px) {
  section {
    padding: 72px 0;
  }
  .g3,
  .ci,
  .steps,
  .fg,
  .fts,
  .fr {
    grid-template-columns: 1fr;
  }
  .top .w {
    justify-content: center;
    text-align: center;
  }
  .fc {
    display: none;
  }
  .team {
    aspect-ratio: auto;
    grid-auto-rows: 150px;
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important;
  }
  .rv,
  .in1,
  .cand {
    opacity: 1;
    transform: none;
  }
  .bar i,
  .sk i {
    width: var(--p);
  }
  .cv i {
    transform: none;
  }
}

/* ===== v3 additions & bug fixes ===== */
/* FIX: backdrop-filter on header broke the fixed mobile menu; moved to a pseudo-element */
header {
  background: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
header::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(2, 6, 15, 0.84);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  z-index: -1;
}
.logo .lt-t {
  font-size: 24px;
}
.cd a svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 0.25s;
}
.cd a:hover svg {
  transform: translateX(4px);
}
/* image slots */
.im {
  position: relative;
  aspect-ratio: var(--ar, 4/3);
  border-radius: 24px;
  overflow: hidden;
  background: linear-gradient(150deg, #0d2250, #050b1c);
  border: 1px solid var(--line);
  margin: 0;
  width: 100%;
}
.im img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.2s;
}
.im:hover img {
  transform: scale(1.04);
}
.im .ph {
  display: none;
  position: absolute;
  inset: 0;
  place-content: center;
  justify-items: center;
  text-align: center;
  gap: 8px;
  padding: 24px;
  color: #a9cdff;
  font: 700 15px Manrope;
}
.im .ph svg {
  width: 38px;
  height: 38px;
  stroke: #4aa3ff;
  fill: none;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.im .ph small {
  font: 400 12.5px Inter;
  color: var(--mut);
}
.im.empty .ph {
  display: grid;
}
.im.empty img {
  display: none;
}
.hero .im {
  --ar: 4/5;
  max-width: 480px;
  margin-left: auto;
}
.hero .dash {
  max-width: 520px;
  width: 100%;
  margin-left: auto;
}
.hero .dash .im {
  max-width: none;
}
.fc.a {
  top: 36px;
  right: -18px;
}
.fc.b {
  bottom: 40px;
  left: -28px;
}
.fc small {
  max-width: 160px;
}
.strip {
  background: var(--bg2);
  border-block: 1px solid var(--line);
  padding: 26px 0;
}
.strip .w {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px 48px;
  font: 700 15px Manrope;
  color: #c9d6ee;
}
.strip span {
  display: flex;
  align-items: center;
  gap: 10px;
}
.strip span::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--b3);
}
.about-w .im {
  --ar: 4/5;
  max-width: 520px;
}
.rel {
  position: relative;
}
.chip2 {
  position: absolute;
  right: -14px;
  bottom: 36px;
  background: var(--b1);
  color: #fff;
  padding: 16px 22px;
  border-radius: 16px;
  font: 700 14px Manrope;
  box-shadow: 0 20px 40px -12px rgba(18, 112, 245, 0.7);
}
.chip2 b {
  display: block;
  font-size: 26px;
}
.vals {
  display: grid;
  gap: 14px;
  margin-top: 30px;
}
.val {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 20px;
  background: #fff;
  border: 1px solid var(--ltl);
  border-radius: 14px;
  transition: 0.3s;
}
.val:hover {
  transform: translateX(6px);
  border-color: #b9d3fb;
}
.val .ic {
  margin: 0;
  flex: none;
  width: 48px;
  height: 48px;
}
.val h3 {
  font-size: 17px;
}
.val p {
  font-size: 14.5px;
  margin-top: 2px;
}
.cd.cta-card {
  background: linear-gradient(135deg, var(--b2), var(--b1));
  border: 0;
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.cd.cta-card h3 {
  font-size: 26px;
  margin-bottom: 18px;
}
.cd.cta-card .btn {
  background: #fff;
  color: var(--b2);
  box-shadow: none;
  align-self: flex-start;
}
.cd.cta-card::after {
  display: none;
}
.bx .btns {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.bx .btn.o {
  background: transparent;
  border: 1.5px solid rgba(255, 255, 255, 0.7);
  color: #fff;
}
.cw .im {
  margin-bottom: 28px;
}
input[type="file"] {
  padding: 10px;
  background: #f9fbfe;
}
.note {
  font-size: 13px;
  color: var(--ltm);
  margin: -6px 0 18px;
}
.ci a.big {
  font-size: 17px;
}
@media (max-width: 980px) {
  .hero .im,
  .hero .dash {
    margin-inline: auto;
  }
  .fc.a {
    right: 0;
  }
  .fc.b {
    left: 0;
  }
}

/* FIX: hero visual was invisible. .dash's float animation overrode .in1's fade-in,
   leaving opacity at 0. Run both animations together. */
.dash.in1 {
  animation:
    up 0.8s forwards,
    fl 7s 1s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .dash.in1 {
    opacity: 1;
    transform: none;
  }
}

/* ===== Toasts ===== */
#toasts {
  position: fixed;
  top: calc(24px + env(safe-area-inset-top, 0px));
  right: 24px;
  z-index: 200;
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-width: min(380px, calc(100vw - 32px));
  pointer-events: none;
}
.toast {
  pointer-events: auto;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 18px;
  border-radius: 12px;
  background: #0d1a34;
  border: 1px solid #1f3258;
  border-left: 3px solid var(--b3);
  color: var(--tx);
  font: 500 14.5px/1.5 Inter, system-ui, sans-serif;
  box-shadow: 0 20px 40px -12px rgba(0, 0, 0, 0.55);
  transform: translateX(120%);
  opacity: 0;
  transition:
    transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1),
    opacity 0.4s;
  cursor: pointer;
}
.toast.in  { transform: none; opacity: 1; }
.toast.out { transform: translateX(120%); opacity: 0; }
.toast .ti {
  flex: none;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  margin-top: 1px;
}
.toast .ti svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.toast p { margin: 0; }
.toast b {
  display: block;
  font: 700 14px Manrope, sans-serif;
  margin-bottom: 2px;
}
.toast.err  { border-left-color: #e5484d; }
.toast.err .ti  { background: rgba(229, 72, 77, 0.15); }
.toast.err .ti svg { stroke: #ff7a7e; }
.toast.ok   { border-left-color: #2ecc8f; }
.toast.ok .ti   { background: rgba(46, 204, 143, 0.15); }
.toast.ok .ti svg  { stroke: #2ecc8f; }
.toast.info { border-left-color: var(--b3); }
.toast.info .ti { background: rgba(74, 163, 255, 0.15); }
.toast.info .ti svg { stroke: var(--b3); }

/* ===== Upload progress ===== */
.up {
  display: none;
  align-items: center;
  gap: 12px;
  margin: -4px 0 16px;
  font: 600 13px Manrope, sans-serif;
  color: var(--ltm);
}
.up.show { display: flex; }
.up .tr {
  flex: 1;
  height: 6px;
  background: var(--ltl);
  border-radius: 9px;
  overflow: hidden;
}
.up .tr i {
  display: block;
  height: 100%;
  width: 0;
  background: linear-gradient(90deg, var(--b2), var(--b3));
  border-radius: 9px;
  transition: width 0.25s ease;
}
.up b {
  color: var(--b2);
  font-variant-numeric: tabular-nums;
  min-width: 38px;
  text-align: right;
}

@media (max-width: 640px) {
  #toasts {
    top: calc(16px + env(safe-area-inset-top, 0px));
    left: 16px;
    right: 16px;
    max-width: none;
  }
}