
.projects-banner[data-v-projects-page]{height:clamp(240px,27vw,380px);position:relative;overflow:hidden;background:radial-gradient(ellipse at 78% 20%,#cfeae380,transparent 55%),linear-gradient(125deg,#eaf3f8,#e1eff1)}.projects-banner i[data-v-projects-page]{position:absolute;right:12%;top:-130px;width:220px;height:400px;border-radius:130px;border:1px solid #729eac28;transform:rotate(38deg);background:linear-gradient(120deg,#ffffff30,transparent)}.projects-banner i[data-v-projects-page]:nth-child(2){right:23%;top:-200px;width:180px}.projects-banner i[data-v-projects-page]:nth-child(3){left:8%;right:auto;top:200px;width:400px;height:180px;opacity:.5}.projects-content[data-v-projects-page]{width:min(1440px,calc(100% - 80px));margin:auto;padding:65px 0 110px}header[data-v-projects-page]{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-bottom:40px;border-bottom:1px solid #e0e8ef;margin-bottom:40px}h1[data-v-projects-page]{font-size:32px;font-weight:400;margin:0 0 7px;color:#263e51}header>div>span[data-v-projects-page]{font-size:12px;letter-spacing:.14em;color:#859bad}label[data-v-projects-page]{position:relative;width:300px}input[data-v-projects-page]{width:100%;font-size:14px;padding:14px 40px 14px 16px;color:#29485e;border:1px solid #d7e2eb;border-radius:7px;background:#fff}input[data-v-projects-page]::placeholder{color:#9caeba}label svg[data-v-projects-page]{position:absolute;right:14px;top:16px;width:17px;height:17px;stroke:#9bafbe;stroke-width:1.5;pointer-events:none}.sr-only[data-v-projects-page]{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:700px){.projects-content[data-v-projects-page]{width:calc(100% - 48px);padding:45px 0 70px}header[data-v-projects-page]{align-items:flex-start;flex-direction:column}label[data-v-projects-page]{width:100%}h1[data-v-projects-page]{font-size:28px}}


.page-banner[data-v-projects-banner] {
  --mx: 70%;
  --my: 55%;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  height: clamp(260px, 30vw, 380px);
  background:
    radial-gradient(ellipse at 76% 58%, #1a4d7a59, transparent 46%),
    radial-gradient(ellipse at 50% 0%, #1b2c3d66, transparent 68%),
    #111c29;
}
.banner-dots[data-v-projects-banner] {
  position: absolute;
  inset: -24px;
  background-image: radial-gradient(#72b6d536 0.7px, transparent 0.9px);
  background-size: 24px 24px;
  mask-image: linear-gradient(105deg, transparent 8%, #0007 42%, #000 100%);
  animation: banner-grid-drift-projects-banner 22s linear infinite;
  pointer-events: none;
}
.banner-spot[data-v-projects-banner] {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle 240px at var(--mx) var(--my), #8ec8ff5c 0%, #168dff2e 36%, transparent 72%);
  opacity: 0;
  transition: opacity 0.35s ease;
  pointer-events: none;
}
.glowing .banner-spot[data-v-projects-banner] { opacity: 1;
}
.banner-caption[data-v-projects-banner] {
  position: absolute;
  left: max(40px, calc((100% - 1440px) / 2));
  bottom: 28px;
  z-index: 1;
  color: #8eafc6;
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.16em;
}
.banner-caption > span[data-v-projects-banner] {
  margin: 0 12px;
  color: #4e6e88;
}
@keyframes banner-grid-drift-projects-banner {
from { background-position: 0 0;
}
to { background-position: 24px 24px;
}
}
@media (max-width: 900px) {
.banner-caption[data-v-projects-banner] { left: 24px; font-size: 11px;
}
.banner-spot[data-v-projects-banner] { background: radial-gradient(circle 180px at var(--mx) var(--my), #8ec8ff5c 0%, #168dff2e 36%, transparent 72%);
}
}
@media (max-width: 550px) {
.page-banner[data-v-projects-banner] { height: 220px;
}
.banner-caption[data-v-projects-banner] { left: 20px; bottom: 18px; letter-spacing: 0.08em; font-size: 10px;
}
.banner-caption > span[data-v-projects-banner] { margin: 0 7px;
}
}
@media (prefers-reduced-motion: reduce) {
.banner-dots[data-v-projects-banner] { animation: none;
}
.banner-spot[data-v-projects-banner] { transition: none;
}
}


.home-cases[data-v-64079138]{background:radial-gradient(ellipse at 80% 0%,#edf6ff80,transparent 45%),#f8fafc;padding:100px 40px 110px;min-height:100svh;color:#263747}
header[data-v-64079138]{text-align:center;margin-bottom:54px}h2[data-v-64079138],h3[data-v-64079138],p[data-v-64079138]{margin:0;font-weight:400}h2[data-v-64079138]{font-size:36px;letter-spacing:.05em}header p[data-v-64079138]{font-size:16px;color:#8392a2;line-height:1.8;margin-top:15px}.case-grid[data-v-64079138]{width:min(1440px,100%);margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}.case-card[data-v-64079138]{--dx:0px;--dy:0px;opacity:0;translate:0 24px;transition:opacity .8s,translate .8s;transition-delay:calc(var(--order)*.12s)}.visible .case-card[data-v-64079138]{opacity:1;translate:0 0}.case-visual[data-v-64079138]{position:relative;aspect-ratio:1;overflow:hidden;border-radius:18px;background:#dce8f2;border:1px solid #234e7510;transition:box-shadow .3s,border-color .3s}.case-visual[data-v-64079138]::after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),#ffffff26,transparent 50%);opacity:0;transition:opacity .3s}.case-card:hover .case-visual[data-v-64079138]::after{opacity:1}.case-card:hover .case-visual[data-v-64079138]{box-shadow:0 18px 40px #1d517518;border-color:#0087ff40}.case-visual img[data-v-64079138]{width:100%;height:100%;object-fit:cover;object-position:top;transform:translate(var(--dx),var(--dy)) scale(1.04);transition:transform .35s ease}.case-info[data-v-64079138]{padding:20px 4px 0}.case-type[data-v-64079138]{font-size:12px;color:#3087cf;letter-spacing:.035em}h3[data-v-64079138]{font-size:21px;line-height:1.6;margin-top:8px}.case-info>p[data-v-64079138]{font-size:15px;line-height:1.85;color:#8795a3;margin-top:12px;min-height:84px}.case-bottom[data-v-64079138]{display:flex;align-items:center;justify-content:space-between;margin-top:22px}.tags[data-v-64079138]{display:flex;gap:8px}.tags span[data-v-64079138]{font-size:12px;border:1px solid #d2dce4;border-radius:5px;padding:4px 8px;color:#718292}.case-bottom a[data-v-64079138]{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:#0784ff;transition:background .25s,color .25s}.case-bottom svg[data-v-64079138]{width:16px;height:16px;stroke:currentColor;stroke-width:1.5;transition:transform .25s}.case-card:hover .case-bottom a[data-v-64079138]{background:#0784ff;color:#fff}.case-card:hover .case-bottom svg[data-v-64079138]{transform:translate(1px,-1px)}
.system-preview[data-v-64079138]{position:absolute;inset:12% 7%;background:#102840;border:1px solid #70dfff50;box-shadow:0 20px 35px #00192e30;border-radius:8px;transform:perspective(900px) rotateY(-8deg) translate(var(--dx),var(--dy));transition:transform .35s;overflow:hidden}.dashboard[data-v-64079138]{background:linear-gradient(135deg,#cbd6df,#7c929e)}.map[data-v-64079138]{background:linear-gradient(140deg,#dfede7,#c6dce9)}.map .system-preview[data-v-64079138]{background:#e9f3f4;border-color:#ffffff80;transform:perspective(900px) rotateY(7deg) translate(var(--dx),var(--dy))}.system-bar[data-v-64079138]{height:12%;display:flex;align-items:center;gap:4px;padding:0 10px;border-bottom:1px solid #8ecbea30}.system-bar i[data-v-64079138]{width:4px;height:4px;border-radius:50%;background:#71bcd2}.system-bar span[data-v-64079138]{font-size:7px;color:#71bcd2;margin-left:8px}.system-body[data-v-64079138]{display:flex;height:75%;padding:12px;gap:12px}.system-sidebar[data-v-64079138]{width:18%;display:flex;flex-direction:column;gap:12px}.system-sidebar i[data-v-64079138]{height:5px;background:#5bb8d040;border-radius:3px}.system-content[data-v-64079138]{flex:1}.stats[data-v-64079138]{display:flex;gap:8px;height:22%}.stats i[data-v-64079138]{flex:1;background:#3795c02a;border:1px solid #70cce825;border-radius:4px}.chart[data-v-64079138]{height:48%;display:flex;gap:8%;align-items:end;padding:14px 5px;border-bottom:1px solid #6fc6de33}.chart span[data-v-64079138]{flex:1;background:linear-gradient(#39d6b9,#217dca);border-radius:3px 3px 0 0}.data-lines[data-v-64079138]{display:grid;gap:8px;margin-top:14px}.data-lines i[data-v-64079138]{height:4px;background:#71bcd225}.preview-label[data-v-64079138]{position:absolute;bottom:5%;left:0;right:0;text-align:center;font-size:10px;color:#83b9ce}.map .preview-label[data-v-64079138]{color:#6b909c}
@media(max-width:1000px){.home-cases[data-v-64079138]{padding:80px 24px}.case-grid[data-v-64079138]{gap:24px}h3[data-v-64079138]{font-size:18px}.case-info>p[data-v-64079138]{font-size:14px}.case-info[data-v-64079138]{padding-left:0;padding-right:0}}
@media(max-width:700px){.home-cases[data-v-64079138]{padding:70px 24px}.case-grid[data-v-64079138]{grid-template-columns:1fr;gap:44px}header[data-v-64079138]{margin-bottom:35px}h2[data-v-64079138]{font-size:30px}header p[data-v-64079138]{font-size:15px}.case-info>p[data-v-64079138]{min-height:0}.case-visual[data-v-64079138]{aspect-ratio:1.1}.case-card[data-v-64079138]{opacity:1;translate:none}}
@media(prefers-reduced-motion:reduce){[data-v-64079138],[data-v-64079138]::before,[data-v-64079138]::after{transition:none!important}.case-card[data-v-64079138]{opacity:1;translate:none}}


.home-cases[data-v-64079138]{min-height:0}
@media(min-width:1800px){.case-grid[data-v-64079138]{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}h3[data-v-64079138]{font-size:19px}}
@media(min-width:701px) and (max-width:1000px){.case-grid[data-v-64079138]{grid-template-columns:repeat(2,minmax(0,1fr))}}


.case-card[data-v-64079138]{opacity:1;translate:none;transition:none}
.case-visual[data-v-64079138]{background:radial-gradient(ellipse at 25% 20%,#d1eee9,transparent 65%),linear-gradient(135deg,#eaf2f9,#c9dce9)!important}
.case-visual>img[data-v-64079138],.case-visual>.system-preview[data-v-64079138]{opacity:0;translate:0 16px;transition:opacity .8s ease,translate .8s ease;transition-delay:calc(var(--order)*.13s)}
.case-info[data-v-64079138]{opacity:0;translate:0 10px;transition:opacity .8s ease,translate .8s ease;transition-delay:calc(var(--order)*.13s + .1s)}
.visible .case-visual>img[data-v-64079138],.visible .case-visual>.system-preview[data-v-64079138],.visible .case-info[data-v-64079138]{opacity:1;translate:0 0}
@media(prefers-reduced-motion:reduce){.case-visual>img[data-v-64079138],.case-visual>.system-preview[data-v-64079138],.case-info[data-v-64079138]{transition:none;translate:none}}


.case-visual[data-v-64079138]{display:block;text-decoration:none}.case-info h3 a[data-v-64079138]{color:inherit;text-decoration:none}.case-info h3 a[data-v-64079138]:hover{color:#0784ff}
.standalone.home-cases[data-v-64079138]{background:transparent!important;padding:0;min-height:0}.standalone .case-grid[data-v-64079138]{width:100%}.empty-results[data-v-64079138]{text-align:center;color:#8b9faf;padding:70px 20px;font-size:15px}


.case-grid[data-v-64079138]{align-items:stretch;gap:28px}
.case-card[data-v-64079138]{display:flex;flex-direction:column;background:#fff;border:1px solid #e0e9f1;border-radius:20px;overflow:hidden;box-shadow:0 5px 22px #22476503;transition:box-shadow .3s,border-color .3s}
.case-card[data-v-64079138]:hover{border-color:#b5d4ed;box-shadow:0 14px 35px #215b8210}
.case-visual[data-v-64079138]{margin:10px 10px 0;border-radius:12px;border-color:#e4edf3;flex-shrink:0}
.case-card:hover .case-visual[data-v-64079138]{box-shadow:none}
.case-info[data-v-64079138]{padding:22px 22px 18px;display:flex;flex-direction:column;flex:1}
.case-type[data-v-64079138]{display:inline-flex;align-items:center;gap:7px;font-size:11px;color:#5e8eae;letter-spacing:.04em;line-height:1.5}
.case-type[data-v-64079138]::before{content:'';width:4px;height:4px;border-radius:50%;background:#4a9cda;flex-shrink:0}
.case-info h3[data-v-64079138]{font-size:21px;line-height:1.5;letter-spacing:0;color:#233f55;margin:12px 0 0;min-height:3em;font-weight:400}
.case-info>p[data-v-64079138]{font-size:14px;line-height:1.85;color:#8296a7;min-height:3.7em;margin:11px 0 22px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.case-bottom[data-v-64079138]{margin-top:auto;display:flex;flex-direction:column;align-items:stretch;gap:19px}
.case-bottom .tags[data-v-64079138]{gap:7px;flex-wrap:wrap;min-height:24px;align-items:center}
.case-bottom .tags span[data-v-64079138]{font-size:10px;line-height:1.5;background:#f3f7fa;border:1px solid #e5edf3;border-radius:5px;padding:4px 8px;color:#7892a6}
.case-bottom a[data-v-64079138]{border-top:1px solid #e6edf3;border-radius:0;display:flex;align-items:center;justify-content:space-between;width:100%;height:auto;min-height:39px;padding-top:13px;background:transparent!important;color:#398dcd;font-size:12px;letter-spacing:.03em}
.case-card:hover .case-bottom a[data-v-64079138]{color:#087fff;background:transparent}
.case-bottom svg[data-v-64079138]{width:15px;height:15px;transition:transform .25s}.case-card:hover .case-bottom svg[data-v-64079138]{transform:translate(3px,-3px)}
@media(min-width:1800px){.case-grid[data-v-64079138]{gap:24px}.case-info[data-v-64079138]{padding:20px 18px 16px}.case-info h3[data-v-64079138]{font-size:19px}}
@media(max-width:700px){.case-grid[data-v-64079138]{gap:30px}.case-info h3[data-v-64079138]{min-height:0;font-size:22px}.case-info>p[data-v-64079138]{min-height:0}.case-info[data-v-64079138]{padding:22px 20px 18px}}
@media(prefers-reduced-motion:reduce){.case-card[data-v-64079138]{transition:none}}


[data-project-card][hidden],[data-project-empty][hidden]{display:none!important}
[data-project-empty]{text-align:center;padding:40px;color:#718699}
