/* Kanb — kanb.io · landing
   Paleta: violeta profundo · Manrope + JetBrains Mono
   Animaciones inspiradas en React Bits (reactbits.dev), reimplementadas en JS vanilla */

:root{
  --bg:#07040e; --bg-2:#0b0718; --panel-a:rgba(23,14,42,.95); --panel-b:rgba(12,8,24,.95);
  --line:rgba(255,255,255,.08); --line-soft:rgba(255,255,255,.06);
  --txt:#f6f3fd; --txt-2:#9a90b6; --txt-3:#8e85a8; --txt-4:#7a719a;
  --v-100:#ede9fe; --v-200:#ddd6fe; --v-300:#c4b5fd; --v-400:#a78bfa;
  --v-500:#8b5cf6; --v-600:#7c3aed; --v-700:#6d28d9; --v-800:#5b21b6; --v-900:#4c1d95;
  --maxw:1180px; --r:16px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:#efeafb;font-family:'Manrope',Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:#c9bdf0;text-decoration:none;transition:color .2s ease}
a:hover{color:#fff}
h1,h2,h3{margin:0}
::selection{background:rgba(139,92,246,.4)}
.wrap{position:relative;width:100%;overflow:hidden;background:var(--bg)}
.container{max-width:var(--maxw);margin:0 auto}
.section{position:relative;z-index:5;padding:170px 24px 0}
.center{text-align:center}

/* ---------- Aurora ---------- */
.aurora{position:absolute;inset:0;height:1500px;pointer-events:none;overflow:hidden}
.aurora span{position:absolute;border-radius:50%;display:block}
.aurora .a1{top:-380px;left:50%;width:1500px;height:900px;margin-left:-750px;background:radial-gradient(closest-side,rgba(124,58,237,.34),transparent 70%);filter:blur(30px);animation:auroraA 18s ease-in-out infinite}
.aurora .a2{top:-220px;left:12%;width:900px;height:620px;background:radial-gradient(closest-side,rgba(76,29,149,.5),transparent 70%);filter:blur(40px);animation:auroraB 22s ease-in-out infinite}
.aurora .a3{top:-160px;right:6%;width:760px;height:520px;background:radial-gradient(closest-side,rgba(167,139,250,.2),transparent 70%);filter:blur(50px);animation:auroraB 26s ease-in-out infinite reverse}
.aurora .fade{position:absolute;inset:0;border-radius:0;background:radial-gradient(120% 60% at 50% 0%,transparent 40%,var(--bg) 100%)}

/* ---------- Nav ---------- */
.nav{position:sticky;top:0;z-index:60;border-bottom:1px solid transparent;transition:background .3s ease,border-color .3s ease,backdrop-filter .3s ease}
.nav.is-stuck{background:rgba(7,4,14,.72);backdrop-filter:blur(14px);border-bottom-color:var(--line-soft)}
.nav-in{max-width:var(--maxw);margin:0 auto;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:10px}
.brand img{width:24px;height:24px}
.brand span{font-size:19px;font-weight:700;letter-spacing:-.02em;color:#fff}
.nav-links{display:flex;align-items:center;gap:4px;padding:5px;border-radius:999px;border:1px solid rgba(255,255,255,.07);background:rgba(18,11,33,.6);backdrop-filter:blur(12px)}
.nav-links a{padding:8px 15px;border-radius:999px;font-size:13.5px;font-weight:500;color:#b6abd4}
.nav-links a:hover{background:rgba(255,255,255,.07);color:#fff}

/* ---------- Buttons ---------- */
.btn{display:inline-block;border-radius:11px;font-size:14.5px;font-weight:600;padding:13px 24px;transition:transform .18s ease,box-shadow .25s ease,background .2s ease}
.btn-sm{padding:10px 18px;border-radius:10px;font-size:13.5px}
.btn-xs{padding:9px 16px;border-radius:9px;font-size:12.5px}
.btn-primary{color:#fff;background:linear-gradient(180deg,var(--v-500),var(--v-700));border:1px solid rgba(196,181,253,.35);box-shadow:0 12px 34px -10px rgba(124,58,237,.9)}
.btn-primary:hover{color:#fff;box-shadow:0 18px 46px -10px rgba(139,92,246,1)}
.btn-ghost{color:#e6e0f7;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.12)}
.btn-ghost:hover{color:#fff;background:rgba(255,255,255,.1)}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.center .btn-row{justify-content:center}

/* ---------- Type ---------- */
.pill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;border:1px solid rgba(168,139,250,.28);background:rgba(139,92,246,.1);font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#d5cbf5}
.pill i{width:5px;height:5px;border-radius:50%;background:var(--v-400);box-shadow:0 0 10px var(--v-400)}
h1.hero-title{margin-top:26px;font-size:clamp(38px,5.6vw,72px);line-height:1.04;letter-spacing:-.035em;font-weight:700;color:#fbfaff;text-wrap:balance}
.h2{font-size:clamp(28px,3.3vw,42px);line-height:1.14;letter-spacing:-.03em;font-weight:700;color:var(--txt)}
.h2-sm{font-size:clamp(26px,3vw,38px);line-height:1.16;letter-spacing:-.03em;font-weight:700;color:var(--txt)}
.lead{margin-top:20px;font-size:15px;line-height:1.7;color:var(--txt-2);text-wrap:pretty}
.hero-lead{margin:22px auto 0;max-width:520px;font-size:16px;line-height:1.65;color:var(--txt-2);text-wrap:pretty}
.mono{font-family:'JetBrains Mono',monospace}

/* ---------- Hero ---------- */
.hero{position:relative;z-index:10;padding:96px 24px 0;text-align:center}
.hero-in{max-width:900px;margin:0 auto}
.glowline{position:relative;margin:66px auto 0;max-width:880px;height:2px}
.glowline::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(167,139,250,.15) 12%,rgba(196,181,253,.95) 50%,rgba(167,139,250,.15) 88%,transparent);animation:linePulse 4s ease-in-out infinite}
.glowline::after{content:"";position:absolute;left:50%;top:-70px;width:620px;height:150px;margin-left:-310px;border-radius:50%;background:radial-gradient(closest-side,rgba(139,92,246,.42),transparent 72%);filter:blur(22px)}

/* ---------- Dashboard mock (TiltedCard) ---------- */
.tilt{position:relative;margin-top:56px;perspective:2000px}
.tilt-inner{position:relative;transform:rotateX(19deg) rotateZ(-11deg);transform-style:preserve-3d;transition:transform .35s cubic-bezier(.2,.7,.3,1);will-change:transform}
.tilt-fade{position:absolute;left:0;right:0;bottom:-120px;height:260px;background:linear-gradient(180deg,transparent,var(--bg) 70%);pointer-events:none}
.dash{position:relative;border-radius:18px;border:1px solid rgba(255,255,255,.09);background:linear-gradient(155deg,#150d29,#0b0718 60%);box-shadow:0 60px 130px -40px rgba(88,28,235,.55),inset 0 0 0 1px rgba(139,92,246,.08);overflow:hidden}
.dash-body{display:flex;min-height:520px}
.dash-side{width:200px;flex:none;border-right:1px solid var(--line-soft);padding:18px 14px;background:rgba(255,255,255,.012)}
.dash-brand{display:flex;align-items:center;gap:8px;padding:0 6px 18px}
.dash-brand img{width:16px;height:16px;opacity:.9}
.dash-brand b{font-size:13px;color:#fff}
.side-nav{display:flex;flex-direction:column;gap:3px}
.side-nav div{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:8px;font-size:11.5px;color:var(--txt-3)}
.side-nav div i{width:12px;height:12px;border-radius:3px;background:rgba(255,255,255,.18)}
.side-nav .on{background:rgba(139,92,246,.16);border:1px solid rgba(167,139,250,.2);color:#efeafb;font-weight:600}
.side-nav .on i{background:var(--v-400)}
.side-card{margin-top:22px;padding:11px;border-radius:10px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.02)}
.side-card .k{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--txt-4)}
.bar{margin-top:8px;height:4px;border-radius:99px;background:rgba(255,255,255,.08)}
.bar span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--v-600),var(--v-300))}
.dash-main{flex:1;padding:18px 20px;min-width:0}
.dash-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.dash-head .t{font-size:15px;font-weight:700;color:#fbfaff}
.dash-head .s{margin-top:3px;font-size:11px;color:#847b9f}
.avatars{display:flex}
.avatars i{width:22px;height:22px;border-radius:50%;border:2px solid #120b23;background:var(--v-600)}
.avatars i+i{margin-left:-7px}
.avatars i:nth-child(2){background:var(--v-400)}
.avatars i:nth-child(3){background:var(--v-900)}
.chip{padding:6px 11px;border-radius:8px;font-size:11px;font-weight:600;color:#fff;background:linear-gradient(180deg,var(--v-500),var(--v-700))}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px}
.kpi{padding:11px 12px;border-radius:10px;border:1px solid var(--line-soft);background:rgba(255,255,255,.02)}
.kpi .k{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--txt-4)}
.kpi .v{margin-top:5px;font-size:19px;font-weight:700;color:#fbfaff}
.kpi .v.v1{color:var(--v-300)}
.kpi .v.v2{color:var(--v-400)}
.cols{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
.col{display:flex;flex-direction:column;gap:8px}
.col-head{display:flex;align-items:center;justify-content:space-between;padding:0 2px;font-size:11px;font-weight:600;color:#b6abd4}
.col-head em{font-style:normal;font-size:10px;color:#6f6790}
.task{padding:10px;border-radius:9px;border:1px solid var(--line-soft);background:rgba(255,255,255,.028)}
.task .tag{height:4px;border-radius:99px;background:rgba(255,255,255,.16)}
.task .tag.p{background:var(--v-600)}
.task .tag.p2{background:var(--v-900)}
.task .tag.p3{background:var(--v-400)}
.task .n{margin-top:8px;font-size:11px;font-weight:600;color:#e4dff3;line-height:1.35}
.task.done{opacity:.75}
.task.active{border-color:rgba(167,139,250,.28);background:linear-gradient(180deg,rgba(139,92,246,.22),rgba(139,92,246,.06));box-shadow:0 10px 26px -12px rgba(124,58,237,.9)}
.task.active .n{color:#fff;font-weight:700}
.task .sub{margin-top:9px;display:flex;align-items:center;gap:6px;font-size:9.5px;color:#d7cff2}
.task .sub i{width:16px;height:16px;border-radius:50%;background:var(--v-400)}
.float{position:absolute;border-radius:14px;border:1px solid rgba(255,255,255,.11);background:linear-gradient(160deg,#1b1132,#0d0820);box-shadow:0 40px 90px -30px rgba(0,0,0,.9)}
.float-1{right:-3%;bottom:-14%;width:320px;padding:14px 16px;transform:translateZ(90px);animation:floaty 7s ease-in-out infinite}
.float-1 .h{display:flex;align-items:center;justify-content:space-between;font-size:11.5px;font-weight:600;color:#e4dff3}
.float-1 .h em{font-style:normal;font-size:9.5px;color:var(--txt-3);font-family:'JetBrains Mono',monospace}
.spark{display:flex;align-items:flex-end;gap:6px;height:74px;margin-top:14px}
.spark i{flex:1;border-radius:4px 4px 2px 2px;background:linear-gradient(180deg,var(--v-600),#3b1177)}
.spark i:nth-child(4){background:linear-gradient(180deg,var(--v-400),var(--v-900))}
.spark i:nth-child(6){background:linear-gradient(180deg,var(--v-300),var(--v-700))}
.spark i:nth-child(7){background:linear-gradient(180deg,var(--v-200),var(--v-600))}
.float-1 .f{margin-top:12px;display:flex;align-items:baseline;gap:7px}
.float-1 .f b{font-size:20px;color:#fff}
.float-1 .f span{font-size:10.5px;color:var(--v-400)}
.float-2{left:-4%;top:14%;width:194px;padding:13px 14px;border-radius:12px;transform:translateZ(130px);animation:floaty 9s ease-in-out infinite reverse}
.float-2 .k{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--txt-4)}
.float-2 .n{margin-top:9px;font-size:12px;font-weight:600;color:#fff;line-height:1.4}
.float-2 .s{margin-top:11px;display:flex;align-items:center;gap:7px;font-size:10px;color:var(--txt-2)}
.float-2 .s i{width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 8px #4ade80}

/* ---------- Split rows ---------- */
.row{display:flex;flex-wrap:wrap;align-items:center;gap:64px}
.row.rev{flex-wrap:wrap-reverse}
.row-txt{flex:1 1 380px;min-width:300px}
.row-txt .lead{max-width:420px}
.row-card{flex:1 1 440px;min-width:320px}

/* ---------- Cards / Spotlight ---------- */
.card{position:relative;border-radius:var(--r);border:1px solid var(--line);background:linear-gradient(180deg,var(--panel-a),var(--panel-b));overflow:hidden;transition:border-color .3s ease}
.card>.inner{position:relative}
.spot{position:absolute;inset:0;opacity:0;transition:opacity .35s ease;pointer-events:none;background:radial-gradient(280px circle at var(--mx,50%) var(--my,50%),rgba(139,92,246,.22),transparent 70%)}
.card.is-hot{border-color:rgba(167,139,250,.3)}
.pad{padding:18px}
.card-h{display:flex;align-items:center;justify-content:space-between}
.card-h .t{font-size:13px;font-weight:700;color:#f3f0fb}
.card-h .s{margin-top:3px;font-size:10.5px;color:#847b9f}
.tagx{padding:5px 10px;border-radius:7px;font-size:10.5px;color:#c9bdf0;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.03)}
.legend{display:flex;gap:14px;margin-top:14px;font-size:10.5px;color:var(--txt-2)}
.legend span{display:flex;align-items:center;gap:6px}
.legend i{width:8px;height:8px;border-radius:2px;background:var(--v-300)}
.legend span+span i{background:var(--v-800)}
.chart{position:relative;margin-top:12px;height:190px;border-radius:12px;border:1px solid rgba(255,255,255,.05);background:linear-gradient(180deg,rgba(139,92,246,.07),transparent 60%);overflow:hidden}
.chart .grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px);background-size:100% 38px}
.chart svg{position:absolute;inset:0;width:100%;height:100%}
.chart .flag{position:absolute;left:56%;top:26%;padding:6px 9px;border-radius:8px;background:linear-gradient(180deg,var(--v-500),var(--v-700));box-shadow:0 8px 22px -8px rgba(124,58,237,1)}
.chart .flag em{display:block;font-style:normal;font-size:9.5px;color:#e9e3ff}
.chart .flag b{font-size:12px;color:#fff}
.axis{display:flex;justify-content:space-between;margin-top:10px;font-family:'JetBrains Mono',monospace;font-size:9.5px;color:#6f6790}
.journey{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:20px;align-items:end;height:200px}
.journey>div{display:flex;flex-direction:column;justify-content:flex-end;gap:7px}
.journey b{display:block;border-radius:8px;background:linear-gradient(180deg,var(--v-800),#3b1177);border:1px solid rgba(167,139,250,.2)}
.journey .g1{background:linear-gradient(180deg,var(--v-600),var(--v-900));border-color:rgba(196,181,253,.28)}
.journey .g2{background:linear-gradient(180deg,var(--v-400),var(--v-700));border-color:rgba(221,214,254,.35);box-shadow:0 14px 34px -14px rgba(139,92,246,.9)}
.journey .g3{background:linear-gradient(180deg,var(--v-200),var(--v-600));border-color:rgba(255,255,255,.35);box-shadow:0 16px 40px -14px rgba(167,139,250,1)}
.axis4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px;font-family:'JetBrains Mono',monospace;font-size:9.5px;color:#6f6790;text-align:center}

/* ---------- Feature grid ---------- */
.feats{margin-top:72px;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));border-top:1px solid var(--line-soft)}
.feat{padding:44px 28px;border-bottom:1px solid var(--line-soft);border-right:1px solid var(--line-soft)}
.feat:last-child{border-right:0}
.glyph{width:44px;height:44px;margin:0 auto;border-radius:12px;border:1px solid rgba(167,139,250,.22);background:rgba(139,92,246,.12);display:grid;place-items:center;box-shadow:0 10px 26px -12px rgba(124,58,237,.8)}
.glyph .quad{display:grid;grid-template-columns:repeat(2,7px);gap:3px}
.glyph .quad i{width:7px;height:7px;border-radius:2px;background:rgba(221,214,254,.35)}
.glyph .quad i:first-child,.glyph .quad i:last-child{background:var(--v-200)}
.glyph .bars{display:flex;flex-direction:column;gap:3px;align-items:flex-start}
.glyph .bars i{height:3px;border-radius:2px;background:var(--v-200)}
.glyph .bars i:nth-child(1){width:16px}
.glyph .bars i:nth-child(2){width:10px;background:rgba(221,214,254,.5)}
.glyph .bars i:nth-child(3){width:13px;background:rgba(221,214,254,.75)}
.glyph .ring{width:16px;height:16px;border-radius:50%;border:3px solid var(--v-200);border-right-color:rgba(221,214,254,.3)}
.glyph .dia{width:13px;height:13px;background:var(--v-200);transform:rotate(45deg);border-radius:2px}
.glyph .dots{display:flex;gap:4px;align-items:center}
.glyph .dots i{width:6px;height:6px;border-radius:50%;background:rgba(221,214,254,.4)}
.glyph .dots i:nth-child(2){width:8px;height:8px;background:var(--v-200)}
.feat h3{margin-top:20px;font-size:15px;font-weight:700;color:#f3f0fb}
.feat p{margin:10px auto 0;max-width:250px;font-size:13px;line-height:1.65;color:var(--txt-3)}

/* ---------- Stats bento ---------- */
.bento{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.bento .stack{display:grid;gap:16px}
.bento .duo{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.stat-big{padding:32px;display:flex;flex-direction:column;justify-content:space-between;min-height:290px}
.stat-big .num{font-size:clamp(38px,4.6vw,58px);font-weight:700;letter-spacing:-.04em;color:#fff}
.stat-big .t{font-size:15px;font-weight:700;color:#f3f0fb}
.stat-big p{margin:9px 0 0;max-width:330px;font-size:13px;line-height:1.65;color:var(--txt-3)}
.dotfield{position:absolute;right:-20px;bottom:-20px;width:220px;height:180px;opacity:.5;background-image:radial-gradient(rgba(167,139,250,.55) 1px,transparent 1px);background-size:11px 11px;-webkit-mask-image:radial-gradient(closest-side,#000,transparent);mask-image:radial-gradient(closest-side,#000,transparent)}
.stat{padding:26px 28px}
.stat .num{font-size:34px;font-weight:700;letter-spacing:-.03em;color:#fff}
.stat .t{margin-top:8px;font-size:14px;font-weight:700;color:#f3f0fb}
.stat p{margin:7px 0 0;font-size:12.5px;line-height:1.6;color:var(--txt-3)}
.stat-s{padding:24px}
.stat-s .num{font-size:30px;font-weight:700;letter-spacing:-.03em;color:#fff}
.stat-s .t{margin-top:8px;font-size:13px;font-weight:600;color:#c9c1de}

/* ---------- One place ---------- */
.op{margin-top:52px;display:flex;flex-wrap:wrap;gap:48px;align-items:stretch}
.op-visual{flex:1 1 400px;min-width:300px;position:relative;border-radius:var(--r);border:1px solid var(--line);background:radial-gradient(120% 90% at 20% 0%,rgba(124,58,237,.35),rgba(12,8,24,.98));padding:24px;overflow:hidden;min-height:380px}
.op-visual .mesh{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:34px 34px}
.op-card{position:relative;width:230px;margin-top:56px;border-radius:14px;border:1px solid rgba(255,255,255,.14);background:linear-gradient(160deg,rgba(30,19,54,.96),rgba(13,8,30,.96));box-shadow:0 30px 70px -26px rgba(0,0,0,.95);padding:16px 18px}
.op-card .k{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#8a80ab}
.op-card .v{margin-top:8px;font-size:30px;font-weight:700;letter-spacing:-.03em;color:#fff}
.up{margin-top:10px;display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:99px;background:rgba(74,222,128,.12);border:1px solid rgba(74,222,128,.25);font-size:10.5px;color:#86efac}
.up i{width:5px;height:5px;border-radius:50%;background:#4ade80}
.op-list{position:relative;margin-top:20px;display:flex;flex-direction:column;gap:9px;max-width:270px}
.op-list div{display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:rgba(10,6,20,.6);font-size:11.5px;color:#cec7e3}
.op-list i{width:7px;height:7px;border-radius:2px;background:var(--v-400)}
.op-list div:nth-child(2) i{background:var(--v-600)}
.op-list div:nth-child(3) i{background:var(--v-900)}
.op-steps{flex:1 1 380px;min-width:300px;display:flex;flex-direction:column;justify-content:center}
.op-step{padding:26px 0 26px 26px;border-left:2px solid rgba(255,255,255,.08)}
.op-step.on{border-left-color:var(--v-400)}
.op-step h3{font-size:15.5px;font-weight:700;color:var(--txt)}
.op-step p{margin:11px 0 0;font-size:13.5px;line-height:1.75;color:var(--txt-3);text-wrap:pretty}

/* ---------- Steps (StarBorder) ---------- */
.steps{margin-top:56px;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;text-align:left}
.star{position:relative;border-radius:var(--r);padding:1px;overflow:hidden;background:rgba(255,255,255,.07)}
.star .ray{position:absolute;top:50%;left:50%;width:200%;height:200%;transform:translate(-50%,-50%);background:conic-gradient(from 0deg,transparent 0deg,transparent 300deg,rgba(196,181,253,.9) 340deg,transparent 360deg);animation:spin360 6s linear infinite;opacity:0;transition:opacity .3s ease}
.star:hover .ray{opacity:1}
.star .face{position:relative;border-radius:15px;background:linear-gradient(180deg,rgba(23,14,42,.98),rgba(11,7,22,.98));padding:26px;height:100%}
.step-h{display:flex;align-items:center;justify-content:space-between}
.step-ico{width:38px;height:38px;border-radius:11px;border:1px solid rgba(167,139,250,.22);background:rgba(139,92,246,.12);display:grid;place-items:center}
.step-ico .sq{width:12px;height:12px;border-radius:3px;background:var(--v-200)}
.step-ico .two{display:flex;gap:3px}
.step-ico .two i{width:5px;height:12px;border-radius:2px;background:var(--v-200)}
.step-ico .two i:last-child{background:rgba(221,214,254,.4)}
.step-ico .dia{width:12px;height:12px;background:var(--v-200);transform:rotate(45deg);border-radius:2px}
.step-n{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.12em;color:var(--txt-4)}
.star h3{margin-top:20px;font-size:16px;font-weight:700;color:var(--txt)}
.star p{margin:10px 0 0;font-size:13px;line-height:1.7;color:var(--txt-3)}
.star .btn{margin-top:20px}

/* ---------- CTA ---------- */
.cta{position:relative;max-width:var(--maxw);margin:0 auto;border-radius:22px;border:1px solid rgba(255,255,255,.09);background:radial-gradient(100% 130% at 50% 0%,rgba(76,29,149,.55),rgba(9,5,18,.98));overflow:hidden;padding:96px 32px;text-align:center}
.cta .sq{position:absolute;top:0;width:300px;height:100%;opacity:.35;background-image:linear-gradient(rgba(167,139,250,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(167,139,250,.18) 1px,transparent 1px);background-size:26px 26px}
.cta .sq-l{left:0;-webkit-mask-image:linear-gradient(90deg,#000,transparent);mask-image:linear-gradient(90deg,#000,transparent)}
.cta .sq-r{right:0;-webkit-mask-image:linear-gradient(270deg,#000,transparent);mask-image:linear-gradient(270deg,#000,transparent)}
.cta .halo{position:absolute;left:50%;bottom:-140px;width:760px;height:300px;margin-left:-380px;border-radius:50%;background:radial-gradient(closest-side,rgba(139,92,246,.5),transparent 70%);filter:blur(30px)}
.cta h2{font-size:clamp(32px,4.4vw,56px);line-height:1.08;letter-spacing:-.035em;font-weight:700;color:#fbfaff;text-wrap:balance}
.grad{background:linear-gradient(90deg,var(--v-300),var(--v-500),#e9d5ff,var(--v-300));background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:gradText 5s linear infinite}
.cta p{margin:20px auto 0;max-width:470px;font-size:15px;line-height:1.7;color:#a89ec4}
.fine{margin-top:22px;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.1em;color:var(--txt-4)}

/* ---------- Footer ---------- */
.footer{position:relative;z-index:5;margin-top:150px;padding:0 24px 40px}
.foot-line{position:relative;max-width:var(--maxw);margin:0 auto;height:2px}
.foot-line::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(167,139,250,.1) 15%,rgba(196,181,253,.85) 50%,rgba(167,139,250,.1) 85%,transparent)}
.foot-line::after{content:"";position:absolute;left:50%;top:-60px;width:820px;height:180px;margin-left:-410px;border-radius:50%;background:radial-gradient(closest-side,rgba(139,92,246,.4),transparent 72%);filter:blur(26px)}
.foot-in{max-width:var(--maxw);margin:0 auto;padding-top:62px;display:flex;flex-wrap:wrap;gap:56px;justify-content:space-between}
.foot-brand{flex:0 1 300px}
.foot-brand p{margin:14px 0 0;font-size:13px;line-height:1.6;color:#7d7499}
.foot-brand .site{display:inline-block;margin-top:14px;font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--v-400)}
.social{display:flex;gap:9px;margin-top:22px}
.social a{width:34px;height:34px;border-radius:9px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.03);display:grid;place-items:center;font-size:12px;font-weight:700;color:#b6abd4;transition:background .2s ease,color .2s ease}
.social a:hover{background:rgba(139,92,246,.18);color:#fff}
.foot-cols{display:flex;flex-wrap:wrap;gap:64px}
.foot-cols b{font-size:12.5px;color:#efeafb}
.foot-cols nav{display:flex;flex-direction:column;gap:11px;margin-top:16px;font-size:13px}
.copy{max-width:var(--maxw);margin:56px auto 0;padding-top:24px;border-top:1px solid var(--line-soft);text-align:center;font-size:12px;color:#6b6389}

/* ---------- Animation utilities ---------- */
[data-reveal].is-hidden{opacity:0;transform:translateY(26px)}
[data-reveal].is-in{opacity:1;transform:none;transition:opacity .85s cubic-bezier(.16,1,.3,1),transform .85s cubic-bezier(.16,1,.3,1)}
.shine{background-image:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.85) 45%,transparent 70%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;animation:shine 4.5s linear infinite}
.split-w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.06em}
.split-i{display:inline-block;transform:translateY(105%) rotate(3deg);opacity:0;transition:transform .95s cubic-bezier(.16,1,.3,1),opacity .8s ease}
.split-i.in{transform:none;opacity:1}

@keyframes auroraA{0%{transform:translate3d(-12%,-6%,0) scale(1)}50%{transform:translate3d(10%,4%,0) scale(1.18)}100%{transform:translate3d(-12%,-6%,0) scale(1)}}
@keyframes auroraB{0%{transform:translate3d(8%,4%,0) scale(1.1)}50%{transform:translate3d(-10%,-8%,0) scale(.92)}100%{transform:translate3d(8%,4%,0) scale(1.1)}}
@keyframes shine{0%{background-position:-140% 0}100%{background-position:240% 0}}
@keyframes spin360{to{transform:rotate(360deg)}}
@keyframes floaty{0%{transform:translateY(0)}50%{transform:translateY(-10px)}100%{transform:translateY(0)}}
@keyframes linePulse{0%,100%{opacity:.55}50%{opacity:1}}
@keyframes gradText{0%{background-position:0% 50%}100%{background-position:200% 50%}}

/* ---------- Responsive ---------- */
@media (max-width:1080px){
  .float-1{right:-2%;bottom:-18%;width:280px}
  .float-2{display:none}
}
@media (max-width:900px){
  .nav-links{display:none}
  .section{padding-top:120px}
  .row,.op{gap:40px}
  .tilt-inner{transform:none!important}
  .dash-body{min-height:0}
  .dash-side{display:none}
  .cols{grid-template-columns:repeat(2,1fr)}
  .float-1{position:relative;right:auto;bottom:auto;width:100%;margin-top:16px;transform:none;animation:none}
  .feat{border-right:0}
  .bento .duo{grid-template-columns:1fr}
}
@media (max-width:560px){
  .hero{padding-top:64px}
  .kpis{grid-template-columns:repeat(2,1fr)}
  .cols{grid-template-columns:1fr}
  .cta{padding:64px 20px;border-radius:18px}
  .stat-big{min-height:0}
  .foot-cols{gap:36px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  [data-reveal]{opacity:1!important;transform:none!important}
  .split-i{opacity:1!important;transform:none!important}
}

/* ---------- Agent marquee + platform downloads ---------- */
.download-cta{position:relative;z-index:2;margin-top:34px}
.download-cta__row{justify-content:center;margin-top:0}
.platform-download,.github-download{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.download-symbol{display:inline-grid;width:18px;height:18px;place-items:center;border-radius:5px;background:rgba(255,255,255,.16);font-family:'JetBrains Mono',monospace;font-size:14px;line-height:1}
.download-options{position:relative;display:inline-block;margin-top:14px;color:var(--txt-3)}
.download-options summary{display:flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;list-style:none;font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.04em;color:#9f95ba;transition:color .2s ease}
.download-options summary::-webkit-details-marker{display:none}
.download-options summary:hover{color:#f3efff}
.download-options summary:focus-visible{outline:2px solid var(--v-300);outline-offset:5px;border-radius:3px}
.download-options[open] summary span{transform:rotate(180deg)}
.download-options summary span{transition:transform .2s ease}
.download-options__list{position:absolute;left:50%;z-index:20;display:grid;min-width:218px;grid-template-columns:1fr;gap:3px;margin-top:10px;padding:7px;transform:translateX(-50%);border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(16,9,31,.97);box-shadow:0 22px 42px -22px rgba(0,0,0,.95);text-align:left}
.download-options__list a{padding:9px 10px;border-radius:7px;font-size:11.5px;color:#c9bdf0}
.download-options__list a:hover,.download-options__list a:focus-visible{background:rgba(139,92,246,.16);color:#fff;outline:none}
.agent-marquee{position:relative;z-index:2;max-width:720px;margin:50px auto 0;padding:12px 0;border-top:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07)}
.agent-marquee__sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.agent-marquee__mask{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.agent-marquee__track{display:flex;width:max-content;animation:agentMarquee 24s linear infinite;will-change:transform}
.agent-marquee__group{display:flex;flex:none;align-items:center;gap:42px;padding-right:42px}
.agent-mark{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:rgba(210,201,235,.55);transition:color .25s ease}
.agent-marquee:hover .agent-mark{color:rgba(230,223,250,.88)}
@keyframes agentMarquee{to{transform:translateX(-50%)}}

@media (max-width:560px){
  .download-cta{margin-top:28px}
  .download-cta__row{flex-direction:column;align-items:stretch;margin-inline:auto;max-width:280px}
  .download-cta__row .btn{text-align:center}
  .download-options{margin-top:16px}
  .download-options__list{position:relative;left:auto;width:min(280px,calc(100vw - 40px));margin:12px auto 0;transform:none}
  .agent-marquee{margin-top:38px}
  .agent-marquee__group{gap:28px;padding-right:28px}
  .agent-mark{font-size:10.5px}
}

@media (prefers-reduced-motion:reduce){
  .agent-marquee__mask{overflow:visible;-webkit-mask-image:none;mask-image:none}
  .agent-marquee__track{width:100%;flex-wrap:wrap;justify-content:center;animation:none!important;transform:none!important}
  .agent-marquee__group{flex-wrap:wrap;justify-content:center;gap:12px;padding:0}
  .agent-marquee__group+ .agent-marquee__group{display:none}
}
