@font-face{
  font-family:"Instrument Sans";
  src:url(/fonts/InstrumentSans.woff2) format("woff2");
  font-weight:400 700;
  font-display:swap;
}

:root{
  --ink:#1c1a2e;
  --muted:#5c5972;
  --sheet:#f6f5f9;
  --navy:#2b2645;
  --navy-2:#383260;
  --lav-1:#d9d5f7;
  --lav-2:#a9a3da;
  --line:rgba(28,26,46,.12);
  --radius:22px;
  --font:"Instrument Sans","Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{
  font-family:var(--font);
  color:var(--ink);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  background:
    radial-gradient(1200px 700px at 15% -10%, #c9c4ee 0%, transparent 60%),
    radial-gradient(1000px 700px at 100% 10%, #8f8ac4 0%, transparent 55%),
    linear-gradient(180deg,#a9a4d9 0%,#8a85bf 45%,#6f6aa6 100%);
  background-attachment:fixed;
  min-height:100vh;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}

.page{
  max-width:1260px;
  margin:28px auto;
  padding:0 0 18px;
  background:var(--sheet);
  border-radius:16px;
  box-shadow:0 30px 80px rgba(34,28,80,.28);
  overflow:hidden;
}

.mark{width:20px;height:20px;fill:currentColor;flex:none}
.mark.big{width:30px;height:30px}
.mark.light{color:#fff}

/* nav */
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 34px;
}
.brand{display:flex;align-items:center;gap:9px;font-weight:600;font-size:17px;letter-spacing:-.01em}
.links{display:flex;gap:34px;font-size:13px;color:#2c2a40}
.links a{opacity:.85;transition:opacity .2s}
.links a:hover{opacity:1}
.nav-right{display:flex;align-items:center;gap:12px}

.lang{
  display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:3px;background:#fff;
  font:inherit;font-size:12px;cursor:pointer;
}
.lang span{padding:4px 10px;border-radius:999px;color:var(--muted);transition:all .2s}
.lang span.on{background:var(--navy);color:#fff}

.pill{
  display:inline-flex;align-items:center;justify-content:center;
  padding:10px 22px;border-radius:999px;font-size:13px;font-weight:500;
  transition:transform .2s, box-shadow .2s, background .2s;
}
.pill:hover{transform:translateY(-1px)}
.pill.dark{background:var(--navy);color:#fff}
.pill.navy{background:var(--navy);color:#fff;padding:10px 20px}
.pill.black{background:#0d0c14;color:#fff;padding:11px 24px}
.pill.white{background:#fff;color:var(--navy);font-size:15px;padding:14px 30px}

/* hero */
.hero{
  position:relative;margin:0 18px;border-radius:var(--radius);overflow:hidden;
  min-height:640px;display:flex;justify-content:center;
}
.hero-bg{
  position:absolute;inset:0;
  background:url(/img/hero-city-dusk.jpg) center 70%/cover no-repeat;
  transform:scale(1.04);
}
.hero::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(224,220,249,.97) 0%,rgba(212,207,245,.95) 40%,rgba(185,178,232,.62) 62%,rgba(120,108,190,.18) 82%,rgba(50,40,100,.28) 100%),
    radial-gradient(700px 300px at 50% 0%,rgba(255,255,255,.55),transparent 70%);
  mix-blend-mode:normal;
}
.hero-copy{
  position:relative;z-index:2;text-align:center;
  padding:70px 24px 0;max-width:760px;
  display:flex;flex-direction:column;align-items:center;
}
.hero-copy .mark{color:var(--navy);margin-bottom:16px}
.hero h1{
  font-size:clamp(40px,6vw,66px);font-weight:500;letter-spacing:-.035em;line-height:1.05;color:#201c3b;
}
.hero p{
  margin:22px 0 26px;max-width:540px;font-size:16px;color:#2c2850;
}

/* about */
.about{
  display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:start;
  padding:96px 52px 70px;
}
.about h2{font-size:clamp(34px,4.6vw,54px);font-weight:500;letter-spacing:-.035em;line-height:1.05}
.about-side p{font-size:19px;line-height:1.5;color:#2b2940;letter-spacing:-.01em;margin-bottom:26px}

/* pillars */
.pillars{
  display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:12px;padding:0 18px;
}
.card{
  position:relative;border-radius:18px;padding:26px;min-height:300px;overflow:hidden;
  display:flex;flex-direction:column;justify-content:space-between;
}
.card h3{font-size:22px;font-weight:500;letter-spacing:-.02em;line-height:1.15;max-width:260px}
.card p{font-size:13px;line-height:1.5;max-width:300px;position:relative;z-index:2}
.card.navy{background:var(--navy);color:#f1effc}
.card.navy p{color:#bdb8dc}
.card.lav{background:linear-gradient(135deg,#d7d3f6,#aaa5dd);color:#1f1b3a}
.card.lav h3,.card.lav p{position:relative;z-index:2}
.card.lav p{color:#2a2650}
.card-img{
  position:absolute;right:0;top:0;bottom:0;width:62%;
  background-size:cover;background-position:center;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 45%);
  mask-image:linear-gradient(90deg,transparent 0%,#000 45%);
  opacity:.95;
}

/* domains */
.domains{
  display:grid;grid-template-columns:1fr 3fr;align-items:center;gap:30px;
  padding:54px 40px 40px;
}
.domains-label{font-size:12px;color:var(--muted);max-width:140px;line-height:1.35}
.domains ul{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.domains li{
  font-size:18px;font-weight:500;letter-spacing:-.02em;color:#9a97b0;
  display:flex;align-items:center;gap:10px;
}
.domains li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--lav-2)}

/* products */
.products{
  display:grid;grid-template-columns:1fr 1.05fr;gap:40px;padding:60px 18px 20px 52px;align-items:stretch;
}
.eyebrow{font-size:12px;color:var(--muted);margin-bottom:10px}
.eyebrow.light{color:#c9c4ec}
.products h2{font-size:clamp(34px,4.6vw,52px);font-weight:500;letter-spacing:-.035em;line-height:1.05;margin-bottom:16px}
.lead{font-size:14px;color:var(--muted);max-width:420px;margin-bottom:34px}
.lead.light{color:#c9c4ec;font-size:16px;max-width:560px}
.plist{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.plist button{
  width:100%;text-align:left;font:inherit;background:none;border:0;border-bottom:1px solid var(--line);
  padding:18px 4px;display:flex;align-items:baseline;justify-content:space-between;gap:16px;cursor:pointer;
  color:#8b88a3;transition:color .25s, padding .25s;
}
.plist .n{font-size:22px;font-weight:500;letter-spacing:-.02em}
.plist .t{font-size:13px;text-align:right}
.plist button:hover{color:var(--ink)}
.plist button.on{color:var(--ink);padding-left:12px}
.plist button.on .n::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--navy);margin-right:12px;transform:translateY(-3px)}

.pcard{
  background:#fff;border-radius:20px;overflow:hidden;display:flex;flex-direction:column;
  min-height:600px;box-shadow:0 20px 50px rgba(43,38,69,.08);
}
.pcard-text{padding:30px 30px 22px}
.pcard-top{display:flex;align-items:center;justify-content:space-between;gap:14px}
.pcard h3{font-size:26px;font-weight:500;letter-spacing:-.025em}
.badge{
  font-size:11px;padding:5px 11px;border-radius:999px;background:#ece9fb;color:#4a437e;white-space:nowrap;font-weight:500;
}
.pcard-tag{font-size:17px;margin-top:14px;color:var(--ink);font-weight:500;letter-spacing:-.015em}
.pcard-desc{font-size:13.5px;color:var(--muted);margin-top:8px;max-width:440px}
.pcard-img{
  flex:1;min-height:300px;background-size:cover;background-position:center;
  transition:opacity .35s;
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 22%);
  mask-image:linear-gradient(180deg,transparent 0,#000 22%);
}
.pcard.swap .pcard-img{opacity:.0}
.pcard.swap .pcard-text{opacity:.0}
.pcard-text{transition:opacity .25s}

/* approach */
.approach{
  position:relative;margin:70px 18px 0;border-radius:var(--radius);overflow:hidden;color:#fff;
  background:var(--navy);
}
.approach-bg{
  position:absolute;inset:0;background:url(/img/wave-violet.jpg) center/cover no-repeat;opacity:.9;
}
.approach::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(24,18,52,.88) 0%,rgba(24,18,52,.55) 55%,rgba(24,18,52,.2) 100%);
}
.approach-inner{position:relative;z-index:2;padding:80px 56px 60px}
.approach h2{font-size:clamp(34px,5vw,60px);font-weight:500;letter-spacing:-.035em;line-height:1.05;margin-bottom:20px;max-width:640px}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:56px}
.step{
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-radius:16px;padding:24px;min-height:190px;
}
.step .num{font-size:12px;color:#bdb6ee}
.step h4{font-size:24px;font-weight:500;letter-spacing:-.02em;margin:34px 0 8px}
.step p{font-size:13px;color:#d3cef3}

/* cta */
.cta{
  position:relative;margin:12px 18px 0;border-radius:var(--radius);overflow:hidden;color:#fff;text-align:center;
}
.cta-bg{position:absolute;inset:0;background:url(/img/city-night.jpg) center 60%/cover no-repeat}
.cta::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(60,48,128,.55),rgba(28,22,64,.72))}
.cta-inner{position:relative;z-index:2;padding:100px 24px;display:flex;flex-direction:column;align-items:center}
.cta h2{font-size:clamp(34px,5vw,58px);font-weight:500;letter-spacing:-.035em;line-height:1.05;margin:16px 0 14px}
.cta p{color:#d3cef3;margin-bottom:30px;font-size:15px}

/* footer */
.foot{
  display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:30px;padding:56px 52px 20px;
}
.foot-brand p{margin-top:14px;font-size:13px;color:var(--muted);line-height:1.6}
.foot-col{display:flex;flex-direction:column;gap:8px;font-size:14px}
.foot-col span,.foot-col a{color:#3a3754}
.foot-col a:hover{color:var(--ink)}
.foot-h{font-size:12px;color:var(--muted);margin-bottom:4px}
.legal{
  grid-column:1/-1;border-top:1px solid var(--line);padding-top:20px;margin-top:20px;
  font-size:12px;color:var(--muted);
}
.credit{margin-left:10px}
.credit a{text-decoration:underline;text-underline-offset:2px}

/* reveal */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s ease, transform .8s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}

/* responsive */
@media (max-width:960px){
  .links{display:none}
  .about{grid-template-columns:1fr;gap:28px;padding:70px 28px 50px}
  .pillars{grid-template-columns:1fr}
  .products{grid-template-columns:1fr;padding:50px 18px 10px}
  .products-left{padding:0 10px}
  .domains{grid-template-columns:1fr;padding:44px 28px 30px}
  .domains ul{justify-content:flex-start;gap:14px 26px}
  .steps{grid-template-columns:1fr}
  .approach-inner{padding:56px 26px 34px}
  .foot{grid-template-columns:1fr 1fr;padding:46px 28px 18px}
  .foot-brand{grid-column:1/-1}
  .pcard{min-height:520px}
}
@media (max-width:560px){
  .page{margin:0;border-radius:0}
  .nav{padding:16px 18px}
  .pill.dark{display:none}
  .hero{margin:0 10px;min-height:560px}
  .hero-copy{padding-top:56px}
  .pillars{padding:0 10px}
  .card{min-height:260px}
  .card-img{width:80%}
  .approach,.cta{margin-left:10px;margin-right:10px}
  .plist .t{display:none}
}
