/* Verbll site, animated sections. Uses the tokens of styles.css. */
.split{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}
.split.rev{grid-template-columns:1fr 1.05fr}
.big3{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--acc);margin:0 0 14px}
.big3:not(:first-child){margin-top:34px}
.feat{list-style:none;padding:0;display:grid;gap:18px}
.feat li{display:grid;gap:3px;padding-left:20px;position:relative}
.feat li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:8px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 4px #dbe7ff}
.feat b{font-size:17px}.feat span{color:var(--mut);font-size:15.5px}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.facts div{border:1px solid var(--line);border-radius:12px;background:#fff;padding:14px 16px}
.facts b{display:block;font-size:26px;letter-spacing:-.03em;line-height:1.1}
.facts span{color:var(--mut);font-size:13.5px}
.fine.l{text-align:left}
/* animation cards */
.viz-card{position:relative;aspect-ratio:16/10;border-radius:20px;overflow:hidden;background:#000;border:1px solid #1b2a52;box-shadow:0 30px 70px rgba(37,99,235,.18)}
.viz-card.sq{aspect-ratio:1/1;max-height:640px}
.viz-card iframe,.viz-card canvas{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.viz-card.light{background:#f7f9fd;border-color:var(--line)}
.vcap{position:absolute;left:14px;bottom:12px;font-size:12.5px;font-weight:600;color:#cfe0ff;background:rgba(8,14,30,.6);padding:4px 10px;border-radius:99px;backdrop-filter:blur(6px);transition:opacity .3s}
.light .vcap{color:#1e3a8a;background:rgba(255,255,255,.85);border:1px solid var(--line)}
/* method: contrast block and flow list */
.vs{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:26px}
.vs>div{border-radius:14px;padding:18px 20px;border:1px solid var(--line)}
.vs-a{background:#f6f8fc;color:var(--mut)}.vs-a p{color:var(--mut);font-size:15px;text-decoration:line-through;text-decoration-color:#c0c8d8}
.vs-b{background:linear-gradient(160deg,#f3f7ff,#fff);border-color:#b9c8ee}.vs-b p{font-size:15px;font-weight:550}
.vs-t{display:block;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--acc);margin-bottom:8px}.vs-a .vs-t{color:#8a95a8}
.flow{list-style:none;padding:0;display:grid;gap:12px}
.flow li{display:grid;grid-template-columns:38px 1fr;gap:14px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff;transition:border-color .3s,box-shadow .3s,transform .3s}
.flow li>span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:700;background:#eaf1ff;color:var(--acc);transition:background .3s,color .3s}
.flow p{color:var(--mut);font-size:14.5px;margin-top:2px}
.flow li.on{border-color:var(--acc);box-shadow:0 12px 30px rgba(37,99,235,.14);transform:translateX(4px)}
.flow li.on>span{background:var(--acc);color:#fff}
.yt{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 70px rgba(37,99,235,.14);background:#fff}
.yt img{width:100%;height:auto}
.ytg{position:absolute;inset:0;display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(2,1fr);pointer-events:none}
.ytg i{border:2px solid transparent;border-radius:8px;margin:2px;transition:background .35s,border-color .35s}
.ytg i.s1{background:rgba(37,99,235,.18);border-color:#2563eb}
.ytg i.s2{background:rgba(13,148,136,.2);border-color:#0d9488}
.ytg i.s3{background:rgba(124,58,237,.2);border-color:#7c3aed}
.ytl{position:absolute;right:12px;bottom:12px;font-size:13px;font-weight:700;color:#fff;background:#0b1220;border-radius:99px;padding:6px 14px}
/* validation: text | two images | terminal */
.val{display:grid;grid-template-columns:.9fr 1fr 1.15fr;gap:28px;align-items:start}
.imgs{display:grid;gap:14px}
.imgs figure{margin:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.imgs img{width:100%;height:auto;display:block}
.imgs figcaption{font-size:12.5px;font-weight:650;color:var(--mut);padding:8px 12px;border-top:1px solid var(--line);background:#fafbfd;display:flex;justify-content:space-between}
.rbox{position:relative;aspect-ratio:16/9;background:#0b1220;overflow:hidden}
.rbox img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .9s,filter .9s}
.rbox .r1{opacity:0;image-rendering:pixelated}
.rbox .r2{opacity:0;filter:blur(18px)}
.rwait{position:absolute;inset:0;display:grid;place-items:center;color:#7f93c0;font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.rwait::after{content:"";width:7px;height:7px;border-radius:50%;background:#5b8cff;margin-left:10px;animation:blink 1s infinite;display:inline-block}
@keyframes blink{50%{opacity:.2}}
.term{border-radius:14px;overflow:hidden;background:#0b1020;border:1px solid #1b2a52;box-shadow:0 30px 70px rgba(11,18,32,.25)}
.term-h{display:flex;align-items:center;gap:7px;padding:11px 14px;background:#111a33;color:#8ea0cc;font-size:12.5px}
.term-h i{width:10px;height:10px;border-radius:50%;background:#2b3a66}.term-h span{margin-left:8px}
.term pre{margin:0;padding:14px 16px;height:520px;overflow:hidden;font:12.5px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#b8c6e8;white-space:pre-wrap;word-break:break-word;display:flex;flex-direction:column;justify-content:flex-end}
.term .ok{color:#4ade80}.term .hd{color:#7dd3fc}.term .tw{color:#fbbf24}.term .dm{color:#6b7ba3}.term .cur{display:inline-block;width:7px;height:13px;background:#b8c6e8;vertical-align:-2px;animation:blink 1s infinite}
@media(max-width:1080px){.val{grid-template-columns:1fr 1fr}.val-t{grid-column:1/-1}}
@media(max-width:960px){.split,.split.rev{grid-template-columns:1fr;gap:30px}.vs{grid-template-columns:1fr}}
@media(max-width:640px){.val{grid-template-columns:1fr}.facts{grid-template-columns:1fr 1fr}.term pre{height:420px}}

.viz-card.crowd{aspect-ratio:960/560}.viz-card.mapc{aspect-ratio:960/600}

/* v2 */
.viz-card.dark{background:#0a1020;border-color:#1b2a52}
.facts.f3{grid-template-columns:repeat(3,1fr);margin-top:22px}
.mile{list-style:none;padding:0;display:grid;gap:14px;counter-reset:m}
.mile li{counter-increment:m;display:grid;gap:2px;padding-left:46px;position:relative}
.mile li::before{content:counter(m);position:absolute;left:0;top:2px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:14px;color:#fff;background:linear-gradient(135deg,#2563eb,#7c3aed)}
.mile b{font-size:16px}.mile span{color:var(--mut);font-size:14.5px}
/* image pair with the processing marker between */
.imgs{gap:0}
.obox{aspect-ratio:16/9;overflow:hidden;background:#0b1220}.obox img{width:100%;height:100%;object-fit:cover}
.proc{display:flex;align-items:center;justify-content:center;gap:10px;height:54px;color:#7a8599;font-size:12.5px;font-weight:650;letter-spacing:.04em;position:relative}
.proc::before,.proc::after{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;background:repeating-linear-gradient(180deg,#c8d3ec 0 4px,transparent 4px 8px)}
.proc i,.proc span{position:relative;z-index:1;background:var(--soft)}
.proc i{width:22px;height:22px;border-radius:50%;border:3px solid #cdd8ee;border-top-color:#cdd8ee}
.proc span{padding:3px 10px;border-radius:99px;border:1px solid var(--line);background:#fff}
.proc.on i{border-top-color:var(--acc);animation:spin .8s linear infinite}
.proc.on span{color:var(--acc);border-color:#b9c8ee}
.proc.on::before,.proc.on::after{background:repeating-linear-gradient(180deg,#2563eb 0 4px,transparent 4px 8px);animation:dash .6s linear infinite}
.proc.done i{border-color:#0d9488;background:#0d9488;box-shadow:inset 0 0 0 4px #fff}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes dash{to{background-position:0 8px}}
.imgs{overflow:visible}.imgs figure{border-radius:14px}
.rbox .r1,.rbox .r2{filter:none!important}
.rbox .r1{image-rendering:auto}
/* situations */
.sit{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
.big b{display:block;font-size:clamp(56px,8vw,104px);line-height:1;letter-spacing:-.05em;font-weight:800;font-variant-numeric:tabular-nums;background:linear-gradient(100deg,#0b1220,#2563eb 70%,#06b6d4);-webkit-background-clip:text;background-clip:text;color:transparent}
.big span{color:var(--mut);font-size:17px}
.mini4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:26px 0}
.mini4>div{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff}.mini4 b{display:block;font-size:26px;letter-spacing:-.03em}.mini4 span{font-size:12.5px;color:var(--mut)}
.cats{display:grid;gap:8px}
.cat{display:grid;grid-template-columns:86px 1fr 46px;align-items:center;gap:10px;font-size:13px;color:var(--mut)}
.cat i{height:8px;border-radius:9px;background:#eaeef6;position:relative;overflow:hidden}
.cat i::after{content:"";position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,#2563eb,#06b6d4);border-radius:9px;transition:width 1.3s cubic-bezier(.2,.8,.2,1)}
.cats.go i::after{width:var(--w)}.cat em{font-style:normal;text-align:right;font-variant-numeric:tabular-nums;color:var(--tx);font-weight:600}
.inj{border:1px solid var(--line);border-radius:20px;background:#fff;padding:22px;box-shadow:0 30px 70px rgba(37,99,235,.12);display:grid;gap:14px;min-height:440px;align-content:start}
.inj-card{border:1px solid var(--line);border-radius:14px;padding:16px 18px;background:#fafbfd;transition:border-color .4s,box-shadow .4s,transform .4s;min-height:110px}
.inj-card.hit{border-color:var(--acc);box-shadow:0 14px 34px rgba(37,99,235,.18);transform:translateY(2px)}
.inj-c{display:inline-block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--acc);margin-bottom:6px}
.inj-card b{display:block;font-size:19px;letter-spacing:-.01em}.inj-p{font:12.5px/1.5 ui-monospace,Menlo,monospace;color:var(--mut);margin-top:8px}
.inj-arrow{display:flex;align-items:center;gap:10px;color:#7a8599;font-size:12.5px;font-weight:600;padding-left:12px}
.inj-arrow i{width:2px;height:26px;background:repeating-linear-gradient(180deg,#2563eb 0 4px,transparent 4px 8px);animation:dash .6s linear infinite}
.inj-out{display:grid;gap:8px;align-content:start}.inj-l{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#8a95a8;font-weight:700;margin-top:6px}
.inj-out>div{display:flex;flex-wrap:wrap;gap:8px;min-height:34px}
.pill{border-radius:99px;padding:5px 13px;font-size:13.5px;font-weight:600;animation:pop .4s cubic-bezier(.3,1.6,.5,1)}
.pill.e{background:#eaf1ff;color:#1d4ed8}.pill.d{background:#f1ecff;color:#6d28d9}
@keyframes pop{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}
/* people chips */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid var(--line);background:#fff;border-radius:99px;padding:6px 13px;font-size:13px;font-weight:550;color:var(--tx);opacity:0;transform:translateY(8px);transition:opacity .5s,transform .5s}
.chips.go .chip{opacity:1;transform:none}
/* map feature tiles */
.ftiles{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ftiles article{border:1px solid var(--line);border-radius:14px;background:#fff;padding:18px;display:grid;gap:4px;transition:border-color .25s,transform .25s}
.ftiles article:hover{border-color:#b9c8ee;transform:translateY(-2px)}.ftiles b{font-size:16.5px}.ftiles span{color:var(--mut);font-size:14.5px}
@media(max-width:960px){.sit{grid-template-columns:1fr}.ucs{grid-template-columns:1fr 1fr}.mini4{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.ucs{grid-template-columns:1fr}.ftiles{grid-template-columns:1fr}.facts.f3{grid-template-columns:1fr 1fr}.cu-foot span{font-size:11px;padding:10px 4px}}
@keyframes cuCur{0%{left:92%;top:90%}3%{left:50%;top:28%}8%{left:50%;top:28%}11%{left:50%;top:48%}16%{left:50%;top:48%}19%{left:14%;top:72%}23%{left:14%;top:72%}26%{left:92%;top:90%}28%{left:92%;top:90%}30%{left:50%;top:28%}33%{left:50%;top:28%}36%{left:50%;top:48%}41%{left:50%;top:48%}44%{left:14%;top:72%}48%{left:14%;top:72%}51%{left:92%;top:90%}53%{left:92%;top:90%}55%{left:50%;top:28%}58%{left:50%;top:28%}60%{left:9%;top:72%}62%{left:24%;top:72%}64%{left:12%;top:72%}75%{left:12%;top:72%}78%{left:92%;top:90%}100%{left:92%;top:90%}}
@keyframes cuA1n{0%{opacity:0}5.99%{opacity:0}6%{opacity:1}24%{opacity:1}24.01%{opacity:0}100%{opacity:0}}
@keyframes cuA1e{0%{opacity:0}13.99%{opacity:0}14%{opacity:1}24%{opacity:1}24.01%{opacity:0}100%{opacity:0}}
@keyframes cuA2n{0%{opacity:0}30.99%{opacity:0}31%{opacity:1}49%{opacity:1}49.01%{opacity:0}100%{opacity:0}}
@keyframes cuA2e{0%{opacity:0}38.99%{opacity:0}39%{opacity:1}49%{opacity:1}49.01%{opacity:0}100%{opacity:0}}
@keyframes cuA3n{0%{opacity:0}55.99%{opacity:0}56%{opacity:1}74%{opacity:1}74.01%{opacity:0}100%{opacity:0}}
@keyframes cuM1{-0.01%{opacity:0}0%{opacity:0}0%{opacity:1}25%{opacity:1}25.01%{opacity:0}100%{opacity:0}}
@keyframes cuM2{0%{opacity:0}24.99%{opacity:0}25%{opacity:1}50%{opacity:1}50.01%{opacity:0}100%{opacity:0}}
@keyframes cuM3{0%{opacity:0}49.99%{opacity:0}50%{opacity:1}75%{opacity:1}75.01%{opacity:0}100%{opacity:0}}
@keyframes cuM4{0%{opacity:0}74.99%{opacity:0}75%{opacity:1}100%{opacity:1}100%{opacity:0}100.01%{opacity:0}}
@keyframes cuS3{0%{opacity:0}62.99%{opacity:0}63%{opacity:1}75%{opacity:1}75.01%{opacity:0}100%{opacity:0}}
@keyframes cuS4{0%{opacity:0}78.99%{opacity:0}79%{opacity:1}98%{opacity:1}98.01%{opacity:0}100%{opacity:0}}
@keyframes cuPress{0%{transform:none}19.5%{transform:none}20.5%{transform:scale(.93)}22%{transform:none}44.5%{transform:none}45.5%{transform:scale(.93)}47%{transform:none}64%{transform:none}65%{transform:scale(.93)}66.5%{transform:none}100%{transform:none}}
@keyframes cuRing{0%{opacity:0;transform:scale(.4)}5%{opacity:0;transform:scale(.4)}5.5%{opacity:1;transform:scale(1)}8%{opacity:0;transform:scale(1.4)}13%{opacity:0}13.5%{opacity:1;transform:scale(1)}15%{opacity:0;transform:scale(1.4)}20%{opacity:0}20.5%{opacity:1;transform:scale(1)}22%{opacity:0;transform:scale(1.4)}100%{opacity:0}}
@keyframes cuF1{0%{background:#fafbfd;color:#8a95a8}-0.01%{background:#fafbfd;color:#8a95a8}0%{background:#eaf1ff;color:#2563eb}25%{background:#eaf1ff;color:#2563eb}25.01%{background:#fafbfd;color:#8a95a8}100%{background:#fafbfd;color:#8a95a8}}
@keyframes cuF2{0%{background:#fafbfd;color:#8a95a8}24.99%{background:#fafbfd;color:#8a95a8}25%{background:#eaf1ff;color:#2563eb}50%{background:#eaf1ff;color:#2563eb}50.01%{background:#fafbfd;color:#8a95a8}100%{background:#fafbfd;color:#8a95a8}}
@keyframes cuF3{0%{background:#fafbfd;color:#8a95a8}49.99%{background:#fafbfd;color:#8a95a8}50%{background:#eaf1ff;color:#2563eb}75%{background:#eaf1ff;color:#2563eb}75.01%{background:#fafbfd;color:#8a95a8}100%{background:#fafbfd;color:#8a95a8}}
@keyframes cuF4{0%{background:#fafbfd;color:#8a95a8}74.99%{background:#fafbfd;color:#8a95a8}75%{background:#eaf1ff;color:#2563eb}100%{background:#eaf1ff;color:#2563eb}100.01%{background:#fafbfd;color:#8a95a8}100%{background:#fafbfd;color:#8a95a8}}

.cu{border-radius:18px;overflow:hidden;border:1px solid var(--line);background:#fff;box-shadow:0 30px 70px rgba(37,99,235,.14)}
.cu-bar{display:flex;align-items:center;gap:7px;padding:11px 14px;background:#f1f4fa;border-bottom:1px solid var(--line);font-size:12.5px;color:var(--mut)}
.cu-bar>i{width:10px;height:10px;border-radius:50%;background:#d6dcea}.cu-url{margin-left:8px;flex:1;background:#fff;border:1px solid var(--line);border-radius:99px;padding:4px 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cu-modes{position:relative;width:250px;height:26px;flex:none}.cu-modes em{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-style:normal;font-weight:700;border-radius:99px;opacity:0;animation:var(--a) 16s linear infinite;font-size:12px}
.cu-modes .m1{--a:cuM1;background:#fee2e2;color:#b91c1c}.cu-modes .m2{--a:cuM2;background:#dbeafe;color:#1d4ed8}.cu-modes .m3{--a:cuM3;background:#ede9fe;color:#6d28d9}.cu-modes .m4{--a:cuM4;background:#dcfce7;color:#15803d}
.cu-page{position:relative;height:340px;background:#fff;overflow:hidden}
.cu-h{position:absolute;left:5%;top:5%;font-weight:700;font-size:20px}
.cu-f{position:absolute;left:5%;right:5%;height:15%;border:1px solid #d3dae8;border-radius:10px}.cu-f.f1{top:20%}.cu-f.f2{top:40%}
.cu-f span{position:absolute;inset:0;display:flex;align-items:center;padding:0 14px;border-radius:10px;font-size:15.5px}.cu-f .ph{color:#9aa6bb}.cu-f span:not(.ph){background:#fff;color:var(--tx);opacity:0;border:1px solid var(--acc)}
.cu-f .a1{animation:cuA1n 16s linear infinite}.cu-f.f2 .a1{animation-name:cuA1e}.cu-f .a2{animation:cuA2n 16s linear infinite}.cu-f.f2 .a2{animation-name:cuA2e}.cu-f .a3{animation:cuA3n 16s linear infinite}
.cu-b{position:absolute;left:5%;top:62%;width:160px;height:13%;display:grid;place-items:center;background:var(--tx);color:#fff;border-radius:99px;font-weight:600;animation:cuPress 16s linear infinite}
.cu-say{position:absolute;right:4%;bottom:7%;max-width:260px;background:#ede9fe;color:#4c1d95;border-radius:14px 14px 4px 14px;padding:11px 15px;font-size:14px;font-weight:550;opacity:0}.cu-say.ok{background:#dcfce7;color:#166534}
.say3{animation:cuS3 16s linear infinite}.say4{animation:cuS4 16s linear infinite}
.cu-cur{position:absolute;left:92%;top:90%;width:0;height:0;animation:cuCur 16s cubic-bezier(.45,.05,.25,1) infinite;z-index:5}
.cu-cur::before{content:"";position:absolute;left:-2px;top:-2px;width:22px;height:27px;background:#0b1220;clip-path:polygon(0 0,0 100%,28% 78%,48% 100%,62% 92%,44% 70%,78% 70%)}
.cu-cur::after{content:"";position:absolute;left:-13px;top:-13px;width:26px;height:26px;border-radius:50%;border:2px solid var(--acc);opacity:0;animation:cuRing 16s linear infinite}
.cu-foot{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);background:#fafbfd}
.cu-foot span{padding:13px 8px;text-align:center;font-size:13px;font-weight:650;border-right:1px solid var(--line);color:#8a95a8;animation:var(--a) 16s linear infinite}.cu-foot span:last-child{border:0}
.cu-foot .s1{--a:cuF1}.cu-foot .s2{--a:cuF2}.cu-foot .s3{--a:cuF3}.cu-foot .s4{--a:cuF4}
@media(prefers-reduced-motion:reduce){.cu *{animation:none!important}.cu-say.say4{opacity:1}.cu-modes .m4{opacity:1}}

/* v3 */
section{padding:88px 0}.sec-h{margin-bottom:30px}.sec-h .sub{margin-top:14px}
.bin{border-radius:14px;overflow:hidden;background:#050a18;border:1px solid #1b2a52;box-shadow:0 30px 70px rgba(11,18,32,.25);display:flex;flex-direction:column;height:520px}
.bin-h{display:flex;justify-content:space-between;padding:12px 16px;background:#0d1530;color:#8ea0cc;font-size:12.5px;font-weight:600}.bin-h em{font-style:normal;font-variant-numeric:tabular-nums;color:#5eead4}
.bin pre{margin:0;flex:1;padding:14px 16px;overflow:hidden;font:12px/15px ui-monospace,SFMono-Regular,Menlo,monospace;color:#1d3f7a;letter-spacing:.02em;white-space:pre;transition:color .4s;flex:none;height:466px;min-height:0}
.bin pre.hot{color:#5eead4;text-shadow:0 0 6px rgba(94,234,212,.5)}
.cmp{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}
.cmp>div{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:#fff}.cmp .us{border-color:#b9c8ee;background:linear-gradient(160deg,#f3f7ff,#fff)}
.cmp-t{display:block;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:#8a95a8;margin-bottom:6px}.cmp .us .cmp-t{color:var(--acc)}.cmp p{font-size:14px;color:var(--mut);line-height:1.5}
.val{grid-template-columns:1fr 1fr 1fr}
/* emotion engine bars */
.inj{min-height:0;gap:16px}
.eng{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:#fff}
.eng-h{display:flex;align-items:center;gap:9px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--acc);margin-bottom:10px}
.eng-h i{width:9px;height:9px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 0 rgba(37,99,235,.5);animation:ping 1.6s infinite}
@keyframes ping{70%{box-shadow:0 0 0 10px rgba(37,99,235,0)}100%{box-shadow:0 0 0 0 rgba(37,99,235,0)}}
.eb{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:10px;font-size:13.5px;color:var(--mut);padding:3px 0}
.eb i{height:11px;border-radius:9px;background:#eef1f7;overflow:hidden;display:block}.eb u{display:block;height:100%;width:6%;border-radius:9px;background:linear-gradient(90deg,#2563eb,#06b6d4);text-decoration:none}
/* ID card */
.idc{border-radius:22px;background:linear-gradient(160deg,#0b1220,#16265a);color:#e8eefc;padding:26px;box-shadow:0 36px 80px rgba(11,18,32,.3);border:1px solid #243468;display:grid;gap:20px}
.idc-top{display:flex;gap:16px;align-items:center}.idc-ph{width:76px;height:76px;border-radius:16px;background:#1d2d63;display:grid;place-items:center;color:#8fb0ff}.idc-ph svg{fill:currentColor}
.idc-k{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#8fb0ff;margin-bottom:6px}
.idc-n{display:block;font-size:26px;letter-spacing:-.02em}.idc-s{display:block;color:#aab9e0;font-size:14.5px;margin-top:2px}
.idc-g{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.bar{display:grid;grid-template-columns:118px 1fr;align-items:center;gap:8px;font-size:12.5px;color:#c4d0ee;padding:2px 0}
.bar i{display:block;height:7px;border-radius:9px;background:#22336b;position:relative;overflow:hidden}.bar i::after{content:"";position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,#60a5fa,#5eead4);border-radius:9px;transition:width 1.2s cubic-bezier(.2,.8,.2,1)}
.idc.go .bar i::after{width:var(--w)}
.idc-d{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;margin:0}.idc-d div{display:grid;gap:2px}.idc-d dt{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#8fb0ff;font-weight:700}.idc-d dd{margin:0;font-size:14px;color:#e8eefc;line-height:1.45}
.idc-m{border-top:1px solid #2a3b73;padding-top:14px}.idc-m p{font-size:14px;color:#c4d0ee;line-height:1.5}.idc-m b{color:#fff}
/* physics */
.viz-card.phys{aspect-ratio:1200/720;max-width:none;width:100%}
.phys-k{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:20px}.phys-k>div{border:1px solid var(--line);border-radius:14px;padding:16px 18px;background:#fff;display:grid;gap:4px}.phys-k b{font-size:17px}.phys-k span{color:var(--mut);font-size:15px}
.vcap{font-size:15px;padding:6px 14px}
/* maps */
.split.maps{grid-template-columns:.8fr 1.2fr;gap:44px}
.ftiles{grid-template-columns:1fr 1fr;gap:16px}.ftiles article{padding:22px}.ftiles b{font-size:21px}.ftiles span{font-size:17px;line-height:1.5}
.maps .fine{font-size:14px}
/* use-case cards */
.ucs{grid-template-columns:repeat(3,1fr);gap:22px}
.ucw{aspect-ratio:1/1}
.ucc{min-height:100%;max-height:100%;border-radius:20px;box-shadow:0 2px 10px rgba(11,18,32,.05);--c1:#2563eb;--c2:#06b6d4}
.ucc.k1{--c1:#2563eb;--c2:#06b6d4}.ucc.k2{--c1:#7c3aed;--c2:#2563eb}.ucc.k3{--c1:#0d9488;--c2:#06b6d4}.ucc.k4{--c1:#ea580c;--c2:#f59e0b}.ucc.k5{--c1:#db2777;--c2:#7c3aed}.ucc.k6{--c1:#0f172a;--c2:#334155}
.ucc:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(37,99,235,.16)}
.ucw.open .ucc{max-height:640px;transform:none;box-shadow:0 30px 70px rgba(37,99,235,.28);border-color:var(--c1)}
.uct{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:1fr auto;align-content:start;gap:6px;width:100%;padding:0 0 18px}
.uvis{grid-column:1/-1;height:124px;display:grid;place-items:center;color:#fff;background:linear-gradient(120deg,var(--c1),var(--c2));margin-bottom:12px}
.uci{grid-column:1/-1;padding:0 22px;font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--c1)}
.uct b{grid-column:1/-1;padding:0 22px;font-size:20px;line-height:1.25;letter-spacing:-.01em}
.ut{grid-column:1/-1;padding:0 22px;color:var(--mut);font-size:15px;line-height:1.45}
.umore{grid-column:1/-1;margin:8px 22px 0;justify-self:start;display:inline-flex;gap:8px;align-items:center;font-size:13.5px;font-weight:700;color:var(--c1);border:1px solid var(--c1);border-radius:99px;padding:4px 14px}.umore i{font-style:normal;font-size:17px;line-height:1;transition:transform .3s}.ucw.open .umore i{transform:rotate(45deg)}
.ucb{padding:2px 22px 22px}.ucb p{font-size:15.5px;color:var(--mut)}.ucn{color:var(--tx)!important;font-weight:600;border-top:1px solid var(--line);padding-top:12px}
@media(max-width:1080px){.val{grid-template-columns:1fr 1fr}.val-t{grid-column:1/-1}.phys-k{grid-template-columns:1fr 1fr}}
@media(max-width:960px){.split.maps{grid-template-columns:1fr}.ucs{grid-template-columns:1fr 1fr}.idc-g,.idc-d{grid-template-columns:1fr}}
@media(max-width:640px){.val{grid-template-columns:1fr}.ucs{grid-template-columns:1fr}.cmp{grid-template-columns:1fr}.phys-k,.ftiles{grid-template-columns:1fr}.cu-modes{width:150px}.cu-modes em{font-size:10px}.bin{height:360px}.bin pre{height:306px}}
/* use-case cards: base (grid, overlay growth) */
.ucs{display:grid;gap:22px}
.ucw{position:relative}
.ucc{position:absolute;left:0;right:0;top:0;display:block;background:#fff;border:1px solid var(--line);overflow:hidden;transition:max-height .5s cubic-bezier(.2,.8,.2,1),box-shadow .3s,border-color .3s,transform .3s,opacity .8s}
.ucc.rv{transition:opacity .8s,transform .8s cubic-bezier(.2,.7,.2,1),max-height .5s cubic-bezier(.2,.8,.2,1),box-shadow .3s,border-color .3s}
.ucc.rv.in:hover{transform:translateY(-3px)}
.ucw.open{z-index:30}

/* v4: situation thinking panel, physics layout, keynote, use-case link, footer flag */
.inj-th{border:1px solid #d6e2ff;border-radius:14px;padding:12px 16px;background:linear-gradient(160deg,#f3f7ff,#fff);display:grid;gap:4px;height:112px;align-content:start}
.inj-th .inj-l{margin-top:0;color:var(--acc)}.inj-th p{font-size:14.5px;line-height:1.5;color:var(--tx);opacity:0;transform:translateY(6px);transition:opacity .5s,transform .5s}.inj-th p.on{opacity:1;transform:none}
.split.physx{grid-template-columns:1fr 1fr;gap:44px;align-items:start}
.tags{display:flex;flex-wrap:wrap;gap:8px}.tags span{border:1px dashed #b9c8ee;background:#f7faff;color:#1e3a8a;border-radius:99px;padding:6px 14px;font-size:13.5px;font-weight:600}
.ucl{text-align:center;margin-top:34px}
.keynote{margin:0;max-width:900px}
.keynote blockquote{margin:0;padding:6px 0 6px 30px;border-left:4px solid var(--acc)}
.keynote blockquote p{font-size:clamp(20px,2.3vw,28px);line-height:1.5;font-style:italic;font-weight:450;letter-spacing:-.01em;color:var(--tx)}
.keynote figcaption{margin:22px 0 0 34px;display:grid;gap:2px}.keynote figcaption b{font-size:17px}.keynote figcaption span{color:var(--mut);font-size:14.5px}
#teams .panel p{font-size:17px;line-height:1.6;color:var(--tx)}
.uk{vertical-align:-1px;margin-left:6px;border-radius:2px;box-shadow:0 0 0 1px rgba(11,18,32,.15)}
@media(max-width:960px){.split.physx{grid-template-columns:1fr}}
.split.physx{align-items:center}
.split.maps{grid-template-columns:1fr 1fr}.ftiles b{font-size:19px}
/* memory test: status text never changes any block height */
.bin-h{height:45px;align-items:center;gap:12px;white-space:nowrap;overflow:hidden;flex:none}
.bin-h span{overflow:hidden;text-overflow:ellipsis;min-width:0}.bin-h em{flex:none}
.imgs figcaption{height:34px;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:18px}
.proc{height:54px;overflow:hidden;white-space:nowrap}.proc span{max-width:80%;overflow:hidden;text-overflow:ellipsis}
.val-t{min-height:0}
/* terminal: size is locked, nothing inside can change it */
.bin{contain:size layout paint;position:relative;flex:none;min-height:0;max-height:520px}
.bin pre{contain:strict;overflow:hidden}
@media(max-width:640px){.bin{max-height:360px}}

/* v5: Geist type, black-only hero */
@font-face{font-family:"Geist";src:url(/fonts/geist.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
body{font-family:"Geist",Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-feature-settings:"ss01","cv11"}
.hero{background:#fff;min-height:92vh}.hero::after{display:none}
.hero .eyebrow{color:#0b1220;font-weight:600;letter-spacing:.16em;display:flex;align-items:center;gap:12px}
.hero .eyebrow::before{content:"";width:28px;height:2px;background:#0b1220}
.hero h1{font-size:clamp(44px,7vw,92px);line-height:1;letter-spacing:-.05em;font-weight:700;color:#000;max-width:980px}
.hero h1 .grad{background:none;-webkit-background-clip:initial;background-clip:initial;color:#000;display:block;font-weight:700}
.hero .lead{color:#3a3f4a;font-size:20px;line-height:1.55;max-width:640px;letter-spacing:-.01em}.hero .lead b{color:#000}
.hero .btn.pri{background:#000}.hero .btn.gh{border-color:#000;color:#000}.hero .btn.gh:hover{background:#000;color:#fff}
.hero .mini{color:#6b7280}
.hero .proof{border-top:1px solid #000;max-width:1100px}
.hero .proof b{background:none;-webkit-background-clip:initial;background-clip:initial;color:#000;font-weight:600;letter-spacing:-.05em}
.hero .proof span{color:#3a3f4a}

/* v6: hero background back, no scroll needed for the numbers */
#bg.on{opacity:.55}
.hero{min-height:100vh;padding:104px 0 36px}
.hero::after{display:block;background:radial-gradient(ellipse 62% 70% at 26% 50%,rgba(255,255,255,.97) 0,rgba(255,255,255,.85) 55%,rgba(255,255,255,0) 100%)}
.hero h1{font-size:clamp(40px,5.6vw,76px);margin:0 0 20px}
.hero .lead{max-width:780px;font-size:19px}
.hero .cta{margin-top:26px}
.hero .proof{border-top:0;margin-top:30px;padding-top:0}
.hero .proof b{font-size:clamp(34px,4.2vw,56px)}
.hero .proof span{font-size:13.5px}
/* wide section text */
.sec-h{max-width:none}.sec-h .sub{max-width:1000px}
/* use cards: plain information cards, ellipsis, hover or click to read all */
.ucc,.ucc.k1,.ucc.k2,.ucc.k3,.ucc.k4,.ucc.k5,.ucc.k6{--c1:#0b1220;--c2:#0b1220}
.uvis{background:none;color:#0b1220;height:auto;place-items:start;padding:24px 22px 0;margin-bottom:10px}
.uvis svg{width:34px;height:34px}
.uci{color:#8a95a8}
.uct b{font-size:21px}
.ucc{border-color:var(--line)}
.ucw:hover .ucc,.ucw.open .ucc{max-height:640px;border-color:#0b1220;box-shadow:0 24px 60px rgba(11,18,32,.14)}
.ucw:hover{z-index:30}
.ucw .ucb{display:block}
.ucw:not(.open):not(:hover) .ucb p:first-child{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ucw:not(.open):not(:hover) .ucn{display:none}
.ucb{padding:0 22px 22px}.ucb p{color:var(--mut)}
/* why verbll: centred, wide, no blue line */
.sec-h.ctr{max-width:none;text-align:center;margin-bottom:26px}
.keynote{max-width:1040px;margin:0 auto;text-align:center}
.keynote blockquote{border:0;padding:0}
.keynote blockquote p{font-size:clamp(20px,2.2vw,27px)}
.keynote figcaption{margin:26px 0 0;justify-items:center}
@media(max-height:760px){.hero h1{font-size:clamp(38px,5vw,64px)}.hero .lead{font-size:17px}}

/* why verbll: old newspaper type */
#buy .eyebrow,#buy .keynote,#buy .keynote *{font-family:"Times New Roman",Times,"Liberation Serif",Georgia,serif}
#buy .eyebrow{font-size:15px;letter-spacing:.3em;font-weight:700;color:#000;border-top:3px double #000;border-bottom:3px double #000;display:inline-block;padding:8px 22px}
#buy .keynote blockquote p{font-size:clamp(21px,2.3vw,29px);line-height:1.55;font-weight:400;letter-spacing:0;color:#111;font-style:italic}
#buy .keynote figcaption b{font-size:19px;letter-spacing:.04em;text-transform:uppercase}
#buy .keynote figcaption span{font-size:16px;font-style:italic}

/* v7: legal links */
.fine.l a,.legal a{text-decoration:underline;text-underline-offset:3px}.legal{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:14px;color:var(--mut)}.legal a{text-decoration:none}.legal a:hover{color:var(--tx)}
/* v8: consent boxes */
.chk{display:flex!important;flex-direction:row!important;gap:12px;align-items:flex-start;font-size:14px;line-height:1.5;color:var(--mut);cursor:pointer}.chk input{flex:none;width:20px;height:20px;margin-top:2px;accent-color:#0b1220}.chk span{font-weight:400;color:var(--mut)}.chk a{color:var(--tx);text-decoration:underline;text-underline-offset:3px}#wlb:disabled{opacity:.45;cursor:not-allowed}
/* v9: loading screen. The CSS animation hides it after 3 s even if scripts fail; site.js hides it sooner when the page is ready. */
#ld{position:fixed;inset:0;z-index:200;background:#fff;display:grid;place-content:center;justify-items:center;gap:22px;transition:opacity .45s,visibility .45s;animation:ldout .45s 3s forwards}
#ld i{display:block;width:120px;height:2px;background:#e4e8f0;border-radius:2px;overflow:hidden;position:relative}
#ld i::after{content:"";position:absolute;inset:0;width:45%;background:#0b1220;border-radius:2px;animation:ldbar 1.1s ease-in-out infinite}
#ld.done{opacity:0;visibility:hidden;pointer-events:none}
@keyframes ldbar{0%{transform:translateX(-100%)}100%{transform:translateX(260%)}}
@keyframes ldout{to{opacity:0;visibility:hidden;pointer-events:none}}
@media (prefers-reduced-motion:reduce){#ld i::after{animation:none;width:100%}}
.frame .ldf{position:absolute;inset:0;display:grid;place-content:center;color:var(--mut);font-size:15px;background:#fff}
.chk{gap:8px!important;justify-content:flex-start}.chk input{margin:3px 0 0!important}.chk span{flex:1 1 auto}

/* v10: wider form card, consent line sits beside its box, footer on one line, policy links stand out */
.join .two{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
.chk{gap:10px!important;margin-top:0!important;align-items:flex-start!important}.chk input{width:18px!important;height:18px!important;padding:0!important;margin:2px 0 0!important}
.chk a{color:var(--acc);font-weight:600;text-decoration:underline;text-underline-offset:3px;position:relative;z-index:1}.chk a:hover{text-decoration-thickness:2px}
.form{gap:14px}
footer{padding:34px 0}.foot{display:flex!important;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 28px}.foot .fine{margin:0;white-space:nowrap}.foot .legal{font-size:13.5px;gap:6px 18px}
@media(max-width:960px){.join .two{grid-template-columns:1fr}}

/* v11: the memory test has two columns (text, images); the button is never left disabled */
.val{grid-template-columns:1fr 1.1fr}
@media(max-width:1080px){.val{grid-template-columns:1fr}}
#wlb{cursor:pointer}.btn[disabled]{cursor:not-allowed}

/* v12: larger tick boxes at the start of their line */
.chk input{width:22px!important;height:22px!important;margin:0!important;flex:none}.chk{gap:12px!important;align-items:flex-start!important}.chk span{padding-top:1px}
.foot{gap:12px 40px!important}.legal{gap:8px 22px!important}

/* v13: email code step */
.vf[hidden],.form [hidden]{display:none!important}
.vf{display:grid;gap:14px}
.vf .sub{margin:0}
#vcode{font-size:24px;letter-spacing:.35em;text-align:center}

/* v14: first and last name in one row */
.form .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form .row2 label{min-width:0}

/* v15: company details line */
footer .co{padding-top:14px;font-size:12px;line-height:1.6;color:#8a94a3;text-align:center}
