/* ============================================================
   AINNA NeuralOps Infrastructure — v2 enterprise AI orchestration
   ============================================================ */
:root{
  --np-bg:#070a14;
  --np-bg-1:#0b1120;
  --np-bg-2:#101a30;
  --np-surface:#121b33;
  --np-surface-2:#1a2542;
  --np-surface-3:#223055;
  --np-border:rgba(120,160,255,0.16);
  --np-border-s:rgba(120,160,255,0.32);
  --np-text:#e8edf8;
  --np-text-2:#b6c3db;
  --np-text-3:#7d8caa;
  --np-a:#667eea;
  --np-b:#764ba2;
  --np-cyan:#22d3ee;
  --np-green:#34d399;
  --np-amber:#fbbf24;
  --np-red:#f87171;
  --np-grad:linear-gradient(135deg,#667eea,#764ba2);
  --np-grad-txt:linear-gradient(135deg,#a5b4fc,#c084fc 55%,#22d3ee);
  --np-font:'Inter',-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;
  --np-mono:'JetBrains Mono',monospace;
  --np-r:20px;
  --np-r-s:12px;
  --np-shadow:0 16px 50px rgba(2,6,20,0.5);
  --np-glow:0 0 0 1px rgba(120,160,255,0.16),0 20px 60px rgba(102,126,234,0.18);
}
html[data-theme="light"]{
  --np-bg:#f4f6fb;
  --np-bg-1:#ffffff;
  --np-bg-2:#eef1f8;
  --np-surface:#ffffff;
  --np-surface-2:#f2f4fa;
  --np-surface-3:#e5eaf4;
  --np-border:rgba(23,37,84,0.12);
  --np-border-s:rgba(102,126,234,0.35);
  --np-text:#10182c;
  --np-text-2:#475569;
  --np-text-3:#64748b;
  --np-shadow:0 16px 50px rgba(16,24,40,0.08);
  --np-glow:0 0 0 1px rgba(102,126,234,0.2),0 20px 60px rgba(102,126,234,0.12);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body.np-page{
  font-family:var(--np-font);
  background:var(--np-bg);
  color:var(--np-text);
  line-height:1.6;
  overflow-x:hidden;
  transition:background .3s,color .3s;
  position:relative;
}
/* animated infra grid */
body.np-page::before{
  content:'';position:fixed;inset:0;z-index:-2;pointer-events:none;
  background:
    linear-gradient(var(--np-border) 1px,transparent 1px),
    linear-gradient(90deg,var(--np-border) 1px,transparent 1px);
  background-size:54px 54px;opacity:.5;
  animation:np-grid 42s linear infinite;
}
html[data-theme="light"] body.np-page::before{opacity:.22}
body.np-page::after{
  content:'';position:fixed;inset:0;z-index:-3;pointer-events:none;
  background:
    radial-gradient(ellipse 70% 50% at 12% 0%,rgba(102,126,234,0.20),transparent 60%),
    radial-gradient(ellipse 60% 40% at 88% 18%,rgba(118,75,162,0.16),transparent 60%),
    radial-gradient(ellipse 55% 50% at 50% 108%,rgba(34,211,238,0.12),transparent 60%);
}
@keyframes np-grid{from{background-position:0 0,0 0}to{background-position:54px 54px,54px 54px}}

.np-container{max-width:1220px;margin:0 auto;padding:0 24px;position:relative;z-index:1}
section{position:relative}
.np-section{padding:96px 0;position:relative}
.np-section--alt{background:var(--np-bg-1)}

/* ---------- headers ---------- */
.np-kicker{display:inline-flex;align-items:center;gap:9px;font-family:var(--np-mono);font-size:12px;font-weight:600;letter-spacing:2.2px;text-transform:uppercase;color:var(--np-a);margin-bottom:18px}
.np-kicker::before{content:'';width:24px;height:1px;background:var(--np-a)}
.np-h2{font-size:clamp(1.8rem,3.8vw,2.7rem);font-weight:800;line-height:1.14;letter-spacing:-.5px;margin-bottom:16px}
.np-h2 .g{background:var(--np-grad-txt);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.np-lead{color:var(--np-text-2);font-size:clamp(1rem,1.6vw,1.13rem);max-width:700px;line-height:1.7}
.np-sec-head{max-width:840px;margin:0 auto 56px;text-align:center}
.np-sec-head .np-kicker{justify-content:center}
.np-sec-head .np-kicker::before{display:none}
.np-sec-head .np-lead{margin:0 auto}

/* ---------- reveal ---------- */
[data-rv]{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.4,0,.2,1);will-change:opacity,transform}
[data-rv].in{opacity:1;transform:none}
[data-rv="l"]{transform:translateX(-42px)}
[data-rv="l"].in{transform:none}
[data-rv="r"]{transform:translateX(42px)}
[data-rv="r"].in{transform:none}
[data-rv="s"]{transform:scale(.92)}
[data-rv="s"].in{transform:scale(1)}
[data-st]{opacity:0;transform:translateY(22px);transition:opacity .6s cubic-bezier(.4,0,.2,1),transform .6s cubic-bezier(.4,0,.2,1)}
[data-st].in{opacity:1;transform:none}

/* ---------- nav ---------- */
.np-nav{position:fixed;top:0;left:0;right:0;z-index:900;transition:all .3s;background:rgba(7,10,20,.72);backdrop-filter:blur(18px);border-bottom:1px solid transparent}
html[data-theme="light"] .np-nav{background:rgba(255,255,255,.8)}
.np-nav.scrolled{border-bottom-color:var(--np-border);background:rgba(7,10,20,.92)}
html[data-theme="light"] .np-nav.scrolled{background:rgba(255,255,255,.94)}
.np-nav-inner{display:flex;align-items:center;justify-content:space-between;height:66px}
.np-brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--np-text)}
.np-brand-orb{width:34px;height:34px;border-radius:9px;background:var(--np-grad);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:15px;font-family:var(--np-mono);box-shadow:0 0 20px rgba(102,126,234,.4)}
.np-brand-t{font-weight:800;font-size:16px;letter-spacing:-.3px}
.np-brand-t small{display:block;font-size:10px;color:var(--np-text-3);text-transform:uppercase;letter-spacing:1.3px;font-weight:600}
.np-nav-links{display:flex;gap:3px;align-items:center}
.np-nav-link{color:var(--np-text-2);text-decoration:none;font-size:13.5px;font-weight:500;padding:8px 12px;border-radius:8px;transition:all .2s}
.np-nav-link:hover{color:var(--np-text);background:var(--np-surface-2)}
.np-nav-cta{margin-left:8px;padding:8px 18px;border-radius:999px;background:var(--np-grad);color:#fff!important;font-weight:600;box-shadow:0 4px 18px rgba(102,126,234,.35)}
.np-nav-cta:hover{box-shadow:0 6px 24px rgba(102,126,234,.5)}
.np-burger{display:none;width:42px;height:42px;border:1px solid var(--np-border);border-radius:10px;background:transparent;color:var(--np-text);align-items:center;justify-content:center;cursor:pointer}
.np-mobile{position:fixed;top:66px;left:0;right:0;z-index:899;background:var(--np-bg-1);border-bottom:1px solid var(--np-border);padding:16px 24px;display:none;flex-direction:column;gap:4px}
.np-mobile.open{display:flex}
.np-mobile a{color:var(--np-text-2);text-decoration:none;padding:12px 8px;border-radius:8px;font-size:15px}
.np-mobile a:hover{background:var(--np-surface-2);color:var(--np-text)}

/* ---------- hero ---------- */
.np-hero{padding:172px 0 96px;text-align:center;position:relative;overflow:hidden}
.np-hero-badge{display:inline-flex;align-items:center;gap:9px;padding:8px 18px;border-radius:999px;border:1px solid var(--np-border-s);background:rgba(102,126,234,.12);font-size:12px;font-weight:600;color:var(--np-a);margin-bottom:26px;letter-spacing:.4px}
.np-hero-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--np-green);box-shadow:0 0 10px var(--np-green);animation:np-pulse 2s infinite}
@keyframes np-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}
.np-hero h1{font-size:clamp(2.3rem,6.2vw,4.2rem);font-weight:900;line-height:1.06;letter-spacing:-1.6px;margin-bottom:26px}
.np-hero h1 .g{background:var(--np-grad-txt);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;background-size:200% auto;animation:np-shine 6s linear infinite}
@keyframes np-shine{to{background-position:200% center}}
.np-hero-sub{font-size:clamp(1.05rem,1.8vw,1.28rem);color:var(--np-text-2);max-width:760px;margin:0 auto 38px;line-height:1.75}
.np-hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;align-items:center}
.np-btn{display:inline-flex;align-items:center;gap:9px;padding:15px 32px;border-radius:999px;font-size:15px;font-weight:600;text-decoration:none;border:none;cursor:pointer;transition:transform .25s,box-shadow .25s;position:relative}
.np-btn--p{background:var(--np-grad);color:#fff;box-shadow:0 6px 24px rgba(102,126,234,.4)}
.np-btn--p:hover{transform:translateY(-2px);box-shadow:0 10px 34px rgba(102,126,234,.55)}
.np-btn--o{background:transparent;color:var(--np-text);border:1.5px solid var(--np-border-s);backdrop-filter:blur(6px)}
.np-btn--o:hover{border-color:var(--np-a);color:var(--np-a);transform:translateY(-2px)}
.np-btn svg{width:17px;height:17px}
.np-magnetic{display:inline-flex;transform:translate(var(--np-mx,0),var(--np-my,0));transition:transform .15s ease-out}
.np-hero-stats{display:flex;justify-content:center;gap:0;margin-top:64px;border-top:1px solid var(--np-border);padding-top:36px;flex-wrap:wrap}
.np-hstat{padding:0 36px;text-align:center;position:relative}
.np-hstat+.np-hstat::before{content:'';position:absolute;left:0;top:12%;bottom:12%;width:1px;background:var(--np-border)}
.np-hstat-n{font-family:var(--np-mono);font-size:clamp(1.7rem,3vw,2.5rem);font-weight:700;color:var(--np-a)}
.np-hstat-l{font-size:12px;color:var(--np-text-3);text-transform:uppercase;letter-spacing:1px;margin-top:4px}
/* floating infra nodes */
.np-nodes{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.np-node{position:absolute;width:54px;height:54px;border-radius:14px;background:var(--np-surface);border:1px solid var(--np-border-s);display:flex;align-items:center;justify-content:center;color:var(--np-a);box-shadow:var(--np-glow);animation:np-float 9s ease-in-out infinite}
.np-node svg{width:24px;height:24px}
.np-node--c{width:38px;height:38px;border-radius:50%}
@keyframes np-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-18px)}}
/* data particles */
.np-particles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.np-part{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--np-a);opacity:0;animation:np-part linear infinite}
@keyframes np-part{0%{transform:translateY(18vh);opacity:0}10%{opacity:.8}90%{opacity:.6}100%{transform:translateY(-72vh) translateX(42px);opacity:0}}

/* ---------- cards ---------- */
.np-grid{display:grid;gap:20px}
.np-g3{grid-template-columns:repeat(3,1fr)}
.np-g4{grid-template-columns:repeat(4,1fr)}
.np-g2{grid-template-columns:repeat(2,1fr)}
.np-card{background:var(--np-surface);border:1px solid var(--np-border);border-radius:var(--np-r);padding:28px;position:relative;overflow:hidden;transition:transform .3s,box-shadow .3s,border-color .3s}
.np-card::before{content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;background:var(--np-grad);opacity:0;transition:opacity .3s;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.np-card:hover{transform:translateY(-5px);box-shadow:var(--np-glow)}
.np-card:hover::before{opacity:.6}
.np-ic{width:50px;height:50px;border-radius:13px;background:var(--np-grad);display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:16px;box-shadow:0 4px 16px rgba(102,126,234,.3)}
.np-ic svg{width:25px;height:25px}
.np-ic--a{background:var(--np-surface-2);color:var(--np-a);border:1px solid var(--np-border)}
.np-card h3{font-size:1.06rem;font-weight:700;margin-bottom:8px;letter-spacing:-.2px}
.np-card p{color:var(--np-text-2);font-size:.93rem;line-height:1.65}
.np-tag{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;gap:5px;white-space:nowrap}
.np-tag--g{background:rgba(52,211,153,.14);color:var(--np-green);border:1px solid rgba(52,211,153,.3)}
.np-tag--y{background:rgba(251,191,36,.14);color:var(--np-amber);border:1px solid rgba(251,191,36,.3)}
.np-tag--r{background:rgba(248,113,113,.14);color:var(--np-red);border:1px solid rgba(248,113,113,.3)}
.np-tag--a{background:rgba(102,126,234,.14);color:var(--np-a);border:1px solid rgba(102,126,234,.3)}
.np-tag--c{background:rgba(34,211,238,.14);color:var(--np-cyan);border:1px solid rgba(34,211,238,.3)}

/* ---------- flow / pipeline ---------- */
.np-flow{display:flex;align-items:stretch;gap:0;flex-wrap:wrap;justify-content:center;position:relative}
.np-flow-node{background:var(--np-surface);border:1px solid var(--np-border);border-radius:15px;padding:22px 26px;min-width:178px;text-align:center;position:relative}
.np-flow-node--hot{background:var(--np-grad);border-color:transparent;color:#fff;box-shadow:0 8px 30px rgba(102,126,234,.4)}
.np-flow-node--hot .np-flow-sub{color:rgba(255,255,255,.85)}
.np-flow-ic{width:40px;height:40px;margin:0 auto 10px;border-radius:10px;background:var(--np-surface-2);display:flex;align-items:center;justify-content:center;color:var(--np-a)}
.np-flow-node--hot .np-flow-ic{background:rgba(255,255,255,.18);color:#fff}
.np-flow-ic svg{width:21px;height:21px}
.np-flow-t{font-size:.96rem;font-weight:700}
.np-flow-s{font-size:.78rem;color:var(--np-text-3);margin-top:4px}
.np-flow-conn{flex:0 0 44px;display:flex;align-items:center;justify-content:center;position:relative}
.np-flow-conn svg{width:100%;height:100%;max-height:30px;overflow:visible}
.np-flow-conn path{stroke:var(--np-a);stroke-width:1.5;fill:none;stroke-dasharray:8 6;animation:np-dash 1.2s linear infinite}
@keyframes np-dash{to{stroke-dashoffset:-14}}
.np-vflow{display:flex;flex-direction:column;align-items:center;gap:0}
.np-vconn{width:2px;height:46px;background:var(--np-a);position:relative;flex:0 0 46px}
.np-vconn::after{content:'';position:absolute;top:0;left:-3px;width:8px;height:8px;border-radius:50%;background:var(--np-cyan);animation:np-fdown 1.4s linear infinite}
@keyframes np-fdown{from{top:0;opacity:1}to{top:calc(100% - 8px);opacity:.2}}

/* ---------- architecture stack ---------- */
.np-stack{display:flex;flex-direction:column;gap:14px;max-width:760px;margin:0 auto}
.np-layer{display:flex;align-items:center;gap:16px;padding:22px 26px;border-radius:var(--np-r);border:1px solid var(--np-border);background:var(--np-surface);position:relative;transition:transform .3s,box-shadow .3s}
.np-layer:hover{transform:translateX(8px);box-shadow:var(--np-glow)}
.np-layer .np-ic{margin:0;flex:0 0 50px}
.np-layer-tag{flex:0 0 auto;margin-left:auto}
.np-layer h3{font-size:1.05rem;font-weight:700}
.np-layer p{font-size:.9rem;color:var(--np-text-2);margin-top:3px;max-width:460px}
.np-layer--hot{background:linear-gradient(135deg,rgba(102,126,234,.18),rgba(118,75,162,.12));border-color:var(--np-border-s)}

/* ---------- mock / dashboard ---------- */
.np-mock{background:var(--np-surface);border:1px solid var(--np-border);border-radius:var(--np-r);overflow:hidden;box-shadow:var(--np-shadow);position:relative}
.np-mock-bar{display:flex;align-items:center;gap:8px;padding:12px 18px;border-bottom:1px solid var(--np-border);background:var(--np-surface-2)}
.np-mock-bar .np-dot{width:9px;height:9px;border-radius:50%}
.np-dot--r{background:#ff5f57}.np-dot--y{background:#febc2e}.np-dot--g{background:#28c840}
.np-mock-bar-t{margin-left:10px;font-size:12px;color:var(--np-text-3);font-family:var(--np-mono)}
.np-mock-body{padding:22px}

/* ---------- server cluster ---------- */
.np-cluster{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.np-server{width:150px;border-radius:14px;border:1px solid var(--np-border);background:var(--np-surface);overflow:hidden;position:relative}
.np-server-top{height:10px;background:var(--np-grad)}
.np-server-body{padding:16px;text-align:center}
.np-server-led{display:inline-flex;gap:6px;margin-bottom:12px}
.np-server-led span{width:9px;height:9px;border-radius:50%;background:var(--np-green);box-shadow:0 0 8px var(--np-green);animation:np-pulse 2s infinite}
.np-server-led span:nth-child(2){animation-delay:.3s}.np-server-led span:nth-child(3){animation-delay:.6s}
.np-server h4{font-size:13px;font-weight:700;margin-bottom:4px}
.np-server p{font-size:11px;color:var(--np-text-3)}

/* ---------- funnel ---------- */
.np-funnel{max-width:520px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
.np-fun{display:flex;align-items:center;gap:16px;padding:22px 26px;border-radius:var(--np-r);border:1px solid var(--np-border);background:var(--np-surface);position:relative;transition:all .3s}
.np-fun-n{flex:0 0 52px;height:52px;border-radius:50%;background:var(--np-grad);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--np-mono);font-weight:700;font-size:18px;box-shadow:0 4px 16px rgba(102,126,234,.3)}
.np-fun-c{flex:1}
.np-fun-c h4{font-size:1.02rem;font-weight:700;margin-bottom:3px}
.np-fun-c p{font-size:.86rem;color:var(--np-text-2)}
.np-fun-val{flex:0 0 auto;font-family:var(--np-mono);font-weight:700;color:var(--np-green);font-size:18px}
.np-fun-arrow{text-align:center;color:var(--np-text-3);font-size:22px}
.np-fun--hot{background:linear-gradient(135deg,rgba(52,211,153,.16),rgba(102,126,234,.1));border-color:rgba(52,211,153,.35)}

/* ---------- heat / monitor ---------- */
.np-mon{background:var(--np-surface-2);border:1px solid var(--np-border);border-radius:var(--np-r-s);padding:18px;font-family:var(--np-mono)}
.np-mon-line{display:flex;gap:12px;align-items:baseline;font-size:12.5px;padding:3px 0;opacity:0;animation:np-log .5s forwards}
.np-mon-line .t{color:var(--np-text-3)}.np-mon-line .lvl{color:var(--np-a)}
.np-mon-line.ok .msg{color:var(--np-green)}.np-mon-line.warn .msg{color:var(--np-amber)}.np-mon-line.err .msg{color:var(--np-red)}
@keyframes np-log{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}

/* ---------- progress / bars ---------- */
.np-bar{height:10px;background:var(--np-surface-3);border-radius:6px;overflow:hidden}
.np-bar-f{height:100%;width:0;background:var(--np-grad);border-radius:6px;transition:width 1.3s cubic-bezier(.4,0,.2,1)}
.np-chart{display:flex;align-items:flex-end;gap:8px;height:160px;padding-top:8px}
.np-chart .np-b{flex:1;background:var(--np-grad);border-radius:6px 6px 0 0;opacity:.85;transform:scaleY(0);transform-origin:bottom;transition:transform .9s cubic-bezier(.4,0,.2,1)}
.np-chart .np-b.in{transform:scaleY(1)}
.np-chart .np-b:hover{opacity:1}

/* ---------- tabs ---------- */
.np-tabs{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:28px}
.np-tab{padding:10px 18px;border-radius:10px;border:1px solid var(--np-border);background:transparent;color:var(--np-text-2);font-size:13.5px;font-weight:600;cursor:pointer;transition:all .2s}
.np-tab.active{background:var(--np-grad);color:#fff;border-color:transparent}
.np-pane{display:none;animation:np-pane .4s cubic-bezier(.4,0,.2,1)}
.np-pane.active{display:block}
@keyframes np-pane{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ---------- timeline ---------- */
.np-tl{position:relative;padding-left:36px;max-width:760px;margin:0 auto}
.np-tl::before{content:'';position:absolute;left:12px;top:6px;bottom:6px;width:2px;background:var(--np-border-s)}
.np-tli{position:relative;padding-bottom:34px;padding-left:18px}
.np-tli::before{content:'';position:absolute;left:-30px;top:6px;width:16px;height:16px;border-radius:50%;background:var(--np-surface);border:3px solid var(--np-a);z-index:1}
.np-tli::after{content:'';position:absolute;left:-26px;top:10px;width:8px;height:8px;border-radius:50%;background:var(--np-a);animation:np-pulse 2s infinite}
.np-tli h4{font-size:1.02rem;font-weight:700;margin-bottom:4px}
.np-tli .num{color:var(--np-a);font-family:var(--np-mono);margin-right:8px}
.np-tli p{color:var(--np-text-2);font-size:.93rem;line-height:1.6}

/* ---------- horizontal scroll ---------- */
.np-hs{display:flex;gap:20px;overflow-x:auto;padding:20px 4px 30px;scroll-snap-type:x mandatory;scrollbar-width:thin}
.np-hs::-webkit-scrollbar{height:6px}
.np-hs::-webkit-scrollbar-thumb{background:var(--np-border-s);border-radius:6px}
.np-hscard{flex:0 0 330px;scroll-snap-align:start;background:var(--np-surface);border:1px solid var(--np-border);border-radius:var(--np-r);padding:26px;transition:transform .3s,box-shadow .3s}
.np-hscard:hover{transform:translateY(-4px);box-shadow:var(--np-glow)}

/* ---------- accordion ---------- */
.np-acc{border:1px solid var(--np-border);border-radius:15px;overflow:hidden;background:var(--np-surface)}
.np-acc+.np-acc{margin-top:12px}
.np-acc-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;cursor:pointer;font-weight:600;font-size:15.5px;gap:16px;transition:background .2s}
.np-acc-head:hover{background:var(--np-surface-2)}
.np-acc-ic{width:24px;height:24px;flex:0 0 24px;display:flex;align-items:center;justify-content:center;border-radius:6px;background:var(--np-surface-2);color:var(--np-a);transition:transform .3s}
.np-acc.open .np-acc-ic{transform:rotate(45deg)}
.np-acc-body{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.4,0,.2,1)}
.np-acc-body-in{padding:0 24px 22px;color:var(--np-text-2);font-size:.95rem;line-height:1.7}

/* ---------- spotlight ---------- */
.np-spot{position:relative;overflow:hidden}
.np-spot::after{content:'';position:absolute;inset:0;border-radius:inherit;opacity:0;transition:opacity .3s;background:radial-gradient(300px circle at var(--np-sx,50%) var(--np-sy,50%),rgba(102,126,234,.12),transparent 60%);pointer-events:none}
.np-spot:hover::after{opacity:1}

/* ---------- before/after ---------- */
.np-ba{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.np-ba-col{border-radius:var(--np-r);padding:28px;border:1px solid var(--np-border)}
.np-ba--b{background:var(--np-surface);border-color:rgba(248,113,113,.25)}
.np-ba--a{background:linear-gradient(135deg,rgba(102,126,234,.12),rgba(52,211,153,.08));border-color:rgba(52,211,153,.3)}
.np-ba-title{font-size:1.05rem;font-weight:700;margin-bottom:18px}
.np-ba-list{display:flex;flex-direction:column;gap:12px}
.np-ba-item{display:flex;gap:11px;align-items:flex-start;font-size:.92rem;color:var(--np-text-2)}
.np-ba-item svg{width:18px;height:18px;flex:0 0 18px;margin-top:2px}
.np-ba-item--x svg{color:var(--np-red)}
.np-ba-item--x{color:var(--np-text-3);text-decoration:line-through;text-decoration-color:rgba(248,113,113,.4)}
.np-ba-item--ok svg{color:var(--np-green)}

/* ---------- final CTA ---------- */
.np-final{text-align:center;padding:100px 0;position:relative;overflow:hidden}
.np-final-card{background:linear-gradient(135deg,rgba(102,126,234,.16),rgba(118,75,162,.16));border:1px solid var(--np-border-s);border-radius:28px;padding:74px 40px;position:relative;overflow:hidden}
.np-final-card::before{content:'';position:absolute;top:-40%;left:-20%;width:60%;height:120%;background:radial-gradient(ellipse,rgba(102,126,234,.25),transparent 60%);pointer-events:none}
.np-final h2{font-size:clamp(1.8rem,4vw,3rem);font-weight:900;line-height:1.1;letter-spacing:-1px;margin-bottom:18px}
.np-final h2 .g{background:var(--np-grad-txt);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.np-final p{color:var(--np-text-2);max-width:620px;margin:0 auto 34px;font-size:1.05rem}
.np-hint{text-align:center;color:var(--np-text-3);font-size:13px;margin-top:20px}
.np-divider{height:1px;background:var(--np-border);max-width:1220px;margin:0 auto}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1024px){
  .np-g4{grid-template-columns:repeat(2,1fr)}
  .np-g3{grid-template-columns:repeat(2,1fr)}
  .np-hstat{padding:0 20px}
}
@media (max-width:820px){
  .np-nav-links{display:none}
  .np-burger{display:flex}
  .np-hero{padding:150px 0 70px}
  .np-flow-conn{flex-basis:26px}
  .np-flow-node{min-width:140px;padding:16px 14px}
  .np-ba{grid-template-columns:1fr}
  .np-layer{flex-wrap:wrap}
  .np-layer-tag{margin-left:0}
}
@media (max-width:560px){
  .np-g4,.np-g3,.np-g2{grid-template-columns:1fr}
  .np-hstat{flex-direction:column}
  .np-hero-stats{flex-direction:column;gap:18px}
  .np-hstat+.np-hstat::before{display:none}
  .np-section{padding:64px 0}
  .np-flow-conn{display:none}
  .np-flow{flex-direction:column;gap:12px;align-items:stretch}
  .np-flow-node{width:100%}
  .np-node{display:none}
}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s!important;animation-iteration-count:1!important;transition-duration:.001s!important;scroll-behavior:auto!important}
  [data-rv],[data-st]{opacity:1!important;transform:none!important}
  .np-chart .np-b{transform:scaleY(1)!important}
  body.np-page::before{animation:none!important}
  .np-mon-line{opacity:1!important}
}
