/* 轻量科技感背景：网格、光晕与数据节点 */
body {
  background-image:
    linear-gradient(rgba(36, 88, 238, .018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(36, 88, 238, .018) 1px, transparent 1px);
  background-size: 44px 44px;
}

.header { box-shadow: 0 10px 35px rgba(29, 58, 118, .04); }

.brand-image {
  position: relative;
  display: inline-block;
  overflow: hidden;
  flex: 0 0 39px;
  width: 39px;
  height: 43px;
  padding: 0;
  background: transparent;
  border-radius: 11px;
}

.brand-image img {
  position: absolute;
  width: 100%;
  max-width: 100%;
  height: 100%;
  left: 0;
  top: 0;
}

footer .brand-image {
  width: 29px;
  height: 32px;
  flex-basis: 29px;
  border-radius: 8px;
}

footer .brand-image img {
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
}

.hero,
.services,
.process,
.about,
.contact-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.hero::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0;
  background-image:
    radial-gradient(circle at 78% 20%, rgba(65, 118, 255, .22) 0, rgba(65, 118, 255, .07) 21%, transparent 42%),
    radial-gradient(circle at 12% 88%, rgba(64, 209, 255, .11), transparent 27%),
    linear-gradient(rgba(36, 88, 238, .055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(36, 88, 238, .055) 1px, transparent 1px);
  background-size: auto, auto, 52px 52px, 52px 52px;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 24%, #000 100%);
  mask-image: linear-gradient(to right, transparent 0, #000 24%, #000 100%);
}

.hero::after {
  content: '';
  position: absolute;
  z-index: -1;
  width: 9px;
  height: 9px;
  right: 9%;
  top: 19%;
  border-radius: 50%;
  background: #5ba8ff;
  box-shadow: -170px 105px 0 -2px #2458ee, 80px 250px 0 -3px #77d2ff, -420px 365px 0 -2px #8aa9ff;
  opacity: .7;
}

.solution {
  background: linear-gradient(145deg, rgba(246, 249, 255, .98), rgba(221, 232, 255, .95));
  border-color: #cbd9fb;
  box-shadow: 13px 22px 0 rgba(228, 235, 249, .85), 0 30px 70px rgba(31, 74, 174, .14);
  backdrop-filter: blur(8px);
}

.solution-grid > div { position: relative; overflow: hidden; }
.solution-grid > div::after {
  content: '';
  position: absolute;
  width: 34px;
  height: 34px;
  right: -18px;
  top: -18px;
  border: 1px solid rgba(36, 88, 238, .16);
  border-radius: 50%;
}

.services::before {
  content: '';
  position: absolute;
  z-index: -1;
  width: 430px;
  height: 430px;
  right: -210px;
  top: 35px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(36, 88, 238, .09), transparent 68%);
}

.service-card {
  background: rgba(255, 255, 255, .88);
  backdrop-filter: blur(6px);
}

.process {
  background-color: #f5f7fc;
  background-image:
    linear-gradient(rgba(36, 88, 238, .04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(36, 88, 238, .04) 1px, transparent 1px),
    radial-gradient(circle at 85% 18%, rgba(36, 88, 238, .12), transparent 24%);
  background-size: 48px 48px, 48px 48px, auto;
}

.process::after {
  content: '</>';
  position: absolute;
  z-index: -1;
  right: 5%;
  bottom: -55px;
  color: rgba(36, 88, 238, .055);
  font: 700 180px/1 Consolas, monospace;
  letter-spacing: -28px;
  transform: rotate(-8deg);
}

.about::before {
  content: '';
  position: absolute;
  z-index: -1;
  left: -120px;
  top: 50%;
  width: 300px;
  height: 300px;
  transform: translateY(-50%);
  border-radius: 50%;
  border: 1px solid rgba(36, 88, 238, .08);
  box-shadow: 0 0 0 42px rgba(36, 88, 238, .025), 0 0 0 84px rgba(36, 88, 238, .018);
}

.contact-section {
  background-color: #152746;
  background-image:
    radial-gradient(circle at 82% 20%, rgba(63, 116, 255, .28), transparent 28%),
    linear-gradient(rgba(145, 176, 255, .06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(145, 176, 255, .06) 1px, transparent 1px);
  background-size: auto, 46px 46px, 46px 46px;
}

.contact-section::before {
  content: '';
  position: absolute;
  z-index: -1;
  left: 5%;
  bottom: 12%;
  width: 6px;
  height: 6px;
  background: #74a5ff;
  border-radius: 50%;
  box-shadow: 110px -95px 0 -1px rgba(121, 213, 255, .75), 300px 45px 0 -2px rgba(123, 158, 255, .8), 720px -60px 0 -1px rgba(121, 213, 255, .65);
}

.contact-card {
  background: rgba(29, 48, 80, .78);
  backdrop-filter: blur(10px);
  box-shadow: 0 22px 55px rgba(3, 14, 39, .22);
}

@media (max-width: 720px) {
  .header .brand-image { width: 39px; height: 43px; flex-basis: 39px; }
  .hero::before {
    -webkit-mask-image: none;
    mask-image: none;
    background-size: auto, auto, 42px 42px, 42px 42px;
    opacity: .72;
  }
  .hero::after { right: 6%; top: 11%; opacity: .4; }
  .process { background-size: 40px 40px, 40px 40px, auto; }
  .process::after { font-size: 110px; right: -4%; bottom: -20px; }
  .about::before { left: -210px; }
  .contact-section { background-size: auto, 40px 40px, 40px 40px; }
  .solution { box-shadow: 0 18px 45px rgba(31, 74, 174, .12); }
}
