/* Portal NFS Landing V2 — Light/Dark Theme */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

/* ── Light Theme (default) ── */
:root{
  --bg:#f4f6f8;--bg2:#ffffff;--bg3:#e2e8f0;
  --t1:#0f172a;--t2:#475569;--t3:#94a3b8;
  --mc:#22c55e;--mc2:#3b82f6;--mc3:#f59e0b;--mc-rgb:34,197,94;
  --card-bg:rgba(255,255,255,.7);--card-border:rgba(226,232,240,.6);
  --header-bg:rgba(244,246,248,.88);--header-border:rgba(226,232,240,.5);
  --feat-bg:rgba(255,255,255,.6);--feat-hover-bg:rgba(255,255,255,.9);
  --grid-opacity:.4;--orb-opacity:.05;
  --err-bg:rgba(239,68,68,.06);--err-border:rgba(239,68,68,.15);
  --good-bg:rgba(34,197,94,.06);--good-border:rgba(34,197,94,.15);
  --subtle-bg:rgba(0,0,0,.03);--subtle-border:rgba(0,0,0,.06);
  --accent:#3b82f6;
}

/* ── Dark Theme ── */
body.dark{
  --bg:#0a0e1a;--bg2:#0f172a;--bg3:#1e293b;
  --t1:#f1f5f9;--t2:#c0cbda;--t3:#8494a7;
  --mc:#4ade80;--mc2:#60a5fa;--mc3:#fbbf24;--mc-rgb:74,222,128;
  --card-bg:rgba(30,41,59,.65);--card-border:rgba(255,255,255,.12);
  --header-bg:rgba(10,14,26,.8);--header-border:rgba(255,255,255,.08);
  --feat-bg:rgba(255,255,255,.05);--feat-hover-bg:rgba(255,255,255,.1);
  --grid-opacity:1;--orb-opacity:.1;
  --err-bg:rgba(239,68,68,.08);--err-border:rgba(239,68,68,.2);
  --good-bg:rgba(74,222,128,.08);--good-border:rgba(74,222,128,.2);
  --subtle-bg:rgba(255,255,255,.05);--subtle-border:rgba(255,255,255,.08);
  --accent:#60a5fa;
}

html{scroll-behavior:smooth;background:var(--bg)}
body{
  font-family:'Inter',system-ui,sans-serif;
  background:var(--bg)!important;
  color:var(--t2);
  line-height:1.75;
  overflow-x:hidden;
  transition:background .4s,color .4s;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
a{color:inherit;text-decoration:none}
img{max-width:100%}
svg{flex-shrink:0}

/* Grid background */
.grid-bg{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:var(--grid-opacity);transition:opacity .4s;
  background-image:linear-gradient(rgba(var(--mc-rgb),.03) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--mc-rgb),.03) 1px,transparent 1px);
  background-size:64px 64px}

/* Orbs */
.orb{position:fixed;border-radius:50%;pointer-events:none;z-index:0;opacity:calc(var(--orb-opacity) * 1.5);transition:opacity .4s;will-change:transform}
.orb-1{width:800px;height:800px;background:radial-gradient(circle at center, rgba(var(--mc-rgb),.3) 0%, transparent 60%);top:-250px;right:-150px;animation:float 12s ease-in-out infinite}
.orb-2{width:700px;height:700px;background:radial-gradient(circle at center, rgba(59,130,246,.3) 0%, transparent 60%);bottom:-200px;left:-150px;animation:float 16s ease-in-out infinite reverse}
.orb-3{width:500px;height:500px;background:radial-gradient(circle at center, rgba(245,158,11,.2) 0%, transparent 60%);top:40%;left:50%;animation:float 20s ease-in-out infinite}
@keyframes float{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(30px,-30px,0)}}

/* Layout */
.ctn{max-width:1240px;margin:0 auto;padding:0 40px;position:relative;z-index:2}
.ct{max-width:680px;margin-left:auto;margin-right:auto}

/* Header */
header{position:fixed;top:0;left:0;right:0;z-index:100;backdrop-filter:blur(8px);background:var(--header-bg);border-bottom:1px solid var(--header-border);transition:background .4s,border-color .4s}
.hdr{max-width:1240px;margin:0 auto;padding:14px 40px;display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.logo img{transition:filter .4s}
body.dark .logo img{filter:drop-shadow(0 0 6px rgba(96,165,250,.3)) brightness(1.15)}
.logo svg{width:36px;height:36px;min-width:36px;max-width:36px}
.logo-t{font-size:11px;font-weight:600;letter-spacing:.2em;color:#1b4f72;line-height:1;transition:color .4s}
.logo-t span{display:block;font-size:18px;font-weight:800;letter-spacing:.12em;margin-top:1px;color:#2ea84a}
.nav{display:flex;gap:32px}
.nav a{font-size:13.5px;font-weight:500;color:var(--t3);transition:color .2s;letter-spacing:.01em}
.nav a:hover{color:var(--mc)}
.hdr-b{display:flex;gap:10px;align-items:center}

/* Theme toggle */
.theme-toggle{width:36px;height:36px;border-radius:10px;border:1px solid var(--header-border);background:var(--subtle-bg);
  display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--t3);transition:all .2s}
.theme-toggle:hover{background:rgba(var(--mc-rgb),0.1);color:var(--mc);border-color:rgba(var(--mc-rgb),0.2)}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;border-radius:10px;font-size:13.5px;font-weight:600;transition:all .25s;border:none;cursor:pointer;font-family:inherit;letter-spacing:.01em}
.bg{background:var(--subtle-bg);color:var(--t2);border:1px solid var(--header-border);transition:all .2s}
.bg:hover{background:var(--feat-hover-bg)}
.bp{background:#22c55e;color:#fff;box-shadow:0 4px 20px rgba(var(--mc-rgb),.3)}
.bp:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(var(--mc-rgb),.45)}
.bl{font-size:16px;padding:15px 36px;border-radius:14px;letter-spacing:.005em}

/* Hero — split layout */
.hero{padding:140px 0 80px}
.hero-split{display:grid;grid-template-columns:1.2fr 1fr;gap:56px;align-items:center}
.hero-text{text-align:left}
.hero-text .sub{margin:0 0 32px}
.hero-text .trust{justify-content:flex-start}
.hero-text .hbtns{justify-content:flex-start}
.badge{display:inline-flex;align-items:center;gap:9px;padding:7px 18px;border-radius:99px;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mc);background:rgba(var(--mc-rgb),.08);border:1px solid rgba(var(--mc-rgb),.2);margin-bottom:36px}
.pulse{width:7px;height:7px;border-radius:50%;background:var(--mc);animation:pulse 2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}

h1{
  font-family:'Plus Jakarta Sans','Inter',system-ui,sans-serif;
  font-size:clamp(34px,4vw,52px);
  font-weight:900;
  color:var(--t1);
  line-height:1.15;
  letter-spacing:-.03em;
  margin-bottom:24px;
  transition:color .4s;
}
.gr{color:#22c55e}
.sub{font-size:18px;color:var(--t2);max-width:580px;margin:0 auto 32px;line-height:1.75;transition:color .4s}
.trust{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 28px;margin-bottom:36px}
.trust span{font-size:13px;color:var(--t3);font-weight:500;letter-spacing:.01em}
.hbtns{display:flex;justify-content:center;gap:16px;flex-wrap:wrap}
.micro{font-size:12px;color:var(--t3);margin-top:18px;letter-spacing:.01em}

/* Hero mockup */
.hero-mockup{position:relative;margin-right:-120px}
.hero-screenshot{width:100%;border-radius:14px;box-shadow:0 28px 88px rgba(0,0,0,.3),0 0 0 1px rgba(255,255,255,.06);display:block}
body.dark .hero-screenshot{box-shadow:0 28px 88px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.04)}
.screenshot-dark{display:none}
.screenshot-light{display:block}
body.dark .screenshot-dark{display:block}
body.dark .screenshot-light{display:none}

/* Highlight banner */
.hl-banner{display:flex;align-items:center;gap:16px;background:rgba(var(--mc-rgb),.06);border:1px solid rgba(var(--mc-rgb),.25);border-radius:14px;padding:18px 24px;margin:28px auto;max-width:640px;text-align:left}
.hl-banner svg{width:24px;height:24px;min-width:24px;color:var(--mc3)}
.hl-banner span{font-size:14px;color:var(--t2);line-height:1.65}
.hl-banner strong{color:var(--mc)}
.hl-banner em{color:var(--mc2);font-style:normal;font-weight:600}

/* Sections */
.sec{padding:72px 0}
.ey{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--mc2);margin-bottom:16px}

.st{
  font-family:'Plus Jakarta Sans','Inter',system-ui,sans-serif;
  font-size:clamp(30px,3.8vw,50px);
  font-weight:800;
  color:var(--t1);
  line-height:1.12;
  letter-spacing:-.028em;
  margin-bottom:20px;
  transition:color .4s;
}
.sd{font-size:17px;color:var(--t2);margin-bottom:36px;line-height:1.78;transition:color .4s}

/* Problem cards */
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.pc{background:var(--feat-bg);border:1px solid var(--card-border);border-radius:18px;padding:36px 28px;transition:all .3s;position:relative}
.pc:hover{transform:translateY(-5px);border-color:rgba(239,68,68,.3);box-shadow:0 12px 36px rgba(239,68,68,.09)}
.pn{position:absolute;top:18px;right:20px;font-size:34px;font-weight:900;color:rgba(239,68,68,.18);line-height:1}
.pi{width:44px;height:44px;min-width:44px;max-width:44px;border-radius:11px;background:var(--err-bg);display:flex;align-items:center;justify-content:center;margin-bottom:20px;overflow:hidden}
.pi svg{width:20px;height:20px;min-width:20px;max-width:20px;min-height:20px;max-height:20px;color:#ef4444}
.pc h3{font-size:15.5px;font-weight:700;color:var(--t1);margin-bottom:10px;transition:color .4s;letter-spacing:-.01em}
.pc p{font-size:14px;color:var(--t2);line-height:1.65}

/* Pipeline flow */
.flow{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:48px}
.fs{background:rgba(var(--mc-rgb),.05);border:1px solid rgba(var(--mc-rgb),.15);border-radius:16px;padding:24px 22px;text-align:center;min-width:124px;transition:all .3s}
.fs:hover{transform:translateY(-5px);border-color:rgba(var(--mc-rgb),.4);box-shadow:0 12px 36px rgba(var(--mc-rgb),.11)}
.fn{width:30px;height:30px;border-radius:50%;background:#22c55e;color:#fff;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;margin:0 auto 14px}
.fs strong{display:block;font-size:13.5px;font-weight:700;color:var(--t1);margin-bottom:6px;transition:color .4s;letter-spacing:-.01em}
.fs span{font-size:11.5px;color:var(--t3);letter-spacing:.01em}
.fa{color:var(--mc3);font-size:18px;font-weight:700}

/* Feature grids */
.fgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.fgrid.c2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.fgrid.c3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.ft{background:var(--feat-bg);border:1px solid var(--card-border);border-radius:18px;padding:36px 30px;transition:all .3s}
.ft:hover{transform:translateY(-5px);border-color:rgba(var(--mc-rgb),.25);box-shadow:0 12px 36px rgba(var(--mc-rgb),.07)}
.fi{width:44px;height:44px;min-width:44px;max-width:44px;border-radius:11px;background:rgba(59,130,246,.1);display:flex;align-items:center;justify-content:center;margin-bottom:20px;overflow:hidden}
.fi svg{width:20px;height:20px;min-width:20px;max-width:20px;min-height:20px;max-height:20px;color:var(--mc2)}
.ft h3{font-size:15.5px;font-weight:700;color:var(--t1);margin-bottom:10px;transition:color .4s;letter-spacing:-.01em}
.ft p{font-size:14px;color:var(--t2);line-height:1.68}

/* Comparison */
.comp-g{display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:center;margin-top:48px}
.cc{padding:40px 36px;border-radius:20px;transition:background .4s,border-color .4s}
.cb{background:var(--err-bg);border:1px solid var(--err-border)}
.ca{background:var(--good-bg);border:1px solid var(--good-border)}
.cl{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-bottom:14px}
.cb .cl{color:#ef4444}.ca .cl{color:var(--mc)}
.cc h3{font-size:19px;font-weight:800;color:var(--t1);margin-bottom:22px;transition:color .4s;letter-spacing:-.02em}
.clist{list-style:none;display:flex;flex-direction:column;gap:13px}
.clist li{display:flex;align-items:center;gap:11px;font-size:14px;color:var(--t2);line-height:1.5}
.clist svg{width:18px;height:18px;min-width:18px;max-width:18px;min-height:18px;max-height:18px;flex-shrink:0}
.cvs span{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:var(--subtle-bg);border:1px solid var(--card-border);font-size:12px;font-weight:800;color:var(--t3);transition:background .4s,border-color .4s}

/* Proof */
.proof{display:flex;flex-direction:column;gap:12px;align-items:center;margin-top:40px}
.proof span{font-size:15px;color:var(--t2);font-weight:500;letter-spacing:.005em}

/* Pricing */
.pcard{max-width:440px;margin:40px auto 0;background:var(--feat-bg);border:1px solid rgba(var(--mc-rgb),.2);border-radius:24px;padding:52px 44px;text-align:center;transition:background .4s,border-color .4s}
.pf{font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--mc);margin-bottom:6px}
.pv{
  font-family:'Plus Jakarta Sans','Inter',system-ui,sans-serif;
  font-size:58px;
  font-weight:900;
  color:var(--t1);
  line-height:1.05;
  margin-bottom:6px;
  transition:color .4s;
  letter-spacing:-.03em;
}
.pp{font-size:13.5px;color:var(--t3);margin-bottom:32px;letter-spacing:.01em}
.plist{list-style:none;text-align:left;display:flex;flex-direction:column;gap:13px;margin-bottom:36px}
.plist li{display:flex;align-items:center;gap:12px;font-size:14.5px;color:var(--t2)}
.plist svg{width:16px;height:16px;color:var(--mc);flex-shrink:0}

/* CTA final */
.cta{padding:80px 0 64px}
.cta h2{
  font-family:'Plus Jakarta Sans','Inter',system-ui,sans-serif;
  font-size:clamp(32px,4.2vw,52px);
  font-weight:900;
  color:var(--t1);
  line-height:1.1;
  margin-bottom:18px;
  transition:color .4s;
  letter-spacing:-.028em;
}
.back{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;color:var(--t3);margin-top:36px;transition:color .2s;letter-spacing:.01em}
.back:hover{color:var(--mc)}
.back svg{width:16px;height:16px}

/* Footer */
footer{border-top:1px solid var(--header-border);padding:32px 0;text-align:center;transition:border-color .4s}
footer p{font-size:13px;color:var(--t3);letter-spacing:.01em}
footer a{color:var(--t3);text-decoration:underline}
footer a:hover{color:var(--mc)}

/* Tablet */
@media(max-width:960px){
  .ctn{padding:0 28px}
  .hdr{padding:14px 28px}
}
/* Mobile (Unified iPhone 12 Base) */
@media(max-width:768px){
  .nav{display:none}
  .hdr-b .btn{padding: 8px 14px; font-size: 12.5px;}
  .hero{padding:120px 0 56px}
  .hero-split{grid-template-columns:1fr;gap:40px}
  .hero-text{text-align:center}
  .hero-text .sub{margin:0 auto 32px}
  .hero-text .trust{justify-content:center}
  .hero-text .hbtns{justify-content:center}
  h1{font-size:36px;letter-spacing:-.025em}
  .st{font-size:28px;letter-spacing:-.02em}
  .sec{padding:56px 0}
  .fgrid,.pgrid{grid-template-columns:1fr}
  .comp-g{grid-template-columns:1fr;gap:16px}
  .cvs{transform:rotate(90deg)}
  .flow{flex-direction:column}
  .fa{transform:rotate(90deg)}
  .trust{flex-direction:column;align-items:center}
  .ctn{padding:0 24px}
  .hdr{padding:12px 24px}
  .pcard{padding:40px 24px}
  .pv{font-size:48px}
  .cta{padding:56px 0 48px}
  .ft{padding:28px 24px}
  .pc{padding:28px 24px}
  .bl{font-size:15px;padding:14px 28px}
  .cc{padding:28px 24px}
}

/* ── Scroll Reveal Animations ── */
[data-anim]{opacity:0;transition:opacity .45s cubic-bezier(.23,1,.32,1),transform .45s cubic-bezier(.23,1,.32,1)}
[data-anim].visible{opacity:1;transform:none!important}

[data-anim="fade-up"]{transform:translateY(40px)}
[data-anim="fade-down"]{transform:translateY(-40px)}
[data-anim="fade-left"]{transform:translateX(-40px)}
[data-anim="fade-right"]{transform:translateX(40px)}
[data-anim="scale-in"]{transform:scale(.88)}
[data-anim="zoom"]{transform:scale(.92)}

/* Stagger children */
[data-stagger]>[data-anim]{transition-delay:calc(var(--i,0) * 60ms)}

/* Pipeline arrow bounce */
.fa{transition:opacity .5s,transform .5s;opacity:0;transform:translateX(-10px)}
.fa.visible{opacity:1;transform:translateX(0);animation:arrowBounce 1s ease-in-out infinite}
@keyframes arrowBounce{0%,100%{transform:translateX(0)}50%{transform:translateX(6px)}}

/* Hero entrance */
.hero-text{animation:heroFadeIn .6s ease-out both}
.hero-mockup{animation:heroSlideIn .7s .15s ease-out both}
@keyframes heroFadeIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@keyframes heroSlideIn{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:none}}

/* Counter animation */
@keyframes countUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.pv.visible{animation:countUp .6s ease-out both}

/* Reduce motion preference */
@media(prefers-reduced-motion:reduce){
  [data-anim],[data-anim].visible,.fa,.fa.visible,.hero-text,.hero-mockup{
    animation:none!important;transition:none!important;opacity:1!important;transform:none!important
  }
}
