/* UNIFIN landing - v9.8
   Brand system shared with the presentation deck. */

:root{
  --brand1:#6248ff; --brand2:#ac50ef; --brand3:#2ecff6;
  --ink:#07091b; --primary:#1a1c38; --muted:#83848d; --line:#e7e7e9;
  --bg:#ffffff; --bg-alt:#f7f6fc;
  --gold1:#ffd98a; --gold2:#d99a1e;
  --radius:16px; --shadow:0 10px 30px rgba(26,28,56,.08);
  --wrap:1200px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--primary);
  font:16px/1.55 -apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--brand1);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}

.skip{position:absolute;left:-9999px;top:0;background:#fff;padding:10px 16px;z-index:99}
.skip:focus{left:8px;top:8px}

/* header */
.head{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.head:before{content:"";display:block;height:4px;background:linear-gradient(90deg,var(--brand1),var(--brand2) 45%,var(--brand3))}
.head-in{display:flex;align-items:center;gap:22px;height:66px}
.logo img{width:132px;height:auto}
.nav{display:flex;gap:20px;margin-left:auto}
.nav a{color:var(--primary);font-size:14px;font-weight:600}
.nav a:hover{color:var(--brand1);text-decoration:none}
.nav a.active{color:var(--brand1)}
.head-cta{margin-left:4px}
.burger{display:none;background:none;border:0;cursor:pointer;padding:8px;margin-left:auto}
.burger span{display:block;width:22px;height:2px;background:var(--primary);margin:5px 0;border-radius:2px}

/* buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:linear-gradient(120deg,var(--brand1),var(--brand2));
  color:#fff;font-weight:700;font-size:15px;border:0;border-radius:12px;
  padding:13px 22px;cursor:pointer;box-shadow:0 8px 20px rgba(98,72,255,.28);
  transition:transform .18s ease,box-shadow .18s ease;
}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(98,72,255,.34);text-decoration:none;color:#fff}
.btn-ghost{background:#fff;color:var(--primary);border:1px solid var(--line);box-shadow:var(--shadow)}
.btn-ghost:hover{color:var(--brand1)}
.btn-sm{padding:9px 16px;font-size:13.5px;border-radius:10px}

/* hero */
.hero{position:relative;padding:84px 0 64px;background:
  radial-gradient(900px 420px at 12% -10%,rgba(98,72,255,.16),transparent 60%),
  radial-gradient(760px 380px at 92% 6%,rgba(46,207,246,.14),transparent 60%),
  #fff}
.hero-badge{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--brand1);background:#f1eeff;border:1px solid #ded6ff;border-radius:999px;padding:7px 14px;margin-bottom:20px}
.hero h1{font-size:52px;line-height:1.08;letter-spacing:-.02em;margin:0 0 18px;max-width:900px}
.hero-sub{font-size:18px;color:#4a4a5e;max-width:820px;margin:0 0 28px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:44px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow)}
.stat b{display:block;font-size:30px;font-weight:800;letter-spacing:-.01em;
  background:linear-gradient(90deg,var(--brand1),var(--brand2));-webkit-background-clip:text;background-clip:text;color:transparent}
.stat span{font-size:13px;color:var(--muted)}

/* sections */
.sec{padding:76px 0}
.sec.alt{background:var(--bg-alt)}
.sec-head{max-width:860px;margin-bottom:36px}
.kick{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--brand2);margin-bottom:10px}
.sec-head h2{font-size:36px;line-height:1.14;letter-spacing:-.015em;margin:0 0 14px}
.sec-head h3{font-size:24px;margin:0 0 10px}
.sec-head p{font-size:16px;color:#4a4a5e;margin:0}
.sec-head.sm{margin:44px 0 20px}

/* why */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.pcard{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow)}
.pcard .pn{position:absolute;right:18px;top:12px;font-size:26px;font-weight:800;color:#e6e2f7}
.pcard h3{font-size:17px;margin:0 0 8px}
.pcard p{margin:0;font-size:14px;color:#4a4a5e;line-height:1.5}
.gold-soft{border-color:#eddfc0;background:linear-gradient(180deg,#fffdf6,#fdf5e4)}
.gold-soft .pn{color:#eeddb4}
.answer{margin-top:26px;border-radius:20px;padding:26px 28px;color:#fff;border:1px solid rgba(255,215,138,.45);
  background:linear-gradient(165deg,#0b0c16,#221b4a 55%,#2a2440);box-shadow:0 18px 44px rgba(17,12,60,.35)}
.answer-head h3{margin:0 0 8px;font-size:24px;
  background:linear-gradient(90deg,var(--gold1),#fff3d0 45%,var(--gold1));-webkit-background-clip:text;background-clip:text;color:transparent}
.answer-head p{margin:0 0 20px;color:#c9c6de;font-size:15px;max-width:820px}
.answer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 26px}
.answer-item{position:relative;padding-left:20px}
.answer-item:before{content:"";position:absolute;left:0;top:5px;width:11px;height:11px;border-radius:4px;
  background:linear-gradient(135deg,var(--gold1),var(--gold2))}
.answer-item b{display:block;font-size:15px;margin-bottom:2px}
.answer-item span{font-size:13px;color:#c9c6de}

/* platform */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.pillar{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}
.pillar h3{font-size:18px;margin:0 0 8px}
.pillar p{margin:0;font-size:14px;color:#4a4a5e}
.badges{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 26px}
.chip{font-size:13px;font-weight:600;color:#4b3fc0;background:#f1eeff;border:1px solid #ded6ff;border-radius:999px;padding:6px 13px}
.shots{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.shot{margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.shot img{width:100%;height:170px;object-fit:cover;object-position:top center}
.shot figcaption{font-size:12.5px;color:var(--muted);padding:10px 12px}

/* capabilities */
.caps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.cap{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow)}
.cap b{display:block;font-size:15px;margin-bottom:4px}
.cap span{font-size:13px;color:var(--muted)}
.dirs .dir-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.dir{background:#fff;border:1px solid var(--line);border-left:4px solid var(--brand1);border-radius:14px;padding:18px 20px;box-shadow:var(--shadow)}
.dir:nth-child(2){border-left-color:var(--brand2)}
.dir:nth-child(3){border-left-color:var(--brand3)}
.dir:nth-child(4){border-left-color:#4a7dff}
.dir:nth-child(5){border-left-color:#2fd6c0}
.dir:nth-child(6){border-left-color:var(--gold2)}
.dir h4{font-size:16px;margin:0 0 6px}
.dir p{margin:0;font-size:13.5px;color:#4a4a5e}

/* products */
.prod-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.prod{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px}
.prod h3{font-size:17px;margin:0}
.prod .pain{margin:0;font-size:13.5px;color:#7a5230;background:linear-gradient(180deg,#f8efe6,#f1e2d3);border:1px solid #dfc3a6;border-radius:10px;padding:8px 11px}
.prod .gain{margin:0;font-size:13.5px;color:#f4f2ff;background:linear-gradient(120deg,var(--brand1),var(--brand2) 55%,var(--brand3));border-radius:10px;padding:8px 11px}
.prod .meta{font-size:12px;color:var(--muted);font-weight:600}

/* technology */
.tech{display:grid;grid-template-columns:1.35fr 1fr;gap:22px;align-items:start}
.tech-list{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:10px 20px;box-shadow:var(--shadow)}
.trow{display:flex;gap:14px;padding:12px 0;border-bottom:1px dashed #ececf2;font-size:14.5px}
.trow:last-child{border-bottom:0}
.trow span{flex:0 0 150px;color:var(--muted);font-weight:700}
.trow b{font-weight:600;color:var(--primary)}
.cluster{display:grid;gap:14px}
.cl{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px;box-shadow:var(--shadow)}
.cl h3{font-size:16px;margin:0 0 6px}
.cl p{margin:0;font-size:13.5px;color:#4a4a5e}
.cl.gold{border-color:#eddfc0;background:linear-gradient(180deg,#fffdf6,#fdf5e4)}

/* performance */
.perf{display:grid;grid-template-columns:1.25fr 1fr;gap:22px;align-items:start}
.counters{grid-column:1 / -1;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.cnt-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow)}
.cnt-card b{display:block;font-size:30px;font-weight:800;color:var(--brand1)}
.cnt-card span{font-size:13px;color:var(--muted)}
.bars{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow)}
.bar-row{margin-bottom:16px}
.bar-cap{display:flex;justify-content:space-between;font-size:13.5px;color:#4a4a5e;margin-bottom:7px}
.bar-cap b{color:var(--primary)}
.bar{height:14px;border-radius:8px;background:#f0eff6;overflow:hidden}
.bar i{display:block;height:100%;width:0;border-radius:8px;background:linear-gradient(90deg,#9a8aff,var(--brand1));transition:width 1.1s cubic-bezier(.2,.8,.2,1)}
.bar-row:nth-child(2) .bar i{background:linear-gradient(90deg,#c77ef7,var(--brand2))}
.bar-row:nth-child(3) .bar i{background:linear-gradient(90deg,#7fe3ff,var(--brand3))}
.slo{background:linear-gradient(160deg,#0e0f1a,#2a1e6e);color:#fff;border-radius:var(--radius);padding:20px 22px;box-shadow:0 16px 36px rgba(17,12,60,.3)}
.slo h3{margin:0 0 10px;font-size:16px}
.srow{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:9px 0;border-bottom:1px dashed rgba(255,255,255,.14);font-size:13.5px}
.srow:last-child{border-bottom:0}
.srow span{color:#b9b6d4}
.srow b{font-size:17px;color:#7fe3ff}

/* integration */
.int-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.int{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow)}
.int h3{font-size:17px;margin:0 0 10px}
.int ul{margin:0;padding-left:18px}
.int li{font-size:13.5px;color:#4a4a5e;margin-bottom:7px}

/* launch */
.launch{display:grid;gap:20px}
.bricks{display:flex;flex-wrap:wrap;gap:9px}
.bricks span{font-size:13px;font-weight:700;color:#fff;border-radius:10px;padding:9px 14px;
  background:linear-gradient(180deg,#9a8aff,var(--brand1));box-shadow:0 4px 0 rgba(35,28,90,.35)}
.bricks span:nth-child(2n){background:linear-gradient(180deg,#c77ef7,var(--brand2));box-shadow:0 4px 0 rgba(122,43,184,.4)}
.bricks span:nth-child(3n){background:linear-gradient(180deg,#7fe3ff,#2ec6ea);color:#063b4d;box-shadow:0 4px 0 rgba(31,158,196,.4)}
.bricks span:nth-child(5n){background:linear-gradient(180deg,var(--gold1),var(--gold2));color:#3a2400;box-shadow:0 4px 0 rgba(168,117,13,.4)}
.sols{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.sol{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px;box-shadow:var(--shadow)}
.sol h4{font-size:15.5px;margin:0 0 6px}
.sol p{margin:0;font-size:13.5px;color:#4a4a5e}
.launch-note{margin:0;font-size:14.5px;color:#4a4a5e;max-width:900px}

/* contact */
.contact{display:grid;grid-template-columns:1fr 1.15fr;gap:26px;align-items:start}
.c-cards{display:grid;gap:16px}
.ccard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}
.ccard h3{margin:0 0 4px;font-size:20px;color:var(--brand1)}
.ccard:last-child h3{color:var(--brand2)}
.cc-sub{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
.ccard p{margin:0 0 10px;font-size:14px;color:#4a4a5e}
.ccard .cc-mail{margin:0;font-weight:600;color:var(--primary)}
.form{background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px 28px;box-shadow:var(--shadow)}
.form h3{margin:0 0 6px;font-size:22px}
.form-sub{margin:0 0 20px;font-size:14px;color:var(--muted)}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{margin-bottom:16px}
.field label{display:block;font-size:13.5px;font-weight:700;margin-bottom:6px}
.field label i{color:#d9455f;font-style:normal}
.field label small{font-weight:400;color:var(--muted)}
.field input,.field select,.field textarea{
  width:100%;font:inherit;font-size:14.5px;color:var(--primary);background:#fff;
  border:1px solid var(--line);border-radius:11px;padding:11px 13px;outline:none;transition:border-color .15s,box-shadow .15s;
}
.field textarea{resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand1);box-shadow:0 0 0 3px rgba(98,72,255,.14)}
.field.bad input,.field.bad select,.field.bad textarea{border-color:#d9455f;background:#fff7f8}
.msg{display:block;min-height:0;font-size:12.5px;color:#b23a4e;margin-top:5px}
.field.bad .msg{min-height:16px}
.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:#4a4a5e;cursor:pointer}
.consent input{margin-top:3px;width:16px;height:16px;accent-color:var(--brand1)}
.consent i{color:#d9455f;font-style:normal}
.form-btn{margin-top:18px;width:100%}
.form-note{margin:12px 0 0;font-size:12.5px;color:var(--muted)}
.captcha-block{margin:2px 0 12px;display:flex;flex-direction:column;gap:6px}
.captcha-block.off{display:none}
.captcha-cap{font-size:12px;font-weight:700;color:var(--muted)}
.captcha-help{font-size:11.5px;color:var(--muted)}
.captcha-help a{font-weight:600}
.h-captcha{min-height:78px}
.form iframe{max-width:100%;border-radius:8px}
.form-alert{margin:10px 0 0;padding:10px 12px;border-radius:10px;background:#fdecef;border:1px solid #f5c9d3;color:#a03050;font-size:13px}
.form-alert[hidden]{display:none}
.form-ok{grid-column:2;background:linear-gradient(160deg,#f4fff9,#e8fdf1);border:1px solid #cdeedd;border-radius:20px;padding:30px 32px;box-shadow:var(--shadow)}
.form-ok h3{margin:0 0 10px;font-size:22px;color:#1d6b4a}
.form-ok p{margin:0 0 12px;font-size:14.5px;color:#2f5a49}
.ok-icon{width:46px;height:46px;border-radius:50%;margin-bottom:14px;background:radial-gradient(circle at 35% 30%,#fff,#3fe0a0 60%,#1d8a5a);box-shadow:0 8px 20px rgba(63,224,160,.35)}

/* footer */
.foot{background:var(--ink);color:#c9c6de;padding:44px 0 34px;margin-top:20px}
.foot-in{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:22px;align-items:start}
.foot img{width:118px;margin-bottom:12px;filter:brightness(0) invert(1) opacity(.92)}
.foot p{margin:0 0 8px;font-size:13.5px;line-height:1.5}
.foot a{color:#fff}
.foot-links{display:grid;gap:8px;font-size:14px}
.foot-mail{font-size:14px}
.copy{margin-top:10px;color:#8f8ca8;font-size:13px}

/* reveal animation */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.2,1)}
.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:1080px){
  .hero h1{font-size:42px}
  .stats{grid-template-columns:repeat(2,1fr)}
  .why-grid,.pillars,.dirs .dir-grid,.prod-grid,.sols,.int-grid{grid-template-columns:repeat(2,1fr)}
  .caps{grid-template-columns:repeat(3,1fr)}
  .shots{grid-template-columns:repeat(2,1fr)}
  .tech,.perf{grid-template-columns:1fr}
  .counters{grid-template-columns:repeat(2,1fr)}
  .contact{grid-template-columns:1fr}
  .form-ok{grid-column:auto}
  .nav{display:none}
  .nav.open{display:flex;position:absolute;left:0;right:0;top:70px;background:#fff;border-bottom:1px solid var(--line);
    flex-direction:column;gap:0;padding:10px 24px 16px;box-shadow:0 18px 30px rgba(26,28,56,.12)}
  .nav.open a{padding:11px 0;font-size:15px;border-bottom:1px dashed #eee}
  .nav.open a:last-child{border-bottom:0}
  .burger{display:block}
  .head-cta{display:none}
}
@media (max-width:640px){
  .sec{padding:56px 0}
  .hero{padding:60px 0 44px}
  .hero h1{font-size:32px}
  .hero-sub{font-size:16px}
  .sec-head h2{font-size:27px}
  .stats,.caps,.why-grid,.pillars,.dirs .dir-grid,.prod-grid,.sols,.int-grid,.shots,.counters,.frow{grid-template-columns:1fr}
  .answer-grid{grid-template-columns:1fr}
  .foot-in{grid-template-columns:1fr}
}

/* ---------- v9.9: hero tesseract ---------- */
.hero-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:34px;align-items:center}
.hero-copy{min-width:0}
.hero-copy .hero-cta{margin-bottom:0}
.tess-stage{position:relative;width:340px;height:340px;perspective:1100px;justify-self:center}
.tess-halo{position:absolute;inset:4%;border-radius:50%;background:radial-gradient(circle at 50% 46%,rgba(98,72,255,.2),rgba(46,207,246,.14) 55%,transparent 74%)}
.tess-bob{position:absolute;inset:0;display:grid;place-items:center;animation:tbob 5.4s ease-in-out infinite}
@keyframes tbob{0%,100%{transform:translateY(-10px)}50%{transform:translateY(10px)}}
.tcube{position:relative;width:150px;height:150px;transform-style:preserve-3d;animation:tspin 26s linear infinite}
@keyframes tspin{from{transform:rotateX(-18deg) rotateY(0deg)}to{transform:rotateX(-18deg) rotateY(360deg)}}
.tc-face{position:absolute;inset:0;border-radius:14px;border:1.5px solid rgba(255,255,255,.75);box-shadow:0 0 18px rgba(122,99,255,.16),inset 0 0 22px rgba(255,255,255,.45)}
.tc-face.f1{background:linear-gradient(160deg,rgba(255,255,255,.55),rgba(122,99,255,.3))}
.tc-face.f2{background:linear-gradient(160deg,rgba(255,255,255,.55),rgba(200,126,247,.3))}
.tc-face.f3{background:linear-gradient(160deg,rgba(255,255,255,.55),rgba(46,207,246,.3))}
.tc-face.f4{background:linear-gradient(160deg,rgba(255,255,255,.55),rgba(74,125,255,.28))}
.tc-face.f5{background:linear-gradient(160deg,rgba(255,255,255,.55),rgba(47,214,192,.3))}
.tc-face.f6{background:linear-gradient(160deg,rgba(255,255,255,.6),rgba(255,217,138,.4))}
.tc-mid{position:absolute;left:34px;top:34px;width:82px;height:82px;transform-style:preserve-3d;animation:tspinmid 16s linear infinite reverse}
@keyframes tspinmid{from{transform:rotateX(14deg) rotateY(0deg)}to{transform:rotateX(14deg) rotateY(360deg)}}
.tc-face.fm{inset:auto;width:82px;height:82px;border-color:rgba(255,255,255,.85);background:linear-gradient(160deg,rgba(255,255,255,.6),rgba(122,99,255,.36))}
.tc-core{position:absolute;left:28px;top:28px;width:26px;height:26px;transform-style:preserve-3d;animation:tspincore 9s linear infinite}
@keyframes tspincore{from{transform:rotateX(-24deg) rotateY(0deg)}to{transform:rotateX(-24deg) rotateY(360deg)}}
.tc-face.fc{inset:auto;width:26px;height:26px;border-radius:7px;border-color:rgba(255,255,255,.95);background:radial-gradient(circle at 38% 32%,#fff,rgba(172,80,239,.75) 55%,rgba(46,207,246,.65))}
.spark{position:absolute;width:8px;height:8px;border-radius:50%;animation:sparkle 4.6s ease-in-out infinite}
@keyframes sparkle{0%,100%{opacity:.15;transform:translateY(5px)}50%{opacity:.9;transform:translateY(-7px)}}
.spark.s1{left:8%;top:22%;background:#8a63ff;box-shadow:0 0 12px rgba(138,99,255,.85)}
.spark.s2{right:6%;top:32%;background:#2ecff6;box-shadow:0 0 12px rgba(46,207,246,.85);animation-delay:1.1s}
.spark.s3{left:20%;bottom:14%;background:#f05fd0;box-shadow:0 0 12px rgba(240,95,208,.85);animation-delay:2.2s}
.spark.s4{right:16%;bottom:8%;background:#d99a1e;box-shadow:0 0 12px rgba(217,154,30,.85);animation-delay:3.1s}
.spark.s5{left:46%;top:2%;background:#2fd6c0;box-shadow:0 0 12px rgba(47,214,192,.85);animation-delay:.6s}

/* ---------- v9.9: company wordmark logos ---------- */
.wm{width:186px;height:36px;display:block}
.wm.cw{width:182px;height:35px}
.wm.sm{width:152px;height:29px}
.brand-row{display:grid;gap:14px;margin-bottom:20px}
.brand{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow)}
.brand span{display:block;font-size:12.5px;color:var(--muted);margin-top:4px}

/* ---------- v9.9: about the company ---------- */
.about{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.about-col h3{margin:0 0 12px;font-size:20px}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fact{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow)}
.fact b{display:block;font-size:14.5px;margin-bottom:3px;color:var(--brand1)}
.fact span{font-size:12.8px;color:#4a4a5e;line-height:1.45}
.exp{margin:0;padding-left:20px}
.exp li{font-size:14px;color:#4a4a5e;margin-bottom:10px;line-height:1.5}

/* ---------- v9.9: launch map selector ---------- */
.lm{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.lm-panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px;box-shadow:var(--shadow)}
.lm-title{font-size:11.5px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.lm-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.lm-tab{font:inherit;font-size:13px;font-weight:600;color:var(--primary);background:#f5f4fb;border:1px solid var(--line);border-radius:999px;padding:7px 13px;cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.lm-tab:hover{border-color:#cfc6ff}
.lm-tab.on{background:linear-gradient(120deg,var(--brand1),var(--brand2));color:#fff;border-color:transparent}
.lm-out{min-height:118px}
.lm-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.lm-chip{font-size:13px;font-weight:600;color:#4b3fc0;background:#f1eeff;border:1px solid #ded6ff;border-radius:9px;padding:6px 11px}
.lm-note{margin:0;font-size:13.5px;color:#4a4a5e;line-height:1.5}
.lm-out.swap .lm-chips,.lm-out.swap .lm-note{animation:fadeup .38s ease-out both}
@keyframes fadeup{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---------- v9.9: footer logos ---------- */
.foot-brand img{margin-bottom:12px}
.foot-logos{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:6px 0 12px}
.foot-logo{display:inline-flex}

@media (max-width:1080px){
 .hero-grid{grid-template-columns:1fr}
 .tess-stage{display:none}
 .about{grid-template-columns:1fr}
 .lm{grid-template-columns:1fr}
}
@media (max-width:640px){
 .facts{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
 .tess-bob,.tcube,.tc-mid,.tc-core,.spark{animation:none}
}

/* ---------- v10.0: living blocks ---------- */
.sec-head h2{position:relative}
.sec-head h2:after{content:"";display:block;width:72px;height:4px;border-radius:3px;margin-top:14px;
 background:linear-gradient(90deg,var(--brand1),var(--brand2),var(--brand3),var(--brand1));
 background-size:220% 100%;animation:underflow 7s linear infinite}
@keyframes underflow{to{background-position:220% 0}}
.pillar,.cap,.dir,.prod,.sol,.cl,.ccard,.brand,.fact,.stat,.cnt-card,.shot,.int{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.pillar:hover,.cap:hover,.dir:hover,.sol:hover,.cl:hover,.ccard:hover,.fact:hover,.stat:hover,.cnt-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(26,28,56,.14)}
.hero-badge{animation:badgeglow 4.4s ease-in-out infinite}
@keyframes badgeglow{0%,100%{box-shadow:0 0 0 0 rgba(98,72,255,0)}50%{box-shadow:0 0 22px 0 rgba(98,72,255,.28)}}
.lead2{font-size:15.5px;color:#4a4a5e;line-height:1.62;margin:0 0 14px}

/* ---------- v10.0: product cards with unique palettes ---------- */
.prod-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.prod{position:relative;overflow:hidden;cursor:pointer}
.prod:before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--pgrad)}
.prod:hover{transform:translateY(-5px)}
.prod:focus-visible{outline:3px solid rgba(98,72,255,.4);outline-offset:2px}
.prod h3{position:relative}
.prod-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:2px}
.prod .more{font-size:12px;font-weight:800;color:var(--pacc);white-space:nowrap}
.prod .more:after{content:" →"}
.prod .gain{color:#fff}
.p1{--pgrad:linear-gradient(90deg,#7a63ff,#2ecff6);--pacc:#4a7dff;--painbg:#eef3ff;--gainbg:linear-gradient(120deg,#6248ff,#4a7dff)}
.p2{--pgrad:linear-gradient(90deg,#2fd6c0,#7a63ff);--pacc:#1fa08f;--gainbg:linear-gradient(120deg,#1fa08f,#2ecff6)}
.p3{--pgrad:linear-gradient(90deg,#ffb84d,#f08a00);--pacc:#b8720a;--gainbg:linear-gradient(120deg,#f08a00,#ffd98a)}
.p4{--pgrad:linear-gradient(90deg,#4a7dff,#ac50ef);--pacc:#6146e0;--gainbg:linear-gradient(120deg,#4a7dff,#8a5cf0)}
.p5{--pgrad:linear-gradient(90deg,#ac50ef,#f05fd0);--pacc:#b83a9e;--gainbg:linear-gradient(120deg,#8a35cf,#f05fd0)}
.p6{--pgrad:linear-gradient(90deg,#2ecff6,#7fe3ff);--pacc:#1f9ec4;--gainbg:linear-gradient(120deg,#1f9ec4,#2ecff6)}
.p7{--pgrad:linear-gradient(90deg,#6e6fa8,#2fd6c0);--pacc:#4b4c78;--gainbg:linear-gradient(120deg,#4b4c78,#2fd6c0)}
.p8{--pgrad:linear-gradient(90deg,#d99a1e,#ffd98a);--pacc:#a8750d;--gainbg:linear-gradient(120deg,#a8750d,#d99a1e)}
.p9{--pgrad:linear-gradient(90deg,#f05fd0,#7a63ff);--pacc:#a04ad0;--gainbg:linear-gradient(120deg,#a04ad0,#7a63ff)}
.prod.p1 .pain{background:#eef3ff;border-color:#cfe0ff;color:#2f4a86}
.prod.p2 .pain{background:#eefaf7;border-color:#c6ece4;color:#1d6b5c}
.prod.p3 .pain{background:#fff6e8;border-color:#f0d9ae;color:#8a5a12}
.prod.p4 .pain{background:#f0f3ff;border-color:#cdd8ff;color:#3a4a9c}
.prod.p5 .pain{background:#fdf0fa;border-color:#f3cdea;color:#8a2f74}
.prod.p6 .pain{background:#eefaff;border-color:#c8e9f7;color:#155a75}
.prod.p7 .pain{background:#f3f3f8;border-color:#d9d9e6;color:#4a4a6e}
.prod.p8 .pain{background:#fdf5e4;border-color:#ecd9a8;color:#7a5200}
.prod.p9 .pain{background:#faf0ff;border-color:#e4c8f3;color:#6d2f7a}
.prod .pain{background-image:none}
.prod p.gain{background:var(--gainbg)}
.prod-hint{margin:16px 0 0;font-size:13.5px;color:var(--muted)}

/* ---------- v10.0: catalog ---------- */
.cat-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px 14px;box-shadow:var(--shadow);margin-bottom:18px}
#cat-search{flex:1 1 260px;font:inherit;font-size:14px;color:var(--primary);border:1px solid var(--line);border-radius:11px;padding:10px 13px;outline:none}
#cat-search:focus{border-color:var(--brand1);box-shadow:0 0 0 3px rgba(98,72,255,.14)}
.cat-filters{display:flex;flex-wrap:wrap;gap:7px}
.cat-f{font:inherit;font-size:12.5px;font-weight:600;color:var(--primary);background:#f5f4fb;border:1px solid var(--line);border-radius:999px;padding:6px 12px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.cat-f:hover{border-color:#cfc6ff}
.cat-f.on{background:linear-gradient(120deg,var(--brand1),var(--brand2));color:#fff;border-color:transparent}
.cat-count{font-size:12.5px;color:var(--muted);margin-left:auto}
.cat-group{margin:0 0 10px;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.cat-list{display:grid;gap:18px}
.cat-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-left:4px solid var(--c,var(--brand1));border-radius:12px;padding:11px 14px;cursor:pointer;box-shadow:0 4px 14px rgba(26,28,56,.06);transition:transform .18s,border-color .18s,box-shadow .18s;font:inherit}
.cat-row:hover{transform:translateX(4px);box-shadow:0 10px 22px rgba(26,28,56,.12)}
.cat-name{font-size:14.5px;font-weight:700;color:var(--primary)}
.cat-aud{font-size:12.5px;color:var(--muted)}
.cat-sp{flex:1}
.cat-price{font-size:13px;font-weight:800;color:var(--c,var(--brand1));white-space:nowrap}
.cat-tier{font-size:11px;color:var(--muted);white-space:nowrap}
.cat-empty{font-size:14px;color:var(--muted);padding:16px 0}
@media (max-width:640px){ .cat-row{flex-wrap:wrap} .cat-sp{display:none} .cat-count{margin-left:0} }

/* ---------- v10.0: modal ---------- */
.modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:22px}
.modal[hidden]{display:none}
.modal-back{position:absolute;inset:0;background:rgba(7,9,27,.55);backdrop-filter:blur(4px)}
.modal-card{position:relative;width:min(860px,100%);max-height:88vh;overflow:auto;background:#fff;border-radius:20px;padding:26px 30px 24px;box-shadow:0 30px 70px rgba(7,9,27,.35);animation:mup .28s cubic-bezier(.2,.8,.2,1) both}
@keyframes mup{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
.modal-x{position:absolute;right:14px;top:12px;width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--primary);font-size:18px;line-height:1;cursor:pointer}
.modal-x:hover{background:#f5f4fb}
.m-kick{font-size:11.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--brand2);margin-bottom:6px}
.modal-card h3{margin:0 0 8px;font-size:24px;letter-spacing:-.01em}
.m-meta{font-size:13.5px;color:#4a4a5e;margin-bottom:16px}
.m-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 22px;margin-bottom:18px}
.m-block h4{margin:0 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}
.m-block p{margin:0;font-size:14px;color:#33314b;line-height:1.5}
.m-block ul{margin:0;padding-left:18px}
.m-block li{font-size:13.5px;color:#33314b;margin-bottom:5px}
.modal-cta{width:100%}
@media (max-width:640px){ .m-grid{grid-template-columns:1fr} .modal-card{padding:22px 18px} }

/* ---------- v10.0: performance add-ons ---------- */
.perf2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}
.trc,.scale{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 22px;box-shadow:var(--shadow)}
.trc h3,.scale h3{margin:0 0 12px;font-size:17px}
.trc-row{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px dashed #ececf2;font-size:14px}
.trc-row span{color:var(--muted);flex:0 0 168px;font-weight:600}
.trc-row b{text-align:right;font-weight:600;color:var(--primary)}
.trc-note{margin:12px 0 0;font-size:13px;color:#4a4a5e;line-height:1.5}
.scale p{margin:0 0 10px;font-size:14px;color:#4a4a5e;line-height:1.55}

/* ---------- v10.0: living connectivity ---------- */
.conn{position:relative;display:grid;grid-template-columns:1fr 1fr 1fr;gap:22px;padding-bottom:58px}
.conn-lines{position:absolute;left:0;top:0;width:100%;height:300px;pointer-events:none}
.cl{fill:none;stroke-width:2;stroke-dasharray:7 7;animation:dashmove 6s linear infinite}
.cl1,.cl4{stroke:rgba(122,99,255,.75)}
.cl2,.cl5{stroke:rgba(172,80,239,.75);animation-delay:1.2s}
.cl3,.cl6{stroke:rgba(46,207,246,.75);animation-delay:.6s}
@keyframes dashmove{to{stroke-dashoffset:-140}}
.int{position:relative;background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 22px;box-shadow:var(--shadow);overflow:hidden}
.int:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--brand1),var(--brand3));background-size:200% 100%;animation:underflow 8s linear infinite}
.int.core:before{background:linear-gradient(90deg,var(--brand2),var(--brand1));background-size:200% 100%}
.int.out:before{background:linear-gradient(90deg,var(--brand3),var(--brand2));background-size:200% 100%}
.int h3{display:flex;align-items:center;gap:8px}
.live-dot{width:9px;height:9px;border-radius:50%;background:#3fe0a0;box-shadow:0 0 10px #3fe0a0;animation:dotpulse 1.8s ease-in-out infinite}
@keyframes dotpulse{0%,100%{opacity:.45;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}
.int li{animation:fadeup .55s ease-out both}
.int li:nth-child(1){animation-delay:.05s}.int li:nth-child(2){animation-delay:.18s}.int li:nth-child(3){animation-delay:.31s}.int li:nth-child(4){animation-delay:.44s}
.conn-badges{display:flex;flex-wrap:wrap;gap:8px;position:absolute;left:0;bottom:0}
.conn .chip:hover{border-color:var(--brand1);color:var(--brand1)}
@media (max-width:1080px){ .conn{grid-template-columns:1fr;padding-bottom:0} .conn-lines{display:none} .conn-badges{position:static;margin-top:4px} }
.perf2{grid-template-columns:1fr 1fr}
@media (max-width:1080px){ .perf2{grid-template-columns:1fr} }

/* ---------- v10.0: footer ---------- */
.foot{background:linear-gradient(150deg,#060817,#1b1542 55%,#0c1026 100%);padding:52px 0 26px}
.foot-logo-chip{display:inline-flex;align-items:center;background:#fff;border-radius:12px;padding:9px 13px;margin-bottom:14px;box-shadow:0 10px 26px rgba(0,0,0,.28)}
.foot-logo-chip img{filter:none;width:126px;height:auto;margin:0}
.foot-desc{max-width:640px;color:#b9b6d4}
.foot-places{margin-top:10px;color:#8f8ca8}
.foot-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.12);margin-top:28px;padding-top:16px}
.copy{color:#e6e3f5;font-size:13.5px;font-weight:600;margin:0}
.copy2{color:#8f8ca8;font-size:13px;margin:0;letter-spacing:.04em}
@media (max-width:640px){ .foot-bottom{flex-direction:column;gap:6px} }

@media (prefers-reduced-motion:reduce){
 .cl,.int:before,.live-dot,.hero-badge,.sec-head h2:after{animation:none}
 .int li{animation:none}
}
button.lm-chip{font:inherit;cursor:pointer;transition:border-color .15s,color .15s}
button.lm-chip:hover{border-color:var(--brand1);color:var(--brand1)}
.lm-link{margin:10px 0 0;font-size:13px}
.int h3{margin-bottom:10px}
.cat-list .cat-list{gap:9px}

/* ---------- v10.0: API surface ---------- */
.api-stats{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}
.api-stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 14px;box-shadow:var(--shadow)}
.api-stat b{display:block;font-size:20px;font-weight:800;color:var(--brand1)}
.api-stat span{font-size:12px;color:var(--muted)}
.api-wrap{display:grid;grid-template-columns:300px 1fr;gap:18px;align-items:start}
.api-layers{display:grid;gap:8px}
.api-layer{font:inherit;text-align:left;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 13px;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}
.api-layer b{display:block;font-size:13.5px;color:var(--primary)}
.api-layer span{font-size:11.5px;color:var(--muted);line-height:1.35;display:block;margin-top:3px}
.api-layer:hover{transform:translateX(3px)}
.api-layer.on{border-color:#cfc6ff;box-shadow:0 0 0 3px rgba(98,72,255,.12)}
.api-layer.on b{color:var(--brand1)}
.api-main{display:grid;gap:14px}
.api-domains{display:flex;flex-wrap:wrap;gap:8px}
.api-dom{font:inherit;background:#f5f4fb;border:1px solid var(--line);border-radius:10px;padding:7px 11px;cursor:pointer;text-align:left;transition:border-color .15s,background .15s}
.api-dom b{display:block;font-size:12.5px;color:var(--primary)}
.api-dom i{font-style:normal;font-size:11px;color:var(--muted)}
.api-dom:hover{border-color:#cfc6ff}
.api-dom.on{background:linear-gradient(120deg,var(--brand1),var(--brand2));border-color:transparent}
.api-dom.on b,.api-dom.on i{color:#fff}
.api-detail{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px;box-shadow:var(--shadow);min-height:260px}
.api-kick{font-size:11px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--brand2);margin-bottom:4px}
.api-detail h3{margin:0 0 4px;font-size:21px}
.api-meta{margin:0 0 12px;font-size:13px;color:var(--muted)}
.api-eps{list-style:none;margin:0 0 12px;padding:0}
.api-eps li{display:flex;align-items:center;gap:9px;padding:6px 0;border-bottom:1px dashed #ececf5;font-size:13.5px}
.api-eps li:last-child{border-bottom:0}
.api-eps code{font-family:"Cascadia Code",Consolas,monospace;font-size:12.5px;color:#33314b}
.m{font-size:10.5px;font-weight:800;border-radius:6px;padding:2px 7px;min-width:52px;text-align:center}
.m-get{background:#e8f8f0;color:#1d7a4a}
.m-post{background:#efeaff;color:#4b3fc0}
.m-put{background:#fdf5e4;color:#8a5a12}
.m-patch{background:#eaf7fd;color:#155a75}
.m-del{background:#fdecef;color:#a03050}
.m-other{background:#f2f2f6;color:#4a4a5e}
.api-note{margin:14px 0 0;font-size:12.5px;color:var(--muted)}
.api-note2{margin:0;font-size:12px;color:var(--muted)}
.api-detail.swap{animation:fadeup .4s ease-out both}
@media (max-width:1080px){ .api-wrap{grid-template-columns:1fr} }
