/* ============================================================
   Neurowise — redesigned design system
   Modern tech / AI · violet→azure→cyan accents · dark heroes
   ============================================================ */
:root{
  /* neutrals (cool, low-chroma) */
  --ink:#14161f;--ink-2:#3c4250;--muted:#6a7382;--line:#e8ebf2;
  --bg:#fcfcfe;--bg-soft:#f4f5fb;
  /* dark canvas */
  --d1:#0b0d1a;--d2:#11142a;--d3:#171b38;
  --card-d:#0d1022;--line-d:#23284a;
  /* accents (shared chroma, varied hue) */
  --accent:#6d5efc;--accent-2:#2f8bfb;--accent-3:#22d3ee;
  --accent-soft:rgba(109,94,252,.14);
  --grad:linear-gradient(100deg,#6d5efc,#2f8bfb 52%,#22d3ee);
  --grad-soft:linear-gradient(135deg,rgba(109,94,252,.16),rgba(34,211,238,.05));
  /* shape */
  --radius:18px;--radius-lg:30px;--maxw:1180px;
  --shadow:0 30px 70px -34px rgba(24,22,60,.30);
  --shadow-sm:0 12px 30px -18px rgba(24,22,60,.28);
  --shadow-accent:0 18px 40px -16px rgba(109,94,252,.5);
  /* motion */
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-in-out:cubic-bezier(.76,0,.24,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Plus Jakarta Sans',system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden;letter-spacing:-.005em}
h1,h2,h3,h4{font-family:'Space Grotesk','Plus Jakarta Sans',sans-serif;line-height:1.06;margin:0;color:var(--ink);letter-spacing:-.025em;font-weight:700}
p{margin:0}
a{color:inherit;text-decoration:none}
img{max-width:100%}
::selection{background:rgba(109,94,252,.22)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.eyebrow{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);display:inline-flex;align-items:center;gap:9px}
.eyebrow::before{content:"";width:22px;height:1.5px;background:currentColor;opacity:.6}
.accent{color:var(--accent)}
.muted{color:var(--muted)}

/* scroll progress */
#progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--grad);z-index:1000;transition:width .08s linear;box-shadow:0 0 14px rgba(109,94,252,.6)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:9px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:15px;padding:14px 26px;border-radius:100px;cursor:pointer;border:none;transition:transform .3s var(--ease-out),box-shadow .3s var(--ease-out),background .25s,border-color .25s,color .25s;white-space:nowrap;position:relative;overflow:hidden}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--grad);background-size:160% 160%;color:#fff;box-shadow:var(--shadow-accent)}
.btn-primary::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .6s var(--ease-out)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 24px 50px -16px rgba(109,94,252,.62)}
.btn-primary:hover::after{transform:translateX(120%)}
.btn-primary:active{transform:translateY(0) scale(.98)}
.btn-ghost{background:rgba(255,255,255,.04);color:var(--ink);border:1.5px solid var(--line)}
.btn-ghost:hover{border-color:var(--ink);transform:translateY(-2px)}
.btn-light{background:#fff;color:var(--ink);box-shadow:var(--shadow-sm)}
.btn-light:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.btn-arrow{transition:transform .3s var(--ease-out)}
.btn:hover .btn-arrow{transform:translateX(5px)}

/* ---------- header / nav ---------- */
header{position:fixed;top:0;left:0;right:0;z-index:900}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;background:rgba(252,252,254,.7);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);border:1px solid rgba(255,255,255,.5);border-radius:100px;padding:9px 12px 9px 22px;margin-top:16px;transition:background .35s ease,box-shadow .35s ease,margin .35s ease,border-color .35s ease}
header.scrolled .nav-inner{background:rgba(252,252,254,.92);border-color:var(--line);box-shadow:var(--shadow-sm);margin-top:10px}
.brand{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:21px;letter-spacing:-.04em;display:flex;align-items:center;gap:10px}
.brand .dot{width:11px;height:11px;border-radius:50%;background:var(--grad);box-shadow:0 0 0 4px var(--accent-soft);animation:pulse 3.2s var(--ease-in-out) infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 4px var(--accent-soft)}50%{box-shadow:0 0 0 7px rgba(109,94,252,.07)}}
.brand .logo-mark{width:27px;height:27px;flex-shrink:0;display:block;overflow:visible;filter:drop-shadow(0 2px 6px rgba(109,94,252,.35))}
.foot-grid .brand .logo-mark{width:30px;height:30px}
.brand .w{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.brand .logo-mark .nd{transform-box:fill-box;transform-origin:center;animation:twinkle 3.4s var(--ease-in-out) infinite}
.brand .logo-mark .n2{animation-delay:.5s}
.brand .logo-mark .n3{animation-delay:1s}
.brand .logo-mark .n4{animation-delay:1.5s}
.brand:hover .logo-mark .core{animation:corepulse 1.1s var(--ease-out)}
.brand .logo-mark .core{transform-box:fill-box;transform-origin:center}
@keyframes twinkle{0%,100%{opacity:1}50%{opacity:.4;transform:scale(.82)}}
@keyframes corepulse{0%{transform:scale(1)}40%{transform:scale(1.22)}100%{transform:scale(1)}}
.menu{display:flex;gap:2px;align-items:center}
.menu a{font-size:15px;font-weight:500;color:var(--ink-2);padding:9px 14px;border-radius:100px;transition:color .2s,background .2s;white-space:nowrap}
.menu a:hover,.menu a.active{color:var(--ink);background:var(--bg-soft)}
.menu a.active{color:var(--accent)}
.burger{display:none;place-items:center;width:44px;height:44px;border-radius:13px;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:18px}
.menu .has-drop{position:relative;display:flex;align-items:center}
.menu .has-drop>a{display:inline-flex;align-items:center;gap:6px}
.menu .caret{font-size:10px;color:var(--muted);transition:transform .25s var(--ease-out)}
.menu .has-drop:hover .caret{transform:rotate(180deg)}
.menu .has-drop:hover>a{color:var(--accent);background:var(--bg-soft)}
.drop{position:absolute;top:calc(100% + 4px);left:50%;transform:translateX(-50%) translateY(10px);background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:8px;min-width:280px;opacity:0;visibility:hidden;transition:opacity .24s var(--ease-out),transform .24s var(--ease-out),visibility .24s;display:flex;flex-direction:column;gap:2px;z-index:60}
.drop::before{content:"";position:absolute;top:-12px;left:0;right:0;height:12px}
.has-drop:hover .drop{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.drop a{display:flex;align-items:center;gap:13px;padding:11px 12px;border-radius:14px;font-size:14.5px;font-weight:600;color:var(--ink);transition:background .2s,transform .2s var(--ease-out)}
.drop a:hover{background:var(--bg-soft);transform:translateX(3px)}
.drop a .di{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-size:17px;background:var(--grad-soft);flex-shrink:0}
.drop a .dt{display:flex;flex-direction:column;line-height:1.3}
.drop a .dt small{font-size:12px;color:var(--muted);font-weight:400}

/* ---------- hero (dark, dramatic) ---------- */
.hero{position:relative;overflow:hidden;background:var(--d1);color:#fff}
.hero.home{padding:200px 0 130px}
.hero.page{padding:170px 0 90px}
.hero-bg{position:absolute;inset:0;z-index:0;background:
  radial-gradient(50% 50% at 78% 8%,rgba(109,94,252,.34),transparent 60%),
  radial-gradient(46% 50% at 6% 22%,rgba(34,211,238,.20),transparent 60%),
  radial-gradient(60% 60% at 50% 110%,rgba(47,139,251,.22),transparent 60%),
  linear-gradient(180deg,var(--d1),var(--d2) 60%,var(--d1))}
.hero-bg::after{content:"";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:54px 54px;mask:radial-gradient(70% 60% at 50% 30%,#000,transparent 80%);-webkit-mask:radial-gradient(70% 60% at 50% 30%,#000,transparent 80%);opacity:.5}
.hero-mesh{position:absolute;inset:-20%;z-index:0;pointer-events:none;background:
  radial-gradient(40% 40% at 20% 30%,rgba(109,94,252,.5),transparent 60%),
  radial-gradient(35% 35% at 80% 40%,rgba(34,211,238,.4),transparent 60%),
  radial-gradient(40% 40% at 60% 80%,rgba(47,139,251,.42),transparent 60%);
  filter:blur(40px);opacity:.55;animation:mesh 18s var(--ease-in-out) infinite;will-change:transform}
@keyframes mesh{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(4%,-3%) scale(1.08)}66%{transform:translate(-3%,4%) scale(.96)}}
#neural{position:absolute;inset:0;width:100%;height:100%;z-index:1;opacity:.9}
.blob{display:none}
.hero .inner{position:relative;z-index:3;max-width:820px}
.hero.home .inner{max-width:740px}
.hero .eyebrow{color:#a9b6ff}
.hero h1{font-weight:700;margin:20px 0;color:#fff}
.hero.home h1{font-size:clamp(40px,5.8vw,76px);letter-spacing:-.035em}
.hero.page h1{font-size:clamp(34px,4.8vw,60px)}
.hero h1 .grad{background:linear-gradient(100deg,#9d8bff,#43a5ff 50%,#3ee0f0);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 7s linear infinite}
@keyframes shimmer{to{background-position:200% center}}
.hero .lead{font-size:clamp(17px,1.7vw,21px);color:#c2c9e0;max-width:640px;margin-bottom:34px;font-weight:400}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.hero .btn-ghost{color:#fff;border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.04)}
.hero .btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.09)}
.hero-badges{display:flex;gap:30px;margin-top:46px;flex-wrap:wrap}
.hbadge{display:flex;align-items:center;gap:13px}
.hbadge .n{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:32px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hbadge .t{font-size:14px;color:#aab2cc;line-height:1.32}
.stars{color:#ffc24b;letter-spacing:2px;font-size:15px}
.dept-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}
.chip{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:100px;padding:9px 16px;font-size:14px;font-weight:600;color:#dfe4f2;transition:transform .25s var(--ease-out),border-color .25s,color .25s,background .25s}
.chip:hover{border-color:var(--accent);color:#fff;background:rgba(109,94,252,.18);transform:translateY(-3px)}
.breadcrumb{font-size:13px;color:#8b93ad;margin-bottom:6px}
.breadcrumb a{color:#8b93ad;transition:color .2s}
.breadcrumb a:hover{color:#a9b6ff}

/* hero entrance (JS adds .anim then .in; stays visible if JS/rAF can't run) */
.hero.anim .inner>*{opacity:0;transform:translateY(26px)}
.hero.anim.in .inner>*{opacity:1;transform:none;transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
.hero.anim.in .inner>*:nth-child(1){transition-delay:.05s}
.hero.anim.in .inner>*:nth-child(2){transition-delay:.14s}
.hero.anim.in .inner>*:nth-child(3){transition-delay:.23s}
.hero.anim.in .inner>*:nth-child(4){transition-delay:.32s}
.hero.anim.in .inner>*:nth-child(5){transition-delay:.41s}
.hero.anim.in .inner>*:nth-child(6){transition-delay:.5s}

/* ---------- sections ---------- */
section[id]{scroll-margin-top:104px}
.section{padding:100px 0;position:relative}
.section.soft{background:var(--bg-soft)}
.shead{max-width:720px;margin-bottom:54px}
.shead.center{margin-left:auto;margin-right:auto;text-align:center}
.shead.center .eyebrow{justify-content:center}
.shead h2{font-size:clamp(30px,3.8vw,48px);font-weight:700;margin:16px 0 18px;letter-spacing:-.03em}
.shead p{font-size:18px;color:var(--ink-2)}
.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .85s var(--ease-out),transform .85s var(--ease-out),filter .85s var(--ease-out);filter:blur(6px)}
.reveal.in{opacity:1;transform:none;filter:none}
.reveal.d1{transition-delay:.06s}.reveal.d2{transition-delay:.13s}.reveal.d3{transition-delay:.2s}.reveal.d4{transition-delay:.27s}.reveal.d5{transition-delay:.34s}

/* ---------- generic cards ---------- */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.cards.c3{grid-template-columns:repeat(3,1fr)}
.cards.c2{grid-template-columns:repeat(2,1fr)}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px;transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out),border-color .35s;position:relative;overflow:hidden}
.card::before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(220px 220px at var(--mx,50%) var(--my,0%),var(--accent-soft),transparent 70%);opacity:0;transition:opacity .35s}
.card:hover{transform:translateY(-7px);box-shadow:var(--shadow);border-color:#d7dcec}
.card:hover::before{opacity:1}
.card>*{position:relative}
.card .ic{width:54px;height:54px;border-radius:15px;display:grid;place-items:center;font-size:24px;margin-bottom:20px;background:var(--grad-soft);transition:transform .35s var(--ease-out)}
.card:hover .ic{transform:scale(1.08) rotate(-4deg)}
.card h3{font-size:19px;font-weight:700;margin-bottom:9px}
.card p{font-size:14.5px;color:var(--muted)}

/* ---------- department cards ---------- */
.dept-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.dcard{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:32px;transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out),border-color .35s;position:relative;overflow:hidden}
.dcard::before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(260px 260px at var(--mx,50%) var(--my,0%),var(--accent-soft),transparent 70%);opacity:0;transition:opacity .35s}
.dcard:hover{transform:translateY(-7px);box-shadow:var(--shadow);border-color:#d7dcec}
.dcard:hover::before{opacity:1}
.dcard>*{position:relative;z-index:1}
.dcard.feat{background:linear-gradient(155deg,#11142a,#1c2150);color:#fff;grid-column:span 3}
.dcard.feat::before{display:none}
.dcard.feat h3{color:#fff}
.dcard.feat p{color:#c4cdda}
.dcard.feat .inner{position:relative;z-index:2;max-width:560px}
.dcard.feat .glow{position:absolute;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(109,94,252,.55),transparent 70%);filter:blur(45px);top:-90px;right:-50px;animation:floaty 9s var(--ease-in-out) infinite}
.dcard.feat .tag{display:inline-block;font-family:'Space Grotesk',sans-serif;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#b6a9ff;background:rgba(109,94,252,.2);padding:6px 13px;border-radius:100px;margin-bottom:16px}
.dcard .ic{width:56px;height:56px;border-radius:15px;display:grid;place-items:center;font-size:25px;margin-bottom:18px;background:var(--grad-soft);transition:transform .35s var(--ease-out)}
.dcard:hover .ic{transform:scale(1.08) rotate(-4deg)}
.dcard.feat .ic{background:rgba(109,94,252,.22)}
.dcard h3{font-size:21px;font-weight:700;margin-bottom:9px}
.dcard p{font-size:14.5px;color:var(--muted);margin-bottom:16px}
.dcard .more{font-family:'Space Grotesk',sans-serif;font-weight:600;color:var(--accent);font-size:14.5px;display:inline-flex;gap:6px;align-items:center;transition:gap .25s var(--ease-out)}
.dcard:hover .more{gap:11px}
.dcard.feat .more{color:#b6a9ff}
@keyframes floaty{0%,100%{transform:translate(0,0)}50%{transform:translate(-14px,16px)}}

/* ---------- benefits ---------- */
.bens{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ben{display:flex;gap:14px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:19px 21px;font-weight:600;font-size:15.5px;transition:transform .28s var(--ease-out),box-shadow .28s,border-color .28s}
.ben:hover{border-color:#d7dcec;box-shadow:var(--shadow-sm);transform:translateY(-3px)}
.ben .ck{width:32px;height:32px;border-radius:50%;background:var(--grad);color:#fff;display:grid;place-items:center;font-weight:800;flex-shrink:0;box-shadow:var(--shadow-accent)}

/* ---------- stats ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.stat{text-align:center;padding:18px}
.stat .num{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:clamp(42px,5vw,62px);background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:-.04em}
.stat .lab{font-size:14.5px;color:var(--ink-2);margin-top:8px}
.stat .ln{width:42px;height:3px;background:var(--grad);margin:14px auto 0;border-radius:3px;opacity:.5}

/* ---------- dark results panel ---------- */
.results{background:linear-gradient(155deg,#0c0f22,#171b3c);border-radius:var(--radius-lg);padding:60px 44px;color:#fff;position:relative;overflow:hidden}
.results .glow{position:absolute;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(109,94,252,.4),transparent 70%);filter:blur(60px);top:-140px;right:-70px;animation:floaty 11s var(--ease-in-out) infinite}
.results .shead{text-align:center;margin:0 auto 48px;position:relative}
.results .shead h2{color:#fff}
.results .shead p{color:#c4cdda}
.results .stat .lab{color:#c4cdda}
.results .stat .ln{background:var(--grad);opacity:.8}

/* ---------- kpis ---------- */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;text-align:center;transition:transform .3s var(--ease-out),box-shadow .3s,border-color .3s}
.kpi:hover{transform:translateY(-5px);box-shadow:var(--shadow-sm);border-color:#d7dcec}
.kpi .num{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:clamp(34px,4vw,50px);background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:-.03em}
.kpi .lab{font-size:13.5px;color:var(--ink-2);margin-top:9px;line-height:1.32}

/* ---------- two-col panels ---------- */
.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:34px;transition:transform .3s var(--ease-out),box-shadow .3s,border-color .3s}
.panel:hover{box-shadow:var(--shadow-sm);border-color:#d7dcec}
.panel h3{font-size:20px;margin-bottom:16px}
.panel ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px;color:var(--ink-2);font-size:15px}
.panel ul li{position:relative;padding-left:28px}
.panel ul li::before{content:"";position:absolute;left:0;top:8px;width:9px;height:9px;border-radius:3px;background:var(--grad);box-shadow:0 0 0 4px var(--accent-soft)}

/* ---------- comparison table ---------- */
.cmp-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.cmp{width:100%;border-collapse:collapse;background:#fff;min-width:520px}
.cmp th,.cmp td{padding:17px 24px;text-align:left;border-bottom:1px solid var(--line);font-size:15px}
.cmp th{font-family:'Space Grotesk',sans-serif;font-size:12.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);background:var(--bg-soft)}
.cmp td.metric{font-weight:600}
.cmp td.before{color:var(--muted)}
.cmp td.after{color:var(--accent);font-weight:800}
.cmp tr:last-child td{border-bottom:none}
.cmp tbody tr{transition:background .2s}
.cmp tbody tr:hover{background:var(--bg-soft)}

/* ---------- process steps ---------- */
.proc{display:flex;flex-direction:column;gap:18px;max-width:880px;margin:0 auto;position:relative}
.step{display:grid;grid-template-columns:64px 1fr;gap:24px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px 28px;transition:transform .32s var(--ease-out),box-shadow .32s,border-color .32s}
.step:hover{border-color:#d7dcec;box-shadow:var(--shadow-sm);transform:translateX(6px)}
.step .no{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:20px;color:#fff;background:var(--grad);box-shadow:var(--shadow-accent)}
.step h3{font-size:19px;font-weight:700;margin-bottom:6px}
.step p{font-size:14.5px;color:var(--muted)}
.step .out{display:inline-block;margin-top:12px;font-family:'Space Grotesk',sans-serif;font-size:13px;font-weight:700;color:#0a7d3c;background:#e7f7ee;padding:6px 12px;border-radius:100px}

/* ---------- quote ---------- */
.quote{background:linear-gradient(155deg,#0c0f22,#171b3c);color:#fff;border-radius:var(--radius-lg);padding:58px;position:relative;overflow:hidden}
.quote .glow{position:absolute;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(34,211,238,.32),transparent 70%);filter:blur(60px);top:-160px;left:-60px;animation:floaty 12s var(--ease-in-out) infinite}
.quote p{font-family:'Space Grotesk',sans-serif;font-size:clamp(21px,2.5vw,30px);font-weight:600;line-height:1.42;max-width:800px;position:relative;letter-spacing:-.02em}
.quote .who{margin-top:22px;color:#c4cdda;font-size:15px;position:relative}

/* ---------- timeline ---------- */
.tline{max-width:880px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.tl{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;transition:transform .3s var(--ease-out),box-shadow .3s,border-color .3s}
.tl:hover{transform:translateY(-5px);box-shadow:var(--shadow-sm);border-color:#d7dcec}
.tl .wk{font-family:'Space Grotesk',sans-serif;font-size:12.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--accent)}
.tl h4{font-size:16px;margin:9px 0 7px}
.tl p{font-size:13.5px;color:var(--muted)}

/* ---------- tech row ---------- */
.tech-row{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.tech{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:16px;color:var(--ink-2);background:#fff;border:1px solid var(--line);padding:14px 28px;border-radius:100px;box-shadow:var(--shadow-sm);transition:transform .28s var(--ease-out),color .28s,border-color .28s}
.tech:hover{transform:translateY(-4px);color:var(--accent);border-color:var(--accent)}

/* ---------- CTA band & wrap ---------- */
.cta-band{background:linear-gradient(155deg,#0c0f22,#1a1f44);border-radius:var(--radius-lg);padding:60px;text-align:center;color:#fff;position:relative;overflow:hidden}
.cta-band .glow{position:absolute;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(109,94,252,.4),transparent 70%);filter:blur(60px);top:-160px;left:50%;transform:translateX(-50%);animation:floaty 10s var(--ease-in-out) infinite}
.cta-band h2{color:#fff;font-size:clamp(30px,3.6vw,46px);font-weight:700;margin:0 auto 16px;max-width:680px;position:relative;letter-spacing:-.03em}
.cta-band p{color:#c4cdda;font-size:17px;max-width:580px;margin:0 auto 30px;position:relative}
.cta-band .btn{position:relative}
.cta-wrap{background:linear-gradient(155deg,#0c0f22,#1a1f44);border-radius:var(--radius-lg);padding:58px;color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:50px;position:relative;overflow:hidden}
.cta-wrap .glow{position:absolute;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(109,94,252,.42),transparent 70%);filter:blur(56px);top:-130px;left:-80px;animation:floaty 11s var(--ease-in-out) infinite}
.cta-l{position:relative}
.cta-l .eyebrow{color:#b6a9ff}
.cta-l h2{color:#fff;font-size:clamp(28px,3.2vw,40px);font-weight:700;margin:16px 0 18px;letter-spacing:-.03em}
.cta-l p{color:#c4cdda;font-size:16px;margin-bottom:28px}
.cta-points{display:flex;flex-direction:column;gap:13px}
.cta-points .li{display:flex;gap:12px;align-items:center;color:#dde3ec;font-size:15px}
.cta-points .ck{width:25px;height:25px;border-radius:50%;background:rgba(109,94,252,.22);color:#b6a9ff;display:grid;place-items:center;font-weight:800;font-size:13px;flex-shrink:0}
.contact-info{display:flex;flex-direction:column;gap:14px;margin-top:30px;position:relative}
.contact-info a{display:flex;gap:13px;align-items:center;color:#dde3ec;font-size:16px;transition:color .2s}
.contact-info a:hover{color:#fff}
.contact-info .ic{width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.07);display:grid;place-items:center;font-size:18px}

/* ---------- form ---------- */
.form{position:relative;background:#fff;border-radius:var(--radius);padding:32px;color:var(--ink);box-shadow:var(--shadow)}
.form label{display:block;font-size:13px;font-weight:600;color:var(--ink-2);margin:0 0 6px}
.form .fld{margin-bottom:16px}
.form input,.form textarea{width:100%;border:1.5px solid var(--line);border-radius:13px;padding:13px 15px;font-family:inherit;font-size:15px;color:var(--ink);transition:border-color .2s,box-shadow .2s,background .2s;background:var(--bg-soft)}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 4px var(--accent-soft)}
.form .btn-primary{width:100%;justify-content:center;margin-top:4px}
.form .fineprint{font-size:12px;color:var(--muted);text-align:center;margin-top:12px}

/* ---------- accordion (faq, if present) ---------- */
.ac{background:#fff;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px;overflow:hidden;transition:border-color .3s,box-shadow .3s}
.ac.open{border-color:#d7dcec;box-shadow:var(--shadow-sm)}
.ac-h{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;text-align:left;border:none;background:none;cursor:pointer;padding:22px 26px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:17px;color:var(--ink)}
.ac-h::after{content:"+";font-size:22px;color:var(--accent);transition:transform .3s var(--ease-out);font-weight:400}
.ac.open .ac-h::after{transform:rotate(45deg)}
.ac-b{max-height:0;overflow:hidden;transition:max-height .4s var(--ease-in-out)}
.ac-b>div,.ac-b p{padding:0 26px 22px;color:var(--muted);font-size:15px}

/* ---------- footer ---------- */
footer{background:#080a16;color:#9aa3b8;padding:70px 0 32px;position:relative;overflow:hidden}
footer::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(109,94,252,.5),transparent)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:42px;padding-bottom:42px;border-bottom:1px solid rgba(255,255,255,.08)}
.foot-grid .brand{color:#fff;margin-bottom:16px}
footer h4{color:#fff;font-family:'Space Grotesk',sans-serif;font-size:13px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:16px;font-weight:600}
footer a{color:#9aa3b8;display:block;padding:5px 0;transition:color .2s,transform .2s var(--ease-out)}
footer a:hover{color:#fff;transform:translateX(3px)}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:26px;font-size:13.5px;flex-wrap:wrap;gap:10px}

/* ---------- terminal (it page) ---------- */
.term{background:#0a0c1c;border:1px solid var(--line-d);border-radius:16px;box-shadow:0 30px 70px -30px rgba(0,0,0,.7);overflow:hidden;margin-top:38px;max-width:560px}
.term .bar{display:flex;align-items:center;gap:8px;padding:13px 16px;background:#0f1226;border-bottom:1px solid var(--line-d)}
.term .bar i{width:11px;height:11px;border-radius:50%;display:block}
.term .bar .r{background:#ff5f56}.term .bar .y{background:#ffbd2e}.term .bar .g{background:#27c93f}
.term .bar span{margin-left:8px;font:600 12px ui-monospace,SFMono-Regular,Menlo,monospace;color:#6b7392;letter-spacing:.04em}
.term .body{padding:20px;font:13.5px/1.95 ui-monospace,SFMono-Regular,Menlo,monospace;color:#c2c9e0}
.term .ln{white-space:pre-wrap}
.term .pr{color:#9d8bff}
.term .ok{color:#3ee0b0}
.term .mut{color:#5e6688}

/* ---------- it list ---------- */
.it-list{max-width:880px;margin:0 auto;background:#0a0c1c;border:1px solid var(--line-d);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.it-list .row{display:flex;align-items:center;gap:14px;padding:17px 24px;border-bottom:1px solid var(--line-d);font:14px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:#c2c9e0;transition:background .2s}
.it-list .row:hover{background:rgba(109,94,252,.08)}
.it-list .row:last-child{border-bottom:none}
.it-list .row .pr{color:#9d8bff;font-weight:700}
.it-list .row .tx{color:#dde3ec}
.it-list .row .st{margin-left:auto;font:700 11px ui-monospace,monospace;letter-spacing:.06em;color:#06231a;background:#3ee0b0;padding:5px 11px;border-radius:100px}

/* ---------- logo / tech marquee ---------- */
.marquee{overflow:hidden;padding:6px 0;-webkit-mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.marquee .track{display:flex;gap:14px;width:max-content;animation:marquee 42s linear infinite;will-change:transform}
.marquee:hover .track{animation-play-state:paused}
.mq{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:15px;color:var(--ink-2);background:#fff;border:1px solid var(--line);padding:11px 21px;border-radius:100px;white-space:nowrap;box-shadow:var(--shadow-sm)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- pain points ---------- */
.pains{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.pain{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:32px;position:relative;overflow:hidden;transition:transform .35s var(--ease-out),box-shadow .35s,border-color .35s}
.pain::after{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease-out)}
.pain:hover{transform:translateY(-7px);box-shadow:var(--shadow);border-color:#d7dcec}
.pain:hover::after{transform:scaleX(1)}
.pain .ic{width:54px;height:54px;border-radius:15px;display:grid;place-items:center;font-size:26px;margin-bottom:20px;background:var(--bg-soft)}
.pain h3{font-size:19px;font-weight:700;margin-bottom:9px}
.pain p{font-size:14.5px;color:var(--muted)}

/* ---------- highlight ---------- */
.hl{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- why-us grid ---------- */
.why{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.why .item{display:flex;gap:17px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;transition:transform .32s var(--ease-out),box-shadow .32s,border-color .32s}
.why .item:hover{transform:translateY(-5px);box-shadow:var(--shadow-sm);border-color:#d7dcec}
.why .item .ic{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font-size:24px;background:var(--grad-soft);flex-shrink:0;transition:transform .32s var(--ease-out)}
.why .item:hover .ic{transform:scale(1.08) rotate(-4deg)}
.why .item h3{font-size:18px;font-weight:700;margin-bottom:7px}
.why .item p{font-size:14.5px;color:var(--muted)}

/* ---------- faq wrapper / list ---------- */
.acc{max-width:840px;margin:0 auto}
.ac-b ul{margin:0;padding:0 26px 24px;list-style:none}
.ac-b ul li{color:var(--muted);font-size:15px;line-height:1.62}
.ac-h .arr{display:none}

/* eyebrow on dark panels */
.results .eyebrow,.quote .eyebrow{color:#b6a9ff}

/* big quote glyph */
.quote{padding-top:74px}
.quote::before{content:"\201C";position:absolute;top:18px;left:54px;font-family:'Space Grotesk',sans-serif;font-size:140px;line-height:1;color:rgba(157,139,255,.22);z-index:1}

/* ---------- line icons ---------- */
.ic{color:var(--accent)}
.ic svg{width:26px;height:26px;display:block}
.di{color:var(--accent)}
.di svg{width:18px;height:18px;display:block}
.dcard.feat .ic{color:#c4b9ff}
.contact-info .ic{color:#fff}
.contact-info .ic svg{width:20px;height:20px;display:block}

/* ---------- responsive ---------- */
@media(max-width:980px){
  .cards,.cards.c3{grid-template-columns:repeat(2,1fr)}
  .dept-cards{grid-template-columns:repeat(2,1fr)}
  .dcard.feat{grid-column:span 2}
  .bens,.pains,.why{grid-template-columns:1fr 1fr}
  .stats,.kpis{grid-template-columns:repeat(2,1fr);gap:28px 14px}
  .two{grid-template-columns:1fr}
  .tline{grid-template-columns:repeat(2,1fr)}
  .cta-wrap{grid-template-columns:1fr;padding:42px 32px}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:680px){
  .menu{display:none}
  .burger{display:grid}
  .cards,.cards.c3,.cards.c2,.dept-cards,.bens,.pains,.why{grid-template-columns:1fr}
  .quote::before{left:26px;font-size:100px}
  .dcard.feat{grid-column:span 1}
  .stats,.kpis,.tline{grid-template-columns:1fr 1fr}
  .section{padding:70px 0}
  .hero.home{padding:160px 0 90px}
  .hero.page{padding:140px 0 64px}
  .results,.cta-band,.quote{padding:42px 26px}
  .drop{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;padding:4px 0 4px 10px;min-width:0;background:none}
  .menu .has-drop{flex-direction:column;align-items:flex-start;width:100%}
  .menu .caret{display:none}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none;filter:none}
  .hero .inner>*{opacity:1;transform:none}
}


/* ============================================================
   Dynamic animated background (home only · .has-bgfx)
   ============================================================ */
body.has-bgfx{background:transparent}
.bgfx,.grain,.glitch{position:fixed;inset:0;pointer-events:none}
.bgfx{z-index:-3;overflow:hidden}
.bgfx canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.grain{z-index:-2;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:160px 160px;animation:grain 1.1s steps(5) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-2%)}60%{transform:translate(-2%,4%)}80%{transform:translate(4%,2%)}100%{transform:translate(0,0)}}
.glitch{z-index:-2;opacity:0;background:repeating-linear-gradient(0deg,rgba(109,94,252,.06) 0 1px,transparent 1px 3px);animation:glitch 13s infinite}
@keyframes glitch{0%,92%,100%{opacity:0;transform:translateX(0)}93%{opacity:.4;transform:translateX(-2px)}94.5%{opacity:.14;transform:translateX(3px)}96%{opacity:.45;transform:translateX(-1px)}97%{opacity:0}}
body.has-bgfx .section{background:rgba(252,252,254,.62);-webkit-backdrop-filter:blur(11px) saturate(1.08);backdrop-filter:blur(11px) saturate(1.08)}
body.has-bgfx .section.soft{background:rgba(244,245,251,.56)}
@media(prefers-reduced-motion:reduce){.grain,.glitch{animation:none}.grain{opacity:.035}}
