.ni-home{

    --ink: #0C0B09;

    --ink-2: #17140F;

    --cream: #FFFFFF;

    --cream-dim: #F7F7F7;

    --red: #F10A22;

    --red-deep: #C40819;

    --red-glow: rgba(241,10,34,0.55);

    --stone: #8A8375;

    --stone-line: #D8D0BE;

    --line-dark: rgba(255,255,255,0.14);

    --green: #35C37D;

    --blue: #3AA8E0;

    --purple: #9B6BE0;

    --green-glow: rgba(53,195,125,0.55);

    --blue-glow: rgba(58,168,224,0.55);

    --purple-glow: rgba(155,107,224,0.55);

    --max-w: 1180px;

  }

  .ni-home, .ni-home *{box-sizing:border-box;}

  

  .ni-home .reveal{

    opacity:0; transform:translateY(22px);

    transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);

  }

  .ni-home .reveal.is-visible{opacity:1; transform:translateY(0);}

  @media (prefers-reduced-motion: reduce){

    .ni-home .reveal{opacity:1; transform:none; transition:none;}

  }

  .ni-home{

    margin:0;

    background:var(--cream);

    color:var(--ink);

    font-family:"IBM Plex Sans", sans-serif;

    font-size:17px;

    line-height:1.55;

    -webkit-font-smoothing:antialiased;

  }

  .ni-home h1, .ni-home h2, .ni-home h3, .ni-home .wordmark{

    font-family:"Space Grotesk", sans-serif;

    font-weight:600;

    letter-spacing:-0.01em;

    margin:0;

  }

  .ni-home a{color:inherit;}

  .ni-home img{display:block; max-width:100%;}

  .ni-home .wrap{max-width:var(--max-w); margin:0 auto; padding:0 32px;}

  @media (max-width:640px){ .ni-home .wrap{padding:0 20px;} }



  /* ---------- Header ---------- */

  .ni-home header{

    position:sticky; top:0; z-index:30;

    background:rgba(12,11,9,0.88);

    backdrop-filter:blur(10px);

    border-bottom:1px solid var(--line-dark);

  }

  .ni-home .nav-row{

    display:flex; align-items:center; justify-content:space-between;

    padding:16px 0;

  }

  .ni-home .brand-cluster{display:flex; align-items:center; gap:16px;}

  .ni-home .ni-logo-header{height:34px; width:auto;}

  .ni-home .brand-sep{width:1px; height:22px; background:var(--line-dark);}

  .ni-home .bigads-logo-header{height:16px; width:auto; opacity:0.9;}

  .ni-home nav.links{display:flex; gap:36px; font-size:15px;}

  .ni-home nav.links a{text-decoration:none; color:var(--cream); opacity:0.6; transition:opacity .15s;}

  .ni-home nav.links a:hover{opacity:1;}

  .ni-home .cta-btn{

    display:inline-block;

    position:relative; overflow:hidden;

    background:var(--red); color:var(--cream);

    font-family:"IBM Plex Sans", sans-serif; font-weight:600; font-size:15px;

    padding:12px 22px; border-radius:3px;

    text-decoration:none; white-space:nowrap;

    border:1px solid var(--red);

    box-shadow:0 0 0 0 var(--red-glow);

    transition:background .18s, box-shadow .25s, transform .15s;

  }

  .ni-home .cta-btn::after{

    content:""; position:absolute; top:0; left:-60%; width:40%; height:100%;

    background:linear-gradient(115deg, transparent, rgba(255,255,255,0.35), transparent);

    animation:ctaShimmer 3.4s ease-in-out infinite;

  }

  @keyframes ctaShimmer{

    0%{ left:-60%; }

    35%{ left:130%; }

    100%{ left:130%; }

  }

  .ni-home .cta-btn:hover{background:var(--red-deep); border-color:var(--red-deep); box-shadow:0 0 26px var(--red-glow); transform:translateY(-1px);}

  @media (prefers-reduced-motion: reduce){

    .ni-home .cta-btn::after{animation:none !important; display:none;}

  }

  .ni-home .cta-ghost{

    display:inline-block;

    background:transparent; color:var(--cream);

    font-weight:500; font-size:15px;

    padding:12px 22px; border-radius:3px;

    text-decoration:none; border:1px solid rgba(255,255,255,0.35);

    transition:border-color .15s, background .15s;

  }

  .ni-home .cta-ghost:hover{border-color:var(--cream); background:rgba(255,255,255,0.06);}

  .ni-home .closing .cta-ghost{color:var(--ink); border-color:rgba(21,19,15,0.35);}

  .ni-home .closing .cta-ghost:hover{border-color:var(--ink); background:rgba(21,19,15,0.06);}

  @media (max-width:860px){ .ni-home nav.links{display:none;} }



  /* ---------- Hero (dark, high impact) ---------- */

  .ni-home .hero{

    background:radial-gradient(ellipse 90% 70% at 30% 20%, #221510 0%, var(--ink) 55%), var(--ink);

    color:var(--cream);

    padding:88px 0 0;

    position:relative;

    overflow:hidden;

  }

  .ni-home .hero-glow{

    position:absolute; inset:-20%; z-index:0; pointer-events:none;

    filter:blur(60px); opacity:0.55;

  }

  .ni-home .hero-glow span{

    position:absolute; border-radius:50%;

    width:38%; height:38%;

  }

  .ni-home .hero-glow span.b1{background:radial-gradient(circle, rgba(58,168,224,0.5) 0%, transparent 70%); top:6%; left:4%; animation:blobDrift1 22s ease-in-out infinite;}

  .ni-home .hero-glow span.b2{background:radial-gradient(circle, rgba(155,107,224,0.45) 0%, transparent 70%); top:40%; right:2%; animation:blobDrift2 26s ease-in-out infinite;}

  .ni-home .hero-glow span.b3{background:radial-gradient(circle, rgba(53,195,125,0.4) 0%, transparent 70%); bottom:0%; left:30%; animation:blobDrift3 30s ease-in-out infinite;}

  @keyframes blobDrift1{

    0%,100%{ transform:translate(0,0) scale(1); }

    50%{ transform:translate(8%,10%) scale(1.15); }

  }

  @keyframes blobDrift2{

    0%,100%{ transform:translate(0,0) scale(1); }

    50%{ transform:translate(-10%,6%) scale(1.1); }

  }

  @keyframes blobDrift3{

    0%,100%{ transform:translate(0,0) scale(1); }

    50%{ transform:translate(6%,-8%) scale(1.2); }

  }

  @media (prefers-reduced-motion: reduce){

    .ni-home .hero-glow span{animation:none !important;}

  }

  .ni-home .hero-grid{

    display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center;

    position:relative; z-index:2;

    padding-bottom:70px;

  }

  @media (max-width:900px){ .ni-home .hero-grid{grid-template-columns:1fr;} }

  .ni-home .hero h1{

    font-size:clamp(38px, 5vw, 62px);

    line-height:1.03;

    letter-spacing:-0.02em;

  }

  .ni-home .hero h1 .red{color:var(--red); text-shadow:0 0 34px var(--red-glow);}

  .ni-home .hword{

    display:inline-block; opacity:0; transform:translateY(16px);

    animation:wordIn .65s cubic-bezier(.2,.7,.2,1) forwards;

  }

  @keyframes wordIn{ to{ opacity:1; transform:translateY(0); } }

  @media (prefers-reduced-motion: reduce){

    .ni-home .hword{animation:none !important; opacity:1; transform:none;}

  }

  .ni-home .hero p.lede{

    font-size:19.5px; color:#C9C3B4; max-width:46ch; margin-top:24px;

  }

  .ni-home .hero-ctas{display:flex; gap:14px; margin-top:34px; flex-wrap:wrap;}

  .ni-home .hero-note{

    margin-top:24px; font-size:13.5px; color:#7A7568;

  }



  .ni-home .ni-diagram-box{

    position:relative; width:min(100%, 500px); aspect-ratio:1/1; margin:0 auto;

    isolation:isolate;

  }

  .ni-home .ni-dot-field{position:absolute; inset:0;}

  .ni-home .ni-orbit-ring{

    position:absolute; left:50%; top:50%;

    width:80%; height:38%;

    border:1px solid rgba(241,10,34,0.4);

    border-radius:50%;

    transform:translate(-50%,-50%) rotate(-14deg);

    box-shadow:0 0 40px rgba(241,10,34,0.08) inset;

  }

  .ni-home .ni-dot{

    position:absolute; border-radius:50%;

    background:#3A362D;

    opacity:0;

    animation:appear .5s ease forwards;

  }

  .ni-home .ni-dot.hot{

    background:var(--red);

    box-shadow:0 0 10px 2px var(--red-glow);

  }

  @keyframes appear{ to{opacity:1;} }

  @keyframes pulse{

    0%,100%{ box-shadow:0 0 8px 1px var(--red-glow); }

    50%{ box-shadow:0 0 20px 6px var(--red-glow); }

  }

  .ni-home .ni-dot.hot{animation:appear .5s ease forwards, pulse 2.4s ease-in-out infinite;}

  .ni-home .ni-signal-particle{

    position:absolute; width:6px; height:6px; border-radius:50%;

    animation-timing-function:ease-in-out;

    animation-iteration-count:infinite;

  }

  .ni-home .ni-signal-particle.c-blue{background:var(--blue); box-shadow:0 0 8px 2px var(--blue-glow);}

  .ni-home .ni-signal-particle.c-purple{background:var(--purple); box-shadow:0 0 8px 2px var(--purple-glow);}

  .ni-home .ni-signal-particle.c-green{background:var(--green); box-shadow:0 0 8px 2px var(--green-glow);}

  .ni-home .ni-signal-particle.p1{animation-name:travelA; animation-duration:5s;}

  .ni-home .ni-signal-particle.p2{animation-name:travelB; animation-duration:6.2s; animation-delay:1.1s;}

  .ni-home .ni-signal-particle.p3{animation-name:travelC; animation-duration:5.6s; animation-delay:2.3s;}

  .ni-home .ni-signal-particle.p4{animation-name:travelA; animation-duration:5.4s; animation-delay:3s;}

  .ni-home .ni-signal-particle.p5{animation-name:travelB; animation-duration:5.9s; animation-delay:.4s;}

  .ni-home .ni-signal-particle.p6{animation-name:travelC; animation-duration:6.6s; animation-delay:2s;}

  @keyframes travelA{

    0%{ left:6%; top:14%; opacity:0; }

    10%{ opacity:1; }

    85%{ opacity:1; }

    100%{ left:33%; top:37%; opacity:0; }

  }

  @keyframes travelB{

    0%{ left:90%; top:20%; opacity:0; }

    10%{ opacity:1; }

    85%{ opacity:1; }

    100%{ left:35%; top:39%; opacity:0; }

  }

  @keyframes travelC{

    0%{ left:14%; top:88%; opacity:0; }

    10%{ opacity:1; }

    85%{ opacity:1; }

    100%{ left:36%; top:41%; opacity:0; }

  }

  @media (prefers-reduced-motion: reduce){

    .ni-home .ni-signal-particle{animation:none !important; opacity:0;}

  }

  .ni-home .ni-garden{

    position:absolute; left:10%; top:14%; width:48%; height:48%;

    border-radius:50%;

    background:radial-gradient(circle at 35% 30%, #2A2721 0%, #14120E 70%);

    border:1px solid var(--line-dark);

    display:flex; align-items:center; justify-content:center;

    animation:gardenBreathe 6s ease-in-out infinite;

    z-index:2;

  }

  @keyframes gardenBreathe{

    0%,100%{ box-shadow:0 0 0 0 rgba(0,0,0,0); transform:scale(1); }

    50%{ box-shadow:0 0 30px 4px rgba(241,10,34,0.08); transform:scale(1.015); }

  }

  @media (prefers-reduced-motion: reduce){

    .ni-home .ni-garden{animation:none !important;}

  }

  .ni-home .ni-garden-label{

    color:var(--cream); font-family:"Space Grotesk", sans-serif; font-weight:600;

    font-size:14px; text-align:center; line-height:1.35; padding:0 14px;

  }

  .ni-home .ni-garden-label small{

    display:block; font-family:"IBM Plex Sans", sans-serif; font-weight:400;

    font-size:11.5px; color:#8A8375; margin-top:4px;

  }

  .ni-home .ni-open-label{

    position:absolute; right:2%; bottom:7%;

    width:190px; padding:12px 14px 13px;

    color:var(--cream); text-align:left; line-height:1.35;

    background:rgba(12,11,9,0.78);

    border-left:2px solid var(--red);

    border-radius:2px;

    box-shadow:0 12px 32px rgba(0,0,0,0.22);

    backdrop-filter:blur(5px);

    z-index:4;

  }

  .ni-home .ni-open-label b{

    color:var(--red); display:block;

    font-family:"Space Grotesk",sans-serif; font-size:30px; line-height:1;

    margin-bottom:7px; text-shadow:0 0 20px var(--red-glow);

  }

  .ni-home .ni-open-label span{display:block; font-size:13px; font-weight:500; color:#D9D3C6;}

  @media (max-width:1050px) and (min-width:901px){

    .ni-home .ni-open-label{width:165px; right:0; bottom:3%; padding:10px 12px;}

    .ni-home .ni-open-label b{font-size:26px;}

    .ni-home .ni-open-label span{font-size:12px;}

  }

  @media (max-width:900px){

    .ni-home .ni-diagram-box{width:min(100%, 520px); margin-top:8px;}

  }

  @media (max-width:520px){

    .ni-home .ni-open-label{width:155px; right:0; bottom:1%; padding:9px 10px;}

    .ni-home .ni-open-label b{font-size:24px; margin-bottom:5px;}

    .ni-home .ni-open-label span{font-size:11.5px;}

  }



  /* ---------- Proof strip ---------- */

  .ni-home .proof-strip{

    border-top:1px solid var(--line-dark);

    background:rgba(244,239,227,0.02);

  }

  .ni-home .proof-kicker{

    padding-top:18px; font-size:11px; letter-spacing:.06em; font-weight:600; color:#7A7568;

  }

  .ni-home .proof-inner{

    display:grid; grid-template-columns:repeat(3,1fr);

    padding:12px 0 30px;

  }

  @media (max-width:820px){ .ni-home .proof-inner{grid-template-columns:1fr; row-gap:26px;} }

  .ni-home .proof-item{

    display:flex; align-items:flex-start; gap:12px;

    padding:0 20px;

    border-left:1px solid var(--line-dark);

  }

  .ni-home .proof-inner .proof-item:first-child{border-left:none; padding-left:0;}

  @media (max-width:820px){

    .ni-home .proof-item{border-left:none; padding-left:0;}

  }

  .ni-home .proof-dot{

    width:9px; height:9px; border-radius:50%; margin-top:8px; flex:none;

    animation:proofPulse 2.6s ease-in-out infinite;

  }

  .ni-home .proof-dot.g{background:var(--green); box-shadow:0 0 10px rgba(53,195,125,0.6);}

  .ni-home .proof-dot.b{background:var(--blue); box-shadow:0 0 10px rgba(58,168,224,0.6); animation-delay:.4s;}

  .ni-home .proof-dot.p{background:var(--purple); box-shadow:0 0 10px rgba(155,107,224,0.6); animation-delay:.8s;}

  .ni-home .proof-dot.r{background:var(--red); box-shadow:0 0 10px rgba(241,10,34,0.6); animation-delay:1.2s;}

  @keyframes proofPulse{

    0%,100%{ transform:scale(1); }

    50%{ transform:scale(1.35); }

  }

  @media (prefers-reduced-motion: reduce){

    .ni-home .proof-dot{animation:none !important;}

  }

  .ni-home .proof-num{

    font-family:"Space Grotesk", sans-serif; font-weight:700; font-size:26px; color:var(--cream); line-height:1.1;

  }

  .ni-home .proof-label{font-size:13px; color:#8A8375; margin-top:4px; max-width:22ch;}



  /* ---------- Section shells ---------- */

  .ni-home section{padding:80px 0;}

  .ni-home .section-head{max-width:640px; margin-bottom:44px;}

  .ni-home .section-head h2{font-size:clamp(28px,3.2vw,38px); line-height:1.12;}

  .ni-home .section-head p{color:#3a3730; margin-top:14px; font-size:16.5px;}



  /* ---------- Split stat section w/ donut ---------- */

  .ni-home .split{

    display:grid; grid-template-columns:0.85fr 1.15fr; gap:56px; align-items:center;

  }

  @media (max-width:820px){ .ni-home .split{grid-template-columns:1fr;} }

  .ni-home .donut-wrap{display:flex; align-items:center; gap:26px;}

  .ni-home .donut-svg-outer{position:relative; width:150px; height:150px; flex:none;}

  .ni-home .donut-ring-spin{

    position:absolute; inset:-10px; border-radius:50%;

    border:2px dashed rgba(241,10,34,0.28);

    animation:spinSlow 18s linear infinite;

  }

  @keyframes spinSlow{ to{ transform:rotate(360deg); } }

  .ni-home .donut-svg{width:150px; height:150px; flex:none; position:relative; z-index:1;}

  .ni-home .donut-svg circle{transition:stroke-dashoffset 1.4s cubic-bezier(.4,0,.2,1);}

  @media (prefers-reduced-motion: reduce){

    .ni-home .donut-ring-spin{animation:none !important;}

  }

  .ni-home .stat-copy .stat-num{

    font-family:"Space Grotesk", sans-serif; font-weight:700;

    font-size:60px; line-height:1; color:var(--ink);

  }

  .ni-home .stat-copy .stat-caption{margin-top:10px; font-size:15px; color:var(--stone); max-width:24ch;}

  .ni-home .split-copy p{font-size:16.5px; color:#3a3730; margin:0 0 16px;}

  .ni-home .split-copy p:last-child{margin-bottom:0;}



  /* ---------- Signal-to-sale flow ---------- */

  .ni-home .flow-row{

    display:flex; align-items:center; justify-content:space-between;

    gap:6px; flex-wrap:wrap;

  }

  @media (max-width:760px){ .ni-home .flow-row{flex-direction:column; align-items:flex-start;} }

  .ni-home .flow-node{

    display:flex; flex-direction:column; align-items:center; gap:12px;

    text-align:center; width:118px; flex:none;

  }

  @media (max-width:760px){ .ni-home .flow-node{flex-direction:row; text-align:left; width:auto; gap:16px;} }

  .ni-home .flow-icon{

    width:56px; height:56px; border-radius:50%; flex:none;

    display:flex; align-items:center; justify-content:center;

    color:var(--cream);

    animation:flowBob 3.2s ease-in-out infinite;

  }

  .ni-home .flow-icon svg{width:24px; height:24px;}

  .ni-home .flow-icon.fi-blue{background:var(--blue); box-shadow:0 8px 22px -6px var(--blue-glow);}

  .ni-home .flow-icon.fi-purple{background:var(--purple); box-shadow:0 8px 22px -6px var(--purple-glow); animation-delay:.3s;}

  .ni-home .flow-icon.fi-red{background:var(--red); box-shadow:0 8px 22px -6px var(--red-glow); animation-delay:.6s;}

  .ni-home .flow-icon.fi-green{background:var(--green); box-shadow:0 8px 22px -6px var(--green-glow); animation-delay:.9s;}

  @keyframes flowBob{

    0%,100%{ transform:translateY(0); }

    50%{ transform:translateY(-6px); }

  }

  .ni-home .flow-label{font-size:14px; font-weight:500; color:var(--ink); max-width:110px;}

  .ni-home .flow-line{

    flex:1; min-width:36px; height:2px; position:relative;

    background:var(--stone-line); overflow:hidden; align-self:center;

    margin-top:-30px;

  }

  @media (max-width:760px){

    .ni-home .flow-line{width:2px; height:34px; min-width:0; margin:0 0 0 27px;}

  }

  .ni-home .flow-dash{

    position:absolute; top:0; left:-30%; width:30%; height:100%;

    animation:flowMove 2.4s linear infinite;

  }

  @media (max-width:760px){ .ni-home .flow-dash{left:0; top:-30%; width:100%; height:30%; animation:flowMoveV 2.4s linear infinite;} }

  .ni-home .flow-dash.fd-blue{background:linear-gradient(90deg, transparent, var(--blue), transparent);}

  .ni-home .flow-dash.fd-purple{background:linear-gradient(90deg, transparent, var(--purple), transparent); animation-delay:.5s;}

  .ni-home .flow-dash.fd-red{background:linear-gradient(90deg, transparent, var(--red), transparent); animation-delay:1s;}

  @keyframes flowMove{ to{ left:100%; } }

  @keyframes flowMoveV{

    from{ background:linear-gradient(180deg, transparent, var(--blue), transparent); top:-30%; }

    to{ top:100%; }

  }

  @media (prefers-reduced-motion: reduce){

    .ni-home .flow-icon, .ni-home .flow-dash{animation:none !important;}

  }



  /* ---------- Product tour ---------- */

  .ni-home .tour-tabs{

    display:flex; gap:8px; margin-bottom:26px; flex-wrap:wrap;

  }

  .ni-home .tour-tab{

    display:flex; align-items:center; gap:9px;

    background:transparent; border:1px solid var(--stone-line);

    border-radius:30px; padding:10px 18px 10px 14px;

    font-family:"IBM Plex Sans", sans-serif; font-size:14.5px; font-weight:500; color:var(--ink);

    cursor:pointer; transition:background .15s, border-color .15s, color .15s;

  }

  .ni-home .tour-tab .swatch{width:9px; height:9px; border-radius:50%; flex:none;}

  .ni-home .tour-tab.active{background:var(--ink); border-color:var(--ink); color:var(--cream);}

  .ni-home .tour-tab:nth-child(1).active{background:var(--green); border-color:var(--green);}

  .ni-home .tour-tab:nth-child(2).active{background:var(--purple); border-color:var(--purple);}

  .ni-home .tour-tab:nth-child(3).active{background:var(--blue); border-color:var(--blue);}

  .ni-home .tour-tab:not(.active):hover{border-color:var(--ink);}

  .ni-home .tour-frame-outer{ perspective:1400px; }

  .ni-home .tour-frame-outer .accent-bar{

    height:3px; border-radius:2px; margin-bottom:14px;

    background:var(--green); width:33%;

    transition:background .3s ease, width .3s ease, margin-left .3s ease;

  }

  .ni-home .tour-frame{

    position:relative; border-radius:10px; overflow:hidden;

    background:#0C0B09; box-shadow:0 24px 60px -20px rgba(12,11,9,0.45);

    border:1px solid rgba(12,11,9,0.08);

    transition:box-shadow .3s ease, transform .25s ease;

    transform-style:preserve-3d;

    will-change:transform;

  }

  .ni-home .tour-frame{ --tour-glow: rgba(53,195,125,0.55); }

  .ni-home .tour-frame:hover{ box-shadow:0 30px 70px -18px rgba(12,11,9,0.55), 0 0 0 1px var(--tour-glow); }

  .ni-home .tour-chrome{

    display:flex; align-items:center; justify-content:space-between; gap:12px;

    padding:13px 18px; background:#161410;

  }

  .ni-home .tour-live{display:flex; align-items:center; gap:8px; font-size:12.5px; color:#B7B2A6; font-weight:500;}

  .ni-home .tour-live .live-dot{

    width:8px; height:8px; border-radius:50%; background:var(--green);

    box-shadow:0 0 0 0 rgba(53,195,125,0.6);

    animation:liveDotPulse 2s ease-in-out infinite;

  }

  @keyframes liveDotPulse{

    0%{ box-shadow:0 0 0 0 rgba(53,195,125,0.55); }

    70%{ box-shadow:0 0 0 8px rgba(53,195,125,0); }

    100%{ box-shadow:0 0 0 0 rgba(53,195,125,0); }

  }

  .ni-home .tour-chrome .tour-screen-name{font-size:12.5px; color:#7A7568; font-weight:500;}

  .ni-home .tour-imgs{position:relative; aspect-ratio:1400/731; background:#0C0B09; overflow:hidden;}

  .ni-home .tour-imgs img{

    position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:top;

    opacity:0; transform:scale(1.015); transition:opacity .4s ease, transform .6s ease;

  }

  .ni-home .tour-imgs img.active{opacity:1; transform:scale(1);}

  .ni-home .tour-frame:hover .tour-imgs img.active{transform:scale(1.02);}

  .ni-home .tour-caption{

    display:flex; justify-content:space-between; align-items:flex-start; gap:20px;

    margin-top:18px; flex-wrap:wrap;

  }

  .ni-home .tour-caption p{font-size:15px; color:#3a3730; max-width:56ch; margin:0;}

  .ni-home .tour-caption .tour-meta{font-size:13px; color:var(--stone); white-space:nowrap;}



  /* ---------- Pillars: hairline list w/ icons ---------- */

  .ni-home .pillars{

    display:grid; grid-template-columns:1fr 1fr; gap:0 48px;

  }

  @media (max-width:820px){ .ni-home .pillars{grid-template-columns:1fr;} }

  .ni-home .pillar{

    display:flex; gap:18px;

    padding:28px 0; border-top:1px solid var(--stone-line);

  }

  .ni-home .pillars > .pillar:nth-child(1), .ni-home .pillars > .pillar:nth-child(2){border-top:none;}

  @media (max-width:820px){

    .ni-home .pillars > .pillar:nth-child(2){border-top:1px solid var(--stone-line);}

  }

  .ni-home .pillar-icon{

    flex:none; width:38px; height:38px; border-radius:50%;

    background:var(--ink); color:var(--cream);

    display:flex; align-items:center; justify-content:center;

    transition:transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s ease;

  }

  .ni-home .pillar-icon svg{width:18px; height:18px; animation:iconFloat 3.2s ease-in-out infinite;}

  .ni-home .pillar:nth-child(2) .pillar-icon svg{animation-delay:.3s;}

  .ni-home .pillar:nth-child(3) .pillar-icon svg{animation-delay:.6s;}

  .ni-home .pillar:nth-child(4) .pillar-icon svg{animation-delay:.9s;}

  .ni-home .pillar:nth-child(5) .pillar-icon svg{animation-delay:1.2s;}

  .ni-home .pillar:nth-child(6) .pillar-icon svg{animation-delay:1.5s;}

  .ni-home .pillar:nth-child(7) .pillar-icon svg{animation-delay:1.8s;}

  .ni-home .pillar:nth-child(8) .pillar-icon svg{animation-delay:2.1s;}

  @keyframes iconFloat{

    0%,100%{ transform:translateY(0); }

    50%{ transform:translateY(-2px); }

  }

  @media (prefers-reduced-motion: reduce){

    .ni-home .pillar-icon svg{animation:none !important;}

  }

  .ni-home .pillar-icon.ic-red{background:var(--red);}

  .ni-home .pillar-icon.ic-green{background:var(--green);}

  .ni-home .pillar-icon.ic-blue{background:var(--blue);}

  .ni-home .pillar-icon.ic-purple{background:var(--purple);}

  .ni-home .pillar:hover .pillar-icon{transform:rotate(-8deg) scale(1.12);}

  .ni-home .pillar:hover .pillar-icon.ic-red{box-shadow:0 6px 20px -4px var(--red-glow);}

  .ni-home .pillar:hover .pillar-icon.ic-green{box-shadow:0 6px 20px -4px var(--green-glow);}

  .ni-home .pillar:hover .pillar-icon.ic-blue{box-shadow:0 6px 20px -4px var(--blue-glow);}

  .ni-home .pillar:hover .pillar-icon.ic-purple{box-shadow:0 6px 20px -4px var(--purple-glow);}

  .ni-home .pillar-body h3{font-size:19px; font-weight:600;}

  .ni-home .pillar-body p{font-size:15.5px; color:#3a3730; margin-top:8px; max-width:40ch;}



  /* ---------- Deliverables table ---------- */

  .ni-home .table-wrap{overflow-x:auto; border:1px solid var(--stone-line); border-radius:5px;}

  .ni-home table{width:100%; border-collapse:collapse; font-size:15px; min-width:640px;}

  .ni-home thead th{

    text-align:left; font-family:"Space Grotesk", sans-serif; font-weight:600;

    font-size:14px; padding:18px 22px; background:var(--ink); color:var(--cream);

  }

  .ni-home tbody td{

    padding:19px 22px 19px 20px; border-top:1px solid var(--stone-line); vertical-align:top;

  }

  .ni-home tbody tr:nth-child(even){background:var(--cream-dim);}

  .ni-home tbody tr{border-left:3px solid transparent;}

  .ni-home tbody tr:nth-child(4n/**/+1){border-left-color:var(--red);}

  .ni-home tbody tr:nth-child(4n/**/+2){border-left-color:var(--green);}

  .ni-home tbody tr:nth-child(4n/**/+3){border-left-color:var(--blue);}

  .ni-home tbody tr:nth-child(4n/**/+4){border-left-color:var(--purple);}

  .ni-home td.deliv{font-weight:600; width:30%; color:var(--ink);}

  .ni-home td.how{color:#3a3730;}



  /* ---------- Condensed / pull quote ---------- */

  .ni-home .condensed-section{

    background:

      linear-gradient(120deg, transparent 0%, rgba(241,10,34,0.10) 20%, transparent 40%,

                      rgba(155,107,224,0.08) 60%, transparent 80%),

      var(--ink);

    background-size:260% 260%, 100% 100%;

    animation:condensedSweep 14s ease-in-out infinite;

  }

  @keyframes condensedSweep{

    0%{ background-position:0% 0%, 0 0; }

    50%{ background-position:100% 100%, 0 0; }

    100%{ background-position:0% 0%, 0 0; }

  }

  @media (prefers-reduced-motion: reduce){

    .ni-home .condensed-section{animation:none !important;}

  }

  .ni-home .condensed{

    padding:64px 0;

  }

  .ni-home .condensed p{

    font-family:"Space Grotesk", sans-serif; font-weight:500;

    color:var(--cream);

    font-size:clamp(22px,2.6vw,29px); line-height:1.42; max-width:58ch;

  }

  .ni-home .condensed p .accent{color:var(--red); text-shadow:0 0 26px var(--red-glow);}



  /* ---------- Closing ---------- */

  .ni-home .closing{

    text-align:left; padding:96px 0 110px;

  }

  .ni-home .closing h2{

    font-size:clamp(32px, 5.4vw, 58px); line-height:1.08; max-width:16ch;

  }

  .ni-home .closing h2 .line2{display:block;}

  .ni-home .closing h2 .red{

    color:var(--red);

    animation:closingGlow 3.2s ease-in-out infinite;

  }

  @keyframes closingGlow{

    0%,100%{ text-shadow:0 0 0 rgba(241,10,34,0); }

    50%{ text-shadow:0 0 24px rgba(241,10,34,0.35); }

  }

  @media (prefers-reduced-motion: reduce){

    .ni-home .closing h2 .red{animation:none !important;}

  }

  .ni-home .closing-ctas{margin-top:38px; display:flex; gap:14px; flex-wrap:wrap;}



  /* ---------- Footer ---------- */

  .ni-home footer{

    background:var(--ink); border-top:1px solid var(--line-dark); padding:38px 0;

  }

  .ni-home .footer-row{

    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;

  }

  .ni-home .footer-logos{display:flex; align-items:center; gap:16px;}

  .ni-home .ni-logo-footer{height:26px; width:auto; opacity:0.9;}

  .ni-home .bigads-logo-footer{height:13px; width:auto; opacity:0.75;}

  .ni-home .footer-meta{font-size:13.5px; color:#7A7568; text-align:right;}

  .ni-home .footer-meta b{color:#C9C3B4; font-weight:500;}



  @media (prefers-reduced-motion: reduce){

    .ni-home .ni-dot{animation:none !important; opacity:1;}

  }





/* ---------- v1.3 Divi integration fixes ---------- */

/* Break the shortcode out of Divi's constrained row/module width without the 100vw

   scrollbar-width bug that can create a horizontal page scrollbar. */

.ni-home{

  width:auto;

  max-width:none !important;

  margin-left:calc(50% - 50vw) !important;

  margin-right:calc(50% - 50vw) !important;

  overflow-x:clip;

}



/* Only suppress horizontal overflow on pages where this shortcode actually exists. */

html:has(.ni-home),

body:has(.ni-home){

  overflow-x:clip;

}



/* Divi can inject heading colours with more specific selectors. Keep the hero headline on-brand. */

.ni-home .hero h1,

.ni-home .hero h1 .hword{

  color:var(--cream) !important;

}

.ni-home .hero h1 .red,

.ni-home .hero h1 .red .hword{

  color:var(--red) !important;

}



/* Tour screenshots have different aspect ratios; never crop their sides. */

.ni-home .tour-imgs{

  aspect-ratio:1400 / 731;

  transition:aspect-ratio .25s ease;

}

.ni-home .tour-imgs img{

  object-fit:contain !important;

  object-position:center top !important;

}

.ni-home .tour-frame:hover .tour-imgs img.active{

  transform:scale(1) !important;

}



/* ========================================================================== 

   v2.0 final polish: responsive behaviour, motion, accessibility and Divi fit

   ========================================================================== */



/* Page-level overflow fallback; JS adds ni-page-active only when this shortcode exists. */

html.ni-page-active,

body.ni-page-active{

  overflow-x:hidden;

  overflow-x:clip;

}



/* Varied reveal directions. */

.ni-home .reveal{

  transition-delay:var(--ni-reveal-delay, 0ms);

  will-change:opacity, transform;

}

.ni-home .reveal.reveal-left{transform:translateX(-28px);}

.ni-home .reveal.reveal-right{transform:translateX(28px);}

.ni-home .reveal.reveal-scale{transform:translateY(14px) scale(.985);}

.ni-home .reveal.is-visible,

.ni-home .reveal.reveal-left.is-visible,

.ni-home .reveal.reveal-right.is-visible,

.ni-home .reveal.reveal-scale.is-visible{

  opacity:1;

  transform:none;

}



/* Hero pointer glow and subtle diagram parallax. Fine pointers only. */

.ni-home .hero{

  --ni-mouse-x:50%;

  --ni-mouse-y:35%;

}

.ni-home .hero::after{

  content:"";

  position:absolute;

  inset:0;

  pointer-events:none;

  z-index:1;

  opacity:0;

  background:radial-gradient(circle 430px at var(--ni-mouse-x) var(--ni-mouse-y), rgba(241,10,34,.12), rgba(58,168,224,.055) 34%, transparent 68%);

  transition:opacity .35s ease;

}

.ni-home .hero.ni-pointer-active::after{opacity:1;}

.ni-home .ni-diagram-box{

  transform:translate3d(var(--ni-parallax-x, 0px), var(--ni-parallax-y, 0px), 0);

  transition:transform .22s cubic-bezier(.2,.7,.2,1);

  will-change:transform;

}



/* Flow items animate sequentially once the row enters view. */

.ni-home .flow-row.reveal > .flow-node,

.ni-home .flow-row.reveal > .flow-line{

  opacity:0;

  transform:translateX(-12px);

  transition:opacity .48s ease, transform .55s cubic-bezier(.2,.7,.2,1);

}

.ni-home .flow-row.reveal.is-visible > :nth-child(1){transition-delay:.02s;}

.ni-home .flow-row.reveal.is-visible > :nth-child(2){transition-delay:.10s;}

.ni-home .flow-row.reveal.is-visible > :nth-child(3){transition-delay:.18s;}

.ni-home .flow-row.reveal.is-visible > :nth-child(4){transition-delay:.26s;}

.ni-home .flow-row.reveal.is-visible > :nth-child(5){transition-delay:.34s;}

.ni-home .flow-row.reveal.is-visible > :nth-child(6){transition-delay:.42s;}

.ni-home .flow-row.reveal.is-visible > :nth-child(7){transition-delay:.50s;}

.ni-home .flow-row.reveal.is-visible > .flow-node,

.ni-home .flow-row.reveal.is-visible > .flow-line{

  opacity:1;

  transform:none;

}



/* Product tour: directional image transitions, keyboard focus and moving accent bar. */

.ni-home .tour-tab:focus-visible,

.ni-home .cta-btn:focus-visible,

.ni-home .cta-ghost:focus-visible{

  outline:3px solid rgba(241,10,34,.42);

  outline-offset:3px;

}

.ni-home .tour-frame-outer .accent-bar{

  width:33.333%;

  margin-left:0;

  transition:background .3s ease, width .3s ease, margin-left .35s cubic-bezier(.2,.7,.2,1);

}

.ni-home .tour-imgs img{

  opacity:0;

  transform:translateX(var(--ni-enter-x, 0px)) scale(.992);

  transition:opacity .38s ease, transform .56s cubic-bezier(.2,.7,.2,1);

  will-change:opacity, transform;

}

.ni-home .tour-imgs img.active{

  opacity:1;

  transform:translateX(0) scale(1);

}

.ni-home .tour-frame:hover .tour-imgs img.active{

  transform:translateX(0) scale(1) !important;

}



/* Contact form arrival cue. Applied to the Divi section with CSS ID: contact. */

body.ni-page-active #contact{scroll-margin-top:130px;}

body.ni-page-active #contact.ni-contact-pulse{

  position:relative;

  isolation:isolate;

}

body.ni-page-active #contact .ni-contact-highlight{

  position:absolute;

  inset:8px;

  z-index:999;

  pointer-events:none;

  border:2px solid rgba(241,10,34,.72);

  border-radius:10px;

  box-shadow:0 0 0 0 rgba(241,10,34,.35), inset 0 0 24px rgba(241,10,34,.08);

  animation:niContactArrival 2s cubic-bezier(.2,.7,.2,1) forwards;

}

@keyframes niContactArrival{

  0%{opacity:0; transform:scale(.992); box-shadow:0 0 0 0 rgba(241,10,34,.30), inset 0 0 10px rgba(241,10,34,.05);}

  18%{opacity:1; box-shadow:0 0 0 10px rgba(241,10,34,.08), inset 0 0 30px rgba(241,10,34,.09);}

  65%{opacity:.78; box-shadow:0 0 0 3px rgba(241,10,34,.04), inset 0 0 18px rgba(241,10,34,.05);}

  100%{opacity:0; transform:scale(1); box-shadow:0 0 0 0 rgba(241,10,34,0), inset 0 0 0 rgba(241,10,34,0);}

}



/* Better tap targets without changing the visual language. */

.ni-home .cta-btn,

.ni-home .cta-ghost,

.ni-home .tour-tab{min-height:44px;}



/* ---------- Tablet ---------- */

@media (max-width:900px){

  .ni-home .hero{padding-top:68px;}

  .ni-home .hero-grid{gap:38px; padding-bottom:58px;}

  .ni-home section{padding:68px 0;}

  .ni-home .section-head{margin-bottom:36px;}

  .ni-home .closing{padding:78px 0 88px;}

  .ni-home .condensed{padding:56px 0;}

  .ni-home .tour-caption{gap:12px;}

}



/* ---------- Mobile ---------- */

@media (max-width:640px){

  .ni-home{font-size:16px;}

  .ni-home .wrap{padding-left:20px; padding-right:20px;}

  .ni-home .hero{padding-top:54px;}

  .ni-home .hero-grid{gap:26px; padding-bottom:48px;}

  .ni-home .hero h1{font-size:clamp(34px, 10vw, 44px); line-height:1.055;}

  .ni-home .hero p.lede{font-size:17px; line-height:1.55; margin-top:20px;}

  .ni-home .hero-ctas{margin-top:28px; gap:10px;}

  .ni-home .hero-note{margin-top:18px;}

  .ni-home .ni-diagram-box{width:min(100%, 430px);}



  .ni-home section{padding:56px 0;}

  .ni-home .section-head{margin-bottom:30px;}

  .ni-home .section-head h2{font-size:clamp(27px, 8.5vw, 34px);}

  .ni-home .section-head p{font-size:15.5px;}



  .ni-home .proof-inner{row-gap:22px; padding-bottom:26px;}

  .ni-home .proof-item{padding-right:0;}



  .ni-home .split{gap:34px;}

  .ni-home .stat-copy .stat-num{font-size:52px;}



  .ni-home .flow-row{gap:0;}

  .ni-home .flow-node{min-height:56px;}



  /* Tabs stay one line and swipe horizontally on narrow screens. */

  .ni-home .tour-tabs{

    flex-wrap:nowrap;

    overflow-x:auto;

    overscroll-behavior-inline:contain;

    scroll-snap-type:x proximity;

    -webkit-overflow-scrolling:touch;

    padding:2px 2px 8px;

    margin-left:-2px;

    scrollbar-width:none;

  }

  .ni-home .tour-tabs::-webkit-scrollbar{display:none;}

  .ni-home .tour-tab{flex:0 0 auto; scroll-snap-align:start; font-size:14px;}

  .ni-home .tour-frame{border-radius:8px;}

  .ni-home .tour-chrome{padding:11px 14px;}

  .ni-home .tour-caption{display:block;}

  .ni-home .tour-caption .tour-meta{display:block; white-space:normal; margin-top:9px; line-height:1.45;}



  .ni-home .pillars{gap:0;}

  .ni-home .pillar{gap:15px; padding:24px 0;}

  .ni-home .pillar-body h3{font-size:18px;}

  .ni-home .pillar-body p{font-size:15px;}



  /* Deliverables become stacked cards instead of a horizontally scrolling table. */

  .ni-home .table-wrap{overflow:visible; border:0; border-radius:0;}

  .ni-home table,

  .ni-home tbody,

  .ni-home tr,

  .ni-home td{display:block; width:100%; min-width:0;}

  .ni-home thead{

    position:absolute;

    width:1px;

    height:1px;

    padding:0;

    margin:-1px;

    overflow:hidden;

    clip:rect(0,0,0,0);

    white-space:nowrap;

    border:0;

  }

  .ni-home tbody tr{

    margin:0 0 12px;

    border:1px solid var(--stone-line);

    border-left-width:4px;

    border-radius:7px;

    overflow:hidden;

    background:#fff;

  }

  .ni-home tbody tr:nth-child(even){background:var(--cream-dim);}

  .ni-home tbody td{border:0;}

  .ni-home td.deliv{width:auto; padding:17px 17px 8px; font-size:15.5px;}

  .ni-home td.how{padding:0 17px 17px; font-size:14.5px; line-height:1.55;}



  .ni-home .condensed{padding:48px 0;}

  .ni-home .condensed p{font-size:clamp(21px, 6.4vw, 27px);}

  .ni-home .closing{padding:64px 0 72px;}

  .ni-home .closing h2{font-size:clamp(30px, 9vw, 42px);}

  .ni-home .closing-ctas{margin-top:30px; gap:10px;}

}



/* ---------- Small phones ---------- */

@media (max-width:480px){

  .ni-home .wrap{padding-left:18px; padding-right:18px;}

  .ni-home .hero{padding-top:44px;}

  .ni-home .hero h1{font-size:clamp(32px, 10.2vw, 39px);}

  .ni-home .hero-ctas,

  .ni-home .closing-ctas{display:grid; grid-template-columns:1fr;}

  .ni-home .hero-ctas .cta-btn,

  .ni-home .hero-ctas .cta-ghost,

  .ni-home .closing-ctas .cta-btn,

  .ni-home .closing-ctas .cta-ghost{

    width:100%;

    text-align:center;

  }



  .ni-home .ni-open-label{

    width:min(150px, 45vw);

    right:0;

    bottom:0;

    padding:8px 9px;

  }

  .ni-home .ni-open-label b{font-size:23px; margin-bottom:4px;}

  .ni-home .ni-open-label span{font-size:11px; line-height:1.3;}

  .ni-home .ni-garden-label{font-size:13px;}

  .ni-home .ni-garden-label small{font-size:10.5px;}



  .ni-home .donut-wrap{flex-direction:column; align-items:flex-start; gap:18px;}

  .ni-home .donut-svg-outer,

  .ni-home .donut-svg{width:132px; height:132px;}

  .ni-home .stat-copy .stat-num{font-size:48px;}



  .ni-home .tour-chrome{align-items:flex-start; flex-direction:column; gap:4px;}

  .ni-home .tour-live,

  .ni-home .tour-chrome .tour-screen-name{font-size:11.5px;}

  .ni-home .tour-tab{padding:9px 14px 9px 12px;}



  .ni-home .pillar-icon{width:36px; height:36px;}

  .ni-home .closing{padding-bottom:62px;}

}



/* Hover effects should not stick on touch screens. */

@media (hover:none), (pointer:coarse){

  .ni-home .hero::after{display:none;}

  .ni-home .ni-diagram-box{transform:none !important;}

  .ni-home .tour-frame:hover{box-shadow:0 24px 60px -20px rgba(12,11,9,0.45);}

  .ni-home .pillar:hover .pillar-icon{transform:none; box-shadow:none;}

}



/* Respect OS reduced-motion preferences for every final-polish effect. */

@media (prefers-reduced-motion:reduce){

  .ni-home *,

  .ni-home *::before,

  .ni-home *::after{

    scroll-behavior:auto !important;

  }

  .ni-home .reveal,

  .ni-home .reveal.reveal-left,

  .ni-home .reveal.reveal-right,

  .ni-home .reveal.reveal-scale,

  .ni-home .flow-row.reveal > .flow-node,

  .ni-home .flow-row.reveal > .flow-line{

    opacity:1 !important;

    transform:none !important;

    transition:none !important;

  }

  .ni-home .hero::after{display:none;}

  .ni-home .ni-diagram-box{transform:none !important; transition:none !important;}

  .ni-home .tour-imgs img{transition:none !important;}

  body.ni-page-active #contact .ni-contact-highlight{animation:none !important; display:none;}

}

