:root{
    --violet:#5B21B6;
    --violet-2:#4C1D95;
    --violet-deep:#2E1065;
    --violet-tint:#F5F3FF;
    --lime:#A3E635;
    --lime-deep:#4D7C0F;
    --ink:#0F172A;
    --ink-soft:#1E293B;
    --paper:#FCFCFD;
    --paper-dim:#F4F3F8;
    --grey:#64748B;
    --grey-light:#94A3B8;
    --border:#E7E5F0;
    --radius-sm:10px;
    --radius-md:16px;
    --radius-lg:28px;
    --shadow-soft:0 1px 2px rgba(15,23,42,0.04), 0 8px 24px -8px rgba(76,29,149,0.12);
    --shadow-lift:0 4px 8px rgba(15,23,42,0.04), 0 20px 40px -12px rgba(76,29,149,0.22);
    --ease:cubic-bezier(.16,1,.3,1);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important;}
  }
  body{
    margin:0;
    font-family:'Inter',system-ui,sans-serif;
    color:var(--ink-soft);
    background:var(--paper);
    -webkit-font-smoothing:antialiased;
    line-height:1.55;
  }
  h1,h2,h3,.display{
    font-family:'Space Grotesk',sans-serif;
    color:var(--ink);
    margin:0;
    letter-spacing:-0.02em;
  }
  p{margin:0;}
  a{color:inherit; text-decoration:none;}
  img,svg{display:block;}
  button{font-family:inherit; cursor:pointer;}
  :focus-visible{outline:2.5px solid var(--violet); outline-offset:3px; border-radius:4px;}
  .icon{width:22px; height:22px; stroke:currentColor; fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 24px;}
  section{position:relative;}

  /* ---------- reveal ---------- */
  .reveal{opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
  .reveal.is-visible{opacity:1; transform:translateY(0);}
  .reveal-stagger > *{opacity:0; transform:translateY(16px); transition:opacity .6s var(--ease), transform .6s var(--ease);}
  .reveal-stagger.is-visible > *{opacity:1; transform:translateY(0);}
  .reveal-stagger.is-visible > *:nth-child(1){transition-delay:.02s;}
  .reveal-stagger.is-visible > *:nth-child(2){transition-delay:.09s;}
  .reveal-stagger.is-visible > *:nth-child(3){transition-delay:.16s;}
  .reveal-stagger.is-visible > *:nth-child(4){transition-delay:.23s;}
  .reveal-stagger.is-visible > *:nth-child(5){transition-delay:.30s;}
  .reveal-stagger.is-visible > *:nth-child(6){transition-delay:.37s;}

  /* ---------- nav ---------- */
 /* =========================================================
   NAVBAR
========================================================= */

.nav {
  position: sticky;
  top: 0;
  z-index: 1000;

  background: rgba(252, 252, 253, 0.82);

  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);

  border-bottom: 1px solid var(--border);
}


.nav-inner {
  position: relative;

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

  max-width: 1180px;

  margin: 0 auto;

  padding: 12px 24px;
}


/* =========================================================
   BRAND
========================================================= */

.brand {
  display: flex;
  align-items: center;

  gap: 9px;

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

  font-weight: 700;
  font-size: 19px;

  color: var(--ink);
}


.brand-mark {
  width: 30px;
  height: 30px;

  position: relative;

  flex-shrink: 0;

  border-radius: 9px;

  background:
    linear-gradient(
      135deg,
      var(--violet),
      var(--violet-deep)
    );
}


.brand-mark::before {
  content: "";

  position: absolute;

  left: 7px;
  top: 9px;

  width: 11px;
  height: 11px;

  border-radius:
    50% 50% 50% 3px;

  background: var(--lime);
}


/* =========================================================
   DESKTOP NAV LINKS
========================================================= */

.nav-links {
  display: flex;
  align-items: center;

  gap: 34px;
}


.nav-links a {
  color: var(--ink-soft);

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

  transition: color 0.2s;
}


.nav-links a:hover {
  color: var(--violet);
}


/* =========================================================
   NAV ACTIONS
========================================================= */

.nav-cta {
  display: flex;
  align-items: center;

  gap: 10px;
}


/* =========================================================
   MOBILE MENU BUTTON

   HIDDEN ON DESKTOP
========================================================= */

.nav-menu-btn {
  display: none;

  width: 42px;
  height: 42px;

  padding: 0;

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

  flex-shrink: 0;

  border: 1px solid #E2E8F0;
  border-radius: 10px;

  background: #FFFFFF;

  color: #0F172A;

  cursor: pointer;

  transition:
    background 0.2s,
    border-color 0.2s,
    color 0.2s;
}


.nav-menu-btn:hover {
  background: var(--violet-tint);

  border-color:
    rgba(91, 33, 182, 0.2);

  color: var(--violet);
}


.nav-menu-btn svg {
  width: 22px;
  height: 22px;

  stroke-width: 2;

  pointer-events: none;
}


/* =========================================================
   TABLET / MOBILE
========================================================= */

@media (max-width: 860px) {

  /*
     Hide desktop links initially
  */

  .nav-links {
    display: none;
  }


  /*
     IMPORTANT:
     Show hamburger button
  */

  .nav-menu-btn {
    display: inline-flex;
  }


  /*
     Dropdown when JS adds .open
  */

  .nav-links.open {
    position: absolute;

    top: calc(100% + 10px);

    left: 24px;
    right: 24px;

    display: flex;

    flex-direction: column;
    align-items: stretch;

    gap: 4px;

    padding: 12px;

    background: #FFFFFF;

    border: 1px solid #E2E8F0;
    border-radius: 16px;

    box-shadow:
      0 20px 50px
      rgba(15, 23, 42, 0.12);

    z-index: 1001;

    animation:
      mobileMenuOpen 0.2s ease;
  }


  .nav-links.open a {
    width: 100%;

    padding: 12px 14px;

    border-radius: 10px;

    font-size: 14px;
  }


  .nav-links.open a:hover {
    background: var(--violet-tint);
  }


  .nav-cta {
    margin-left: auto;

    display: flex;
    align-items: center;

    gap: 8px;
  }

}


@media (max-width: 560px) {

  .nav-inner {
    padding:
      10px 16px;
  }


  .nav-links.open {
    left: 16px;
    right: 16px;
  }


  .nav-menu-btn {
    width: 40px;
    height: 40px;
  }


  .nav-menu-btn svg {
    width: 21px;
    height: 21px;
  }


  /*
     Optional:
     Make signup button slightly smaller
  */

  .nav-cta .btn {
    padding:
      10px 14px;

    font-size: 13px;
  }

}


/* =========================================================
   MOBILE MENU ANIMATION
========================================================= */

@keyframes mobileMenuOpen {

  from {
    opacity: 0;

    transform:
      translateY(-8px)
      scale(0.98);
  }

  to {
    opacity: 1;

    transform:
      translateY(0)
      scale(1);
  }

}

  /* ---------- buttons ---------- */
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:13px 24px; border-radius:100px; font-size:14.5px; font-weight:600;
    border:1px solid transparent; transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .2s;
    white-space:nowrap;
  }
  .btn:active{transform:scale(0.97);}
  .btn-primary{background:var(--ink); color:#fff;}
  .btn-primary:hover{background:var(--violet); box-shadow:0 8px 20px -6px rgba(91,33,182,0.5);}
  .btn-lime{background:var(--lime); color:var(--violet-deep);}
  .btn-lime:hover{box-shadow:0 8px 24px -6px rgba(163,230,53,0.55); transform:translateY(-1px);}
  .btn-ghost{background:transparent; color:var(--ink); border-color:var(--border);}
  .btn-ghost:hover{border-color:var(--violet); color:var(--violet);}
  .btn-sm{padding:10px 18px; font-size:13.5px;}
  .btn-block{width:100%;}
  .menu-toggle {
  display: none;

  width: 42px;
  height: 42px;

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

  border: 1px solid #E2E8F0;
  border-radius: 10px;

  background: #FFFFFF;
  color: #0F172A;

  cursor: pointer;
}

.menu-toggle svg {
  width: 22px;
  height: 22px;
}

  /* ---------- hero ---------- */
  .hero{
    background:radial-gradient(120% 100% at 15% 0%, #EFE9FF 0%, var(--paper) 55%);
    padding:84px 0 40px;
    overflow:hidden;
  }
  .hero-grid{display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center;}
  @media (max-width:960px){ .hero-grid{grid-template-columns:1fr; gap:52px;} }
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    background:var(--violet-tint); color:var(--violet);
    padding:7px 14px 7px 8px; border-radius:100px; font-size:13px; font-weight:600;
    margin-bottom:22px; border:1px solid #E4DBFB;
  }
  .eyebrow .dot{width:7px; height:7px; border-radius:50%; background:var(--lime); box-shadow:0 0 0 3px #ECF9D8;}
  .hero h1{font-size:clamp(34px,5vw,54px); line-height:1.06; font-weight:700; max-width:620px;}
 .hero h1 em {
  --underline-scale: 0;

  font-style: normal;
  color: var(--violet);
  position: relative;
  white-space: nowrap;
  display: inline-block;
  z-index: 1;
}

.hero h1 em::after {
  content: "";
  position: absolute;

  left: 0;
  bottom: -4px;

  width: 100%;
  height: 7px;

  background: var(--lime);
  border-radius: 100px;

  opacity: .45;
  z-index: -1;

  transform: scaleX(var(--underline-scale));
  transform-origin: left center;
}
  .hero-sub{font-size:17.5px; color:var(--grey); max-width:480px; margin:20px 0 32px; line-height:1.65;}
  .hero-actions{display:flex; align-items:center; gap:14px; flex-wrap:wrap;}
  .hero-note{display:flex; align-items:center; gap:8px; margin-top:26px; font-size:13.5px; color:var(--grey-light);}
  .hero-note .icon{width:15px; height:15px; color:var(--lime-deep);}

  /* phone mockup */
  .phone-stage{display:flex; justify-content:center; position:relative;}
  .phone-glow{position:absolute; width:340px; height:340px; background:radial-gradient(circle,#C4B5FD 0%, transparent 70%); filter:blur(10px); opacity:.55; z-index:0;}
  .phone{
    position:relative; z-index:1; width:290px; background:var(--ink); border-radius:38px;
    padding:12px; box-shadow:var(--shadow-lift); border:1px solid #1e2438;
  }
  .phone-notch{position:absolute; top:12px; left:50%; transform:translateX(-50%); width:90px; height:22px; background:var(--ink); border-radius:0 0 14px 14px; z-index:3;}
  .phone-screen{background:#ECE9F7; border-radius:28px; overflow:hidden; min-height:430px; display:flex; flex-direction:column;}
  .phone-bar{
    background:var(--violet); color:#fff; padding:18px 16px 12px; display:flex; align-items:center; gap:10px;
    font-size:13px; font-weight:600;
  }
  .phone-bar .av{width:30px; height:30px; border-radius:50%; background:var(--lime); display:flex; align-items:center; justify-content:center; color:var(--violet-deep); font-size:13px; font-weight:700;}
  .phone-bar .sub{font-weight:400; font-size:11.5px; opacity:.85; display:block;}
  .phone-body{flex:1; padding:16px 12px; display:flex; flex-direction:column; gap:10px; justify-content:flex-end;}
  .bubble{max-width:82%; padding:10px 13px; border-radius:16px; font-size:13px; line-height:1.45; opacity:0; transform:translateY(8px); transition:opacity .5s var(--ease), transform .5s var(--ease);}
  .bubble.show{opacity:1; transform:translateY(0);}
  .bubble-in{align-self:flex-start; background:#fff; color:var(--ink-soft); border-bottom-left-radius:4px; box-shadow:0 1px 2px rgba(0,0,0,0.05);}
  .bubble-out{align-self:flex-end; background:var(--violet); color:#fff; border-bottom-right-radius:4px;}
  .bubble-out .price{color:var(--lime); font-weight:700;}
  .typing{align-self:flex-end; display:flex; gap:4px; padding:11px 14px; background:var(--violet); border-radius:16px; border-bottom-right-radius:4px; opacity:0; transition:opacity .3s;}
  .typing.show{opacity:1;}
  .typing span{width:5px; height:5px; border-radius:50%; background:#D8CCFB; animation:blink 1.1s infinite ease-in-out;}
  .typing span:nth-child(2){animation-delay:.15s;} .typing span:nth-child(3){animation-delay:.3s;}
  @keyframes blink{0%,80%,100%{opacity:.3; transform:translateY(0);} 40%{opacity:1; transform:translateY(-2px);}}
  .paid-tag{
    align-self:flex-end; display:flex; align-items:center; gap:6px; background:var(--lime); color:var(--violet-deep);
    font-size:11.5px; font-weight:700; padding:6px 11px; border-radius:100px; opacity:0; transform:scale(.85);
    transition:opacity .4s var(--ease), transform .4s var(--ease);
  }
  .paid-tag.show{opacity:1; transform:scale(1);}
  .paid-tag .icon{width:12px; height:12px; stroke-width:3;}


  /* =========================
   HERO ANIMATION POLISH
========================= */

/* smoother GPU rendering */
.hero-copy,
.phone-stage,
.phone,
.phone-glow {
  will-change: transform, opacity;
}


/* eyebrow dot pulse */
.eyebrow .dot {
  position: relative;
}

.eyebrow .dot::after {
  content: "";
  position: absolute;
  inset: -5px;
  border: 1px solid var(--lime);
  border-radius: 50%;
  opacity: 0;
  animation: heroDotPulse 2.2s ease-out infinite;
}

@keyframes heroDotPulse {
  0% {
    transform: scale(.5);
    opacity: .7;
  }

  70%,
  100% {
    transform: scale(1.8);
    opacity: 0;
  }
}


/* highlighted headline */
.hero h1 em {
  display: inline-block;
  position: relative;
}

.hero h1 em::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 100%;
  height: 7px;

  background: var(--lime);

  border-radius: 100px;

  z-index: -1;

  opacity: .45;

  transform: scaleX(0);
  transform-origin: left center;
}


/* better phone depth */
.phone {
  transform-style: preserve-3d;
  backface-visibility: hidden;
}


/* interactive phone hover */
@media (hover: hover) {

  .phone-stage {
    perspective: 1000px;
  }

  .phone {
    transition:
      box-shadow .4s ease,
      border-color .4s ease;
  }

  .phone:hover {
    box-shadow:
      0 35px 80px rgba(38, 23, 85, .22),
      0 10px 30px rgba(38, 23, 85, .12);
  }
}


/* button polish */
.hero-actions .btn {
  position: relative;
  overflow: hidden;
  transition:
    transform .25s ease,
    box-shadow .25s ease;
}

.hero-actions .btn:hover {
  transform: translateY(-3px);
}

.hero-actions .btn:active {
  transform: translateY(-1px) scale(.98);
}


/* accessibility */
@media (prefers-reduced-motion: reduce) {

  .eyebrow .dot::after {
    animation: none;
  }

  .typing span {
    animation: none;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
  }
}

  /* ---------- trust strip ---------- */
  .trust{padding:30px 0 60px;}
  .trust-inner{display:flex; align-items:center; gap:28px; flex-wrap:wrap; justify-content:center; color:var(--grey-light); font-size:13.5px; font-weight:500;}
  .trust-inner span{display:flex; align-items:center; gap:7px;}
  .trust-inner .icon{width:16px; height:16px;}

  /* ---------- section heads ---------- */
  .section-pad{padding:88px 0;}
  .kicker{
    display:inline-block; font-size:12.5px; font-weight:700; letter-spacing:.09em; text-transform:uppercase;
    color:var(--lime-deep); margin-bottom:14px;
  }
  .section-head{max-width:620px; margin-bottom:56px;}
  .section-head h2{font-size:clamp(26px,3.4vw,36px); font-weight:700; line-height:1.18;}
  .section-head p{color:var(--grey); font-size:16.5px; margin-top:14px; line-height:1.6;}
  .section-head.center{margin-left:auto; margin-right:auto; text-align:center;}

  /* ---------- problem cards ---------- */
  .problem-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  @media (max-width:860px){ .problem-grid{grid-template-columns:1fr;} }
  .problem-card{
    background:var(--ink); border-radius:var(--radius-md); padding:30px 26px; color:#fff;
  }
  .problem-card .icon-wrap{width:42px; height:42px; border-radius:11px; background:rgba(163,230,53,0.14); display:flex; align-items:center; justify-content:center; margin-bottom:20px;}
  .problem-card .icon{color:var(--lime); width:21px; height:21px;}
  .problem-card h3{color:#fff; font-size:18px; font-weight:600; margin-bottom:9px;}
  .problem-card p{color:#A3A9C2; font-size:14.5px; line-height:1.6;}
  .problem-card .stat{font-family:'Space Grotesk'; font-size:32px; font-weight:700; color:var(--lime); display:block; margin-bottom:4px;}

  /* ---------- how it works ---------- */
  /* =====================================================
   HOW IT WORKS
===================================================== */

.how-section {
  position: relative;

  background:
    radial-gradient(
      700px 380px at 85% 12%,
      rgba(91, 33, 182, .07),
      transparent 70%
    ),
    var(--paper-dim);

  overflow: hidden;
}


/* subtle decorative glow */
.how-section::before {
  content: "";

  position: absolute;

  width: 320px;
  height: 320px;

  left: -180px;
  top: 45%;

  border-radius: 50%;

  background: var(--violet);

  filter: blur(130px);

  opacity: .045;

  pointer-events: none;
}



/* =====================================================
   SECTION HEAD
===================================================== */

.how-section .section-head {
  max-width: 720px;
  margin-bottom: 56px;
}


.how-section .section-head h2 {
  max-width: 670px;
}


.how-section .section-head h2 span {
  color: var(--violet);
}


.how-section .section-head p {
  max-width: 590px;
}



/* =====================================================
   STEPS WRAPPER
===================================================== */

.steps {
  position: relative;

  max-width: 820px;

  margin: 0 auto;
}



/* =====================================================
   SINGLE STEP
===================================================== */

.step {
  position: relative;

  display: grid;

  grid-template-columns: 64px 1fr;

  gap: 22px;

  padding-bottom: 24px;
}


.step:last-child {
  padding-bottom: 0;
}



/* =====================================================
   TIMELINE LINE
===================================================== */

.step:not(:last-child)::before {
  content: "";

  position: absolute;

  left: 31px;

  top: 58px;

  bottom: -2px;

  width: 2px;

  background:
    linear-gradient(
      to bottom,
      rgba(91, 33, 182, .22),
      rgba(91, 33, 182, .06)
    );

  z-index: 0;
}



/* =====================================================
   STEP NUMBER
===================================================== */

.step-num {
  position: relative;

  z-index: 2;

  width: 62px;
  height: 62px;

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

  border-radius: 20px;

  background:
    linear-gradient(
      145deg,
      #ffffff,
      var(--violet-tint)
    );

  border: 1px solid #ded3fb;

  color: var(--violet);

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

  font-size: 15px;

  font-weight: 700;

  box-shadow:
    0 8px 25px rgba(91, 33, 182, .08);

  transition:
    transform .35s var(--ease),
    background .35s var(--ease),
    color .35s var(--ease),
    box-shadow .35s var(--ease);
}



/* =====================================================
   STEP CARD
===================================================== */

.step-card {
  position: relative;

  display: grid;

  grid-template-columns: 58px 1fr;

  gap: 20px;

  align-items: flex-start;

  padding: 26px 28px;

  border-radius: 22px;

  background:
    linear-gradient(
      135deg,
      rgba(255, 255, 255, .95),
      rgba(255, 255, 255, .72)
    );

  border: 1px solid rgba(91, 33, 182, .09);

  box-shadow:
    0 3px 8px rgba(30, 25, 50, .025),
    0 14px 40px rgba(30, 25, 50, .04);

  transition:
    transform .35s var(--ease),
    border-color .35s var(--ease),
    box-shadow .35s var(--ease);

  overflow: hidden;
}


/* violet accent */
.step-card::before {
  content: "";

  position: absolute;

  left: 0;
  top: 22px;
  bottom: 22px;

  width: 3px;

  border-radius: 10px;

  background: var(--violet);

  transform: scaleY(.25);

  opacity: 0;

  transform-origin: center;

  transition:
    transform .35s var(--ease),
    opacity .35s var(--ease);
}



/* =====================================================
   CARD HOVER
===================================================== */

@media (hover:hover) {

  .step:hover .step-card {

    transform:
      translateY(-5px)
      translateX(3px);

    border-color:
      rgba(91, 33, 182, .18);

    box-shadow:
      0 12px 25px rgba(30, 25, 50, .055),
      0 24px 55px rgba(91, 33, 182, .07);

  }


  .step:hover .step-card::before {

    transform: scaleY(1);

    opacity: 1;

  }


  .step:hover .step-num {

    transform:
      translateY(-3px)
      rotate(-3deg);

    color: #fff;

    background: var(--violet);

    box-shadow:
      0 12px 28px rgba(91, 33, 182, .22);

  }


  .step:hover .step-icon {

    transform:
      translateY(-2px)
      scale(1.06);

  }

}



/* =====================================================
   STEP ICON
===================================================== */

.step-icon {

  width: 54px;
  height: 54px;

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

  border-radius: 16px;

  background: var(--violet-tint);

  color: var(--violet);

  border:
    1px solid #e4dbfb;

  transition:
    transform .35s var(--ease),
    background .35s var(--ease);
}


.step-icon svg {

  width: 25px;
  height: 25px;

  fill: none;

  stroke: currentColor;

  stroke-width: 1.8;

  stroke-linecap: round;

  stroke-linejoin: round;
}



/* final step green */
.step-icon-lime {

  background: rgba(163, 230, 53, .16);

  color: var(--lime-deep);

  border-color: rgba(163, 230, 53, .35);
}



/* =====================================================
   CONTENT
===================================================== */

.step-content {

  padding-top: 1px;
}


.step-label {

  display: block;

  margin-bottom: 5px;

  color: var(--violet);

  font-size: 11px;

  font-weight: 700;

  letter-spacing: .09em;

  text-transform: uppercase;
}


.step h3 {

  margin: 0 0 9px;

  color: var(--ink);

  font-size: 19px;

  font-weight: 650;

  letter-spacing: -.015em;
}


.step p {

  max-width: 590px;

  margin: 0;

  color: var(--grey);

  font-size: 14.5px;

  line-height: 1.7;
}



/* =====================================================
   DOCUMENTATION CTA
===================================================== */

.how-cta {

  max-width: 820px;

  margin: 48px auto 0;

  padding: 25px 28px;

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 24px;

  border-radius: 22px;

  background:
    linear-gradient(
      120deg,
      var(--violet-deep),
      var(--violet)
    );

  box-shadow:
    0 18px 45px rgba(91, 33, 182, .18);
}


.how-cta p {

  margin: 0;

  color: rgba(255, 255, 255, .86);

  font-size: 15px;

  font-weight: 500;
}



/* documentation button */
.btn-docs {

  flex-shrink: 0;

  display: inline-flex;

  align-items: center;

  justify-content: center;

  gap: 10px;

  padding: 13px 19px;

  border-radius: 12px;

  background: var(--lime);

  color: var(--violet-deep);

  font-size: 14px;

  font-weight: 700;

  text-decoration: none;

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


.btn-docs svg {

  width: 17px;
  height: 17px;

  fill: none;

  stroke: currentColor;

  stroke-width: 2;

  stroke-linecap: round;

  stroke-linejoin: round;

  transition: transform .25s ease;
}


@media (hover:hover) {

  .btn-docs:hover {

    transform: translateY(-3px);

    box-shadow:
      0 10px 25px rgba(163, 230, 53, .22);

  }


  .btn-docs:hover svg {

    transform: translateX(4px);

  }

}



/* =====================================================
   TABLET
===================================================== */

@media (max-width: 760px) {

  .how-section .section-head {
    margin-bottom: 42px;
  }


  .step {

    grid-template-columns: 50px 1fr;

    gap: 15px;

  }


  .step-num {

    width: 50px;
    height: 50px;

    border-radius: 15px;

    font-size: 13px;

  }


  .step:not(:last-child)::before {

    left: 24px;

    top: 50px;

  }


  .step-card {

    grid-template-columns: 48px 1fr;

    gap: 16px;

    padding: 22px;

    border-radius: 19px;

  }


  .step-icon {

    width: 46px;
    height: 46px;

    border-radius: 14px;

  }


  .step-icon svg {

    width: 22px;
    height: 22px;

  }


  .how-cta {

    flex-direction: column;

    align-items: flex-start;

    padding: 24px;

  }

}



/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 540px) {

  .steps {
    width: 100%;
  }


  .step {

    grid-template-columns: 42px minmax(0, 1fr);

    gap: 11px;

    padding-bottom: 18px;

  }


  .step-num {

    width: 42px;
    height: 42px;

    border-radius: 13px;

    font-size: 11.5px;

  }


  .step:not(:last-child)::before {

    left: 20px;

    top: 42px;

  }


  .step-card {

    display: block;

    padding: 20px;

    border-radius: 17px;

  }


  .step-icon {

    margin-bottom: 17px;

  }


  .step h3 {

    font-size: 17px;

  }


  .step p {

    font-size: 13.8px;

  }


  .how-cta {

    margin-top: 34px;

    border-radius: 18px;

  }


  .btn-docs {

    width: 100%;

  }

}



/* =====================================================
   REDUCED MOTION
===================================================== */

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

  .step,
  .step-card,
  .step-num,
  .step-icon,
  .btn-docs,
  .btn-docs svg {

    transition: none !important;

  }

}
  /* ---------- features ---------- */
  .feature-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); border:1px solid var(--border); border-radius:var(--radius-md); overflow:hidden;}
  @media (max-width:860px){ .feature-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .feature-grid{grid-template-columns:1fr;} }
  .feature{background:var(--paper); padding:32px 28px; transition:background .2s;}
  .feature:hover{background:var(--paper-dim);}
  .feature .icon-wrap{width:40px; height:40px; border-radius:10px; background:var(--violet-tint); display:flex; align-items:center; justify-content:center; margin-bottom:18px;}
  .feature .icon{color:var(--violet); width:20px; height:20px;}
  .feature h3{font-size:16.5px; font-weight:600; margin-bottom:8px;}
  .feature p{font-size:14px; color:var(--grey); line-height:1.6;}

  /* ---------- who it's for ---------- */
  .chip-cloud{display:flex; flex-wrap:wrap; gap:12px; justify-content:center;}
  .chip{
    display:flex; align-items:center; gap:9px; padding:12px 20px; border-radius:100px;
    background:var(--paper); border:1px solid var(--border); font-size:14.5px; font-weight:500; color:var(--ink-soft);
    transition:transform .2s var(--ease), border-color .2s, box-shadow .2s;
  }
  .chip:hover{transform:translateY(-2px); border-color:var(--violet); box-shadow:var(--shadow-soft);}
  .chip .icon{width:17px; height:17px; color:var(--violet);}

  /* ---------- pricing ---------- */
  .price-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
  @media (max-width:960px){ .price-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .price-grid{grid-template-columns:1fr;} }
  .price-card{
    background:var(--paper); border:1px solid var(--border); border-radius:var(--radius-md); padding:28px 24px;
    display:flex; flex-direction:column; transition:transform .25s var(--ease), box-shadow .25s var(--ease);
  }
  .price-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-soft);}
  .price-card.featured{background:var(--ink); border-color:var(--ink); color:#fff; position:relative;}
  .price-card.featured::before{
    content:'Most vendors start here'; position:absolute; top:-12px; left:24px; background:var(--lime); color:var(--violet-deep);
    font-size:11px; font-weight:700; padding:5px 12px; border-radius:100px;
  }
  .price-card h3{font-size:15px; font-weight:600; margin-bottom:6px;}
  .price-card.featured h3{color:#fff;}
  .price-tag{font-family:'Space Grotesk'; font-size:26px; font-weight:700; margin-bottom:18px; color:var(--ink);}
  .price-card.featured .price-tag{color:var(--lime);}
  .price-tag span{font-size:13px; font-weight:500; color:var(--grey-light);}
  .price-card.featured .price-tag span{color:#8B93B8;}
  .price-list{list-style:none; margin:0 0 24px; padding:0; display:flex; flex-direction:column; gap:11px; flex:1;}
  .price-list li{display:flex; align-items:flex-start; gap:8px; font-size:13.5px; color:var(--grey);}
  .price-card.featured .price-list li{color:#C7CBE4;}
  .price-list .icon{width:15px; height:15px; color:var(--lime-deep); margin-top:2px; flex-shrink:0;}
  .price-card.featured .price-list .icon{color:var(--lime);}

  /* ---------- showcase: dashboard + mobile mockup ---------- */
  /* =====================================================
   SHOWCASE SECTION
===================================================== */

.showcase-section {
  position: relative;

  background:
    radial-gradient(
      700px 400px at 15% 55%,
      rgba(91, 33, 182, .08),
      transparent 70%
    ),
    radial-gradient(
      550px 350px at 95% 35%,
      rgba(163, 230, 53, .05),
      transparent 70%
    ),
    var(--paper-dim);

  overflow: hidden;
}


.showcase-head {
  max-width: 720px;
  margin-bottom: 68px;
}


.showcase-head h2 span {
  color: var(--violet);
}



/* =====================================================
   LAYOUT
===================================================== */

.showcase-grid {
  display: grid;

  grid-template-columns:
    minmax(0, 1.35fr)
    minmax(280px, .75fr);

  gap: 70px;

  align-items: center;
}


@media (max-width: 1000px) {

  .showcase-grid {
    grid-template-columns: 1fr;
    gap: 80px;
  }

}



/* =====================================================
   DEVICE STACK
===================================================== */

.device-stack {
  position: relative;

  padding:
    18px
    28px
    45px
    0;
}


.device-stack::before {
  content: "";

  position: absolute;

  width: 75%;
  height: 70%;

  left: 8%;
  top: 18%;

  background:
    radial-gradient(
      circle,
      rgba(91, 33, 182, .14),
      transparent 68%
    );

  filter: blur(30px);

  pointer-events: none;
}



/* =====================================================
   DEVICE LABEL
===================================================== */

.device-label {

  position: absolute;

  z-index: 5;

  display: inline-flex;
  align-items: center;
  gap: 8px;

  padding: 8px 13px;

  border-radius: 100px;

  background:
    rgba(255,255,255,.92);

  border:
    1px solid rgba(91,33,182,.12);

  box-shadow:
    0 10px 30px rgba(32, 23, 60, .08);

  backdrop-filter: blur(10px);

  color: var(--ink-soft);

  font-size: 11.5px;

  font-weight: 600;
}


.device-label-dashboard {
  left: 24px;
  top: -20px;
}


.status-dot {

  width: 7px;
  height: 7px;

  border-radius: 50%;

  background: var(--lime-deep);

  box-shadow:
    0 0 0 4px rgba(163, 230, 53, .15);

}



/* =====================================================
   BROWSER FRAME
===================================================== */

.browser-frame {

  position: relative;
  z-index: 2;

  overflow: hidden;

  border-radius: 22px;

  background: #fff;

  border:
    1px solid rgba(91, 33, 182, .10);

  box-shadow:
    0 25px 70px rgba(27, 20, 53, .11),
    0 8px 25px rgba(27, 20, 53, .06);

  transition:
    transform .4s var(--ease),
    box-shadow .4s var(--ease);

}


@media (hover:hover) {

  .device-stack:hover .browser-frame {

    transform:
      translateY(-5px);

    box-shadow:
      0 35px 85px rgba(27, 20, 53, .14),
      0 10px 30px rgba(27, 20, 53, .07);

  }

}



/* =====================================================
   BROWSER HEADER
===================================================== */

.browser-bar {

  min-height: 49px;

  display: flex;

  align-items: center;

  padding:
    10px
    16px;

  background:
    linear-gradient(
      180deg,
      #faf9fd,
      #f6f4fa
    );

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

}


.browser-controls {

  display: flex;

  align-items: center;

  gap: 6px;

}


.browser-dot {

  width: 9px;
  height: 9px;

  border-radius: 50%;

  flex-shrink: 0;

}


.browser-dot-red {
  background: #F87171;
}

.browser-dot-yellow {
  background: #FBBF24;
}

.browser-dot-green {
  background: #34D399;
}



.browser-url {

  display: flex;

  align-items: center;

  gap: 6px;

  margin:
    0 auto;

  padding:
    5px
    14px;

  border-radius: 100px;

  background: #fff;

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

  color: var(--grey-light);

  font-size: 10.5px;

}


.browser-url svg {

  width: 11px;
  height: 11px;

  fill: none;

  stroke: currentColor;

  stroke-width: 1.8;

}



/* =====================================================
   DASHBOARD
===================================================== */

.dash-body {

  display: grid;

  grid-template-columns:
    58px
    minmax(0, 1fr);

  min-height: 360px;

}



/* sidebar */

.dash-side {

  display: flex;

  flex-direction: column;

  align-items: center;

  gap: 16px;

  padding:
    18px
    0;

  background:
    linear-gradient(
      180deg,
      var(--ink),
      #161a29
    );

}


.dash-logo {

  width: 32px;
  height: 32px;

  display: flex;

  align-items: center;

  justify-content: center;

  margin-bottom: 8px;

  border-radius: 10px;

  background: var(--lime);

  color: var(--violet-deep);

  font-family: 'Space Grotesk';

  font-size: 14px;

  font-weight: 800;

}


.dash-side-item {

  width: 34px;
  height: 34px;

  display: flex;

  align-items: center;

  justify-content: center;

  border-radius: 10px;

  color: #7C86A8;

  transition:
    background .25s ease,
    color .25s ease,
    transform .25s ease;

}


.dash-side-item .icon {

  width: 17px;
  height: 17px;

  fill: none;

  stroke-width: 1.7;

}


.dash-side-item.active {

  color: #fff;

  background: var(--violet);

}


@media (hover:hover) {

  .dash-side-item:hover {

    transform: translateY(-2px);

    color: #fff;

    background:
      rgba(255,255,255,.08);

  }

}



/* dashboard content */

.dash-main {

  min-width: 0;

  padding:
    22px
    24px;

  background:
    var(--paper);

}



/* top */

.dash-top {

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 20px;

  margin-bottom: 18px;

}


.dash-top > div:first-child {

  display: flex;

  flex-direction: column;

  gap: 2px;

}


.dash-eyebrow {

  color:
    var(--grey-light);

  font-size: 9.5px;

  text-transform: uppercase;

  letter-spacing: .08em;

}


.dash-top strong {

  color: var(--ink);

  font-size: 13px;

}


.dash-live {

  display: flex;

  align-items: center;

  gap: 5px;

  padding:
    5px
    8px;

  border-radius:
    100px;

  background:
    #F7FEE7;

  color:
    var(--lime-deep);

  font-size:
    9px;

  font-weight: 700;

}


.dash-live span {

  width: 5px;
  height: 5px;

  border-radius: 50%;

  background:
    var(--lime-deep);

}



/* =====================================================
   DASHBOARD STATS
===================================================== */

.dash-stats {

  display: grid;

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

  gap: 10px;

  margin-bottom: 15px;

}


.dash-stat {

  padding:
    12px
    13px;

  border-radius: 12px;

  background:
    #fff;

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

  box-shadow:
    0 2px 8px rgba(30,25,50,.025);

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

}


@media (hover:hover) {

  .dash-stat:hover {

    transform:
      translateY(-3px);

    border-color:
      rgba(91,33,182,.20);

    box-shadow:
      0 9px 20px rgba(91,33,182,.07);

  }

}


.dash-stat-top {

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 7px;

}


.dash-stat-label {

  display: block;

  color:
    var(--grey-light);

  font-size:
    9.5px;

}


.dash-stat-value {

  display: block;

  margin-top:
    6px;

  color:
    var(--ink);

  font-family:
    'Space Grotesk';

  font-size:
    16px;

  font-weight:
    700;

}


.dash-trend {

  font-size:
    8.5px;

  font-weight:
    700;

}


.dash-trend.positive {

  color:
    var(--lime-deep);

}



/* =====================================================
   CHART
===================================================== */

.dash-chart-wrap {

  padding:
    12px
    13px
    8px;

  margin-bottom:
    14px;

  border-radius:
    12px;

  background:
    linear-gradient(
      180deg,
      #faf9fd,
      #fff
    );

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

}


.dash-chart-head {

  display: flex;

  justify-content: space-between;

  margin-bottom:
    10px;

  color:
    var(--grey-light);

  font-size:
    9px;

}


.dash-chart {

  display: flex;

  align-items: flex-end;

  gap: 7px;

  height:
    65px;

}


.dash-chart span {

  flex: 1;

  min-width: 5px;

  border-radius:
    4px
    4px
    1px
    1px;

  background:
    linear-gradient(
      180deg,
      var(--violet),
      var(--violet-2)
    );

  transform-origin:
    bottom;

  animation:
    dashboardBarIn
    .85s
    var(--ease)
    both;

}


.dash-chart .bar-1 { height: 34%; }
.dash-chart .bar-2 { height: 52%; }
.dash-chart .bar-3 { height: 40%; }
.dash-chart .bar-4 { height: 70%; }
.dash-chart .bar-5 { height: 58%; }
.dash-chart .bar-6 {
  height: 88%;

  background:
    linear-gradient(
      180deg,
      var(--lime),
      var(--lime-deep)
    );
}

.dash-chart .bar-7 { height: 64%; }


.dash-chart span:nth-child(2) {
  animation-delay: .08s;
}

.dash-chart span:nth-child(3) {
  animation-delay: .16s;
}

.dash-chart span:nth-child(4) {
  animation-delay: .24s;
}

.dash-chart span:nth-child(5) {
  animation-delay: .32s;
}

.dash-chart span:nth-child(6) {
  animation-delay: .40s;
}

.dash-chart span:nth-child(7) {
  animation-delay: .48s;
}


@keyframes dashboardBarIn {

  from {

    transform:
      scaleY(.05);

    opacity:
      .2;

  }

  to {

    transform:
      scaleY(1);

    opacity:
      1;

  }

}



/* =====================================================
   DASHBOARD ORDERS
===================================================== */

.dash-orders-title {

  margin:
    2px
    0
    5px;

  color:
    var(--grey-light);

  font-size:
    9px;

  font-weight:
    600;

  text-transform:
    uppercase;

  letter-spacing:
    .07em;

}


.dash-row {

  display: flex;

  align-items: center;

  gap: 9px;

  padding:
    9px
    0;

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

  color:
    var(--ink-soft);

  font-size:
    11px;

}


.dash-row .dot {

  width: 7px;
  height: 7px;

  border-radius: 50%;

  flex-shrink: 0;

}


.dash-row .dot.lime {
  background:
    var(--lime-deep);
}


.dash-row .dot.violet {
  background:
    var(--violet);
}


.dash-customer {

  display: flex;

  flex-direction: column;

  gap: 1px;

}


.dash-customer strong {

  font-size:
    10.5px;

  color:
    var(--ink);

}


.dash-customer span {

  color:
    var(--grey-light);

  font-size:
    9px;

}


.dash-row .tag {

  margin-left:
    auto;

  padding:
    3px
    9px;

  border-radius:
    100px;

  background:
    #F7FEE7;

  color:
    var(--lime-deep);

  font-size:
    9px;

  font-weight:
    700;

}


.dash-row .tag.pending {

  background:
    #FFF7ED;

  color:
    #9A3412;

}



/* =====================================================
   MINI PHONE
===================================================== */

.mini-phone {

  position: absolute;

  z-index: 4;

  right: -15px;
  bottom: -25px;

  width:
    132px;

  padding:
    6px;

  border-radius:
    24px;

  background:
    var(--ink);

  border:
    1px solid #22283b;

  box-shadow:
    0 20px 50px rgba(20,17,35,.23);

  transform:
    rotate(2deg);

  transition:
    transform .4s var(--ease);

}


@media (hover:hover) {

  .device-stack:hover .mini-phone {

    transform:
      translateY(-7px)
      rotate(0deg);

  }

}


.mini-phone-notch {

  width:
    38px;

  height:
    8px;

  margin:
    0 auto;

  border-radius:
    0
    0
    7px
    7px;

  background:
    var(--ink);

}


.mini-phone-screen {

  display: flex;

  flex-direction:
    column;

  gap:
    7px;

  padding:
    8px;

  border-radius:
    16px;

  background:
    #fff;

}


.mini-status {

  display:
    flex;

  justify-content:
    space-between;

  color:
    var(--grey-light);

  font-size:
    6px;

}


.mini-phone-header {

  display:
    flex;

  align-items:
    center;

  gap:
    6px;

}


.mini-avatar {

  width:
    23px;

  height:
    23px;

  display:
    flex;

  align-items:
    center;

  justify-content:
    center;

  border-radius:
    8px;

  background:
    var(--violet);

  color:
    #fff;

  font-size:
    8px;

  font-weight:
    700;

}


.mini-phone-header div {

  display:
    flex;

  flex-direction:
    column;

}


.mini-phone-header strong {

  color:
    var(--ink);

  font-size:
    7.5px;

}


.mini-phone-header div span {

  color:
    var(--grey-light);

  font-size:
    5.5px;

}


.mini-phone-hero {

  display:
    flex;

  flex-direction:
    column;

  gap:
    2px;

  padding:
    10px;

  border-radius:
    9px;

  background:
    linear-gradient(
      135deg,
      var(--violet-deep),
      var(--violet)
    );

  color:
    #fff;

}


.mini-phone-hero span {

  opacity:
    .72;

  font-size:
    6px;

}


.mini-phone-hero strong {

  font-family:
    'Space Grotesk';

  font-size:
    12px;

}


.mini-phone-hero small {

  color:
    var(--lime);

  font-size:
    5.5px;

}


.mini-phone-card {

  display:
    flex;

  align-items:
    center;

  justify-content:
    space-between;

  min-height:
    28px;

  padding:
    7px;

  border-radius:
    7px;

  background:
    var(--paper-dim);

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

  color:
    var(--grey-light);

  font-size:
    6px;

}


.mini-phone-card strong {

  color:
    var(--ink);

  font-size:
    7px;

}



/* =====================================================
   SYNC BADGE
===================================================== */

.sync-pill {

  position:
    absolute;

  z-index:
    6;

  left:
    42%;

  bottom:
    -3px;

  display:
    inline-flex;

  align-items:
    center;

  gap:
    6px;

  padding:
    8px
    12px;

  border-radius:
    100px;

  background:
    #fff;

  border:
    1px solid
    rgba(163,230,53,.4);

  box-shadow:
    0 8px 25px
    rgba(31,25,50,.09);

  color:
    var(--lime-deep);

  font-size:
    10px;

  font-weight:
    700;

}


.sync-pill svg {

  width:
    13px;

  height:
    13px;

  fill:
    none;

  stroke:
    currentColor;

  stroke-width:
    2.5;

}



/* =====================================================
   INVOICE AREA
===================================================== */

.invoice-stage {

  position:
    relative;

  display:
    flex;

  flex-direction:
    column;

  align-items:
    center;

  gap:
    18px;

  padding:
    42px
    28px
    28px;

  border-radius:
    28px;

  background:
    linear-gradient(
      145deg,
      rgba(91,33,182,.065),
      rgba(255,255,255,.65)
    );

  border:
    1px solid
    rgba(91,33,182,.08);

}



/* automation label */

.automation-badge {

  display:
    flex;

  align-items:
    center;

  gap:
    10px;

  align-self:
    flex-start;

}


.automation-icon {

  width:
    36px;

  height:
    36px;

  display:
    flex;

  align-items:
    center;

  justify-content:
    center;

  border-radius:
    11px;

  background:
    var(--violet);

  color:
    #fff;

  box-shadow:
    0 8px 20px rgba(91,33,182,.2);

}


.automation-icon svg {

  width:
    17px;

  height:
    17px;

  fill:
    none;

  stroke:
    currentColor;

  stroke-width:
    1.8;

  stroke-linejoin:
    round;

}


.automation-badge > span:last-child {

  display:
    flex;

  flex-direction:
    column;

  color:
    var(--ink);

  font-size:
    12px;

  font-weight:
    700;

}


.automation-badge small {

  margin-bottom:
    1px;

  color:
    var(--grey-light);

  font-size:
    8.5px;

  font-weight:
    600;

  text-transform:
    uppercase;

  letter-spacing:
    .07em;

}



/* =====================================================
   INVOICE CARD
===================================================== */

.invoice-card {

  position:
    relative;

  width:
    100%;

  max-width:
    310px;

  padding:
    23px;

  border-radius:
    20px;

  background:
    #fff;

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

  box-shadow:
    0 24px 55px rgba(32,23,60,.11);

  transition:
    transform .35s var(--ease),
    box-shadow .35s var(--ease);

}


@media (hover:hover) {

  .invoice-card:hover {

    transform:
      translateY(-5px)
      rotate(-.5deg);

    box-shadow:
      0 32px 70px rgba(32,23,60,.14);

  }

}



/* invoice brand */

.invoice-brand {

  display:
    flex;

  align-items:
    center;

  gap:
    9px;

  padding-bottom:
    14px;

  margin-bottom:
    14px;

  border-bottom:
    1px dashed var(--border);

}


.invoice-logo {

  width:
    34px;

  height:
    34px;

  display:
    flex;

  align-items:
    center;

  justify-content:
    center;

  border-radius:
    10px;

  background:
    var(--violet);

  color:
    #fff;

  font-family:
    'Space Grotesk';

  font-size:
    13px;

  font-weight:
    700;

}


.invoice-brand div:last-child {

  display:
    flex;

  flex-direction:
    column;

}


.invoice-brand strong {

  color:
    var(--ink);

  font-size:
    11.5px;

}


.invoice-brand span {

  margin-top:
    1px;

  color:
    var(--grey-light);

  font-size:
    8.5px;

}



/* invoice header */

.invoice-head {

  display:
    flex;

  align-items:
    center;

  justify-content:
    space-between;

  padding-bottom:
    13px;

  margin-bottom:
    10px;

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

}


.invoice-head > div {

  display:
    flex;

  flex-direction:
    column;

}


.invoice-head small {

  color:
    var(--grey-light);

  font-size:
    8.5px;

  font-weight:
    500;

}


.invoice-head > div span {

  margin-top:
    2px;

  color:
    var(--ink);

  font-family:
    'Space Grotesk';

  font-size:
    13px;

  font-weight:
    700;

}



/* Paid stamp */

.invoice-stamp {

  padding:
    5px
    11px;

  border-radius:
    100px;

  background:
    #F7FEE7;

  color:
    var(--lime-deep);

  font-size:
    10px;

  font-weight:
    700;

  opacity:
    0;

  transform:
    scale(.8)
    rotate(-6deg);

  transition:
    opacity .4s var(--ease),
    transform .4s var(--ease);

}


.invoice-stamp.show {

  opacity:
    1;

  transform:
    scale(1)
    rotate(-6deg);

}



/* invoice rows */

.invoice-row {

  display:
    flex;

  justify-content:
    space-between;

  gap:
    15px;

  padding:
    7px 0;

  color:
    var(--grey);

  font-size:
    12.5px;

  opacity:
    0;

  transform:
    translateX(-8px);

  transition:
    opacity .4s var(--ease),
    transform .4s var(--ease);

}


.invoice-row.show {

  opacity:
    1;

  transform:
    translateX(0);

}


.invoice-row span:last-child {

  color:
    var(--ink-soft);

  font-weight:
    600;

}


.invoice-muted {

  opacity:
    0;

}


.invoice-muted.show {

  opacity:
    .7;

}



/* total */

.invoice-total {

  display:
    flex;

  justify-content:
    space-between;

  margin-top:
    9px;

  padding-top:
    13px;

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

  color:
    var(--ink);

  font-family:
    'Space Grotesk';

  font-size:
    15px;

  font-weight:
    700;

  opacity:
    0;

  transform:
    translateX(-8px);

  transition:
    opacity .4s var(--ease),
    transform .4s var(--ease);

}


.invoice-total.show {

  opacity:
    1;

  transform:
    translateX(0);

}



/* invoice footer */

.invoice-footer {

  margin-top:
    16px;

  padding:
    9px;

  border-radius:
    9px;

  background:
    var(--paper-dim);

  color:
    var(--grey-light);

  text-align:
    center;

  font-size:
    8.5px;

}



/* caption */

.invoice-caption {

  max-width:
    280px;

  margin:
    0;

  color:
    var(--grey);

  text-align:
    center;

  font-size:
    13px;

  line-height:
    1.65;

}



/* =====================================================
   RESPONSIVE
===================================================== */

@media (max-width: 1000px) {

  .device-stack {

    max-width:
      760px;

    margin:
      0 auto;

  }


  .invoice-stage {

    max-width:
      520px;

    margin:
      0 auto;

  }

}


@media (max-width: 650px) {

  .showcase-head {
    margin-bottom:
      50px;
  }


  .device-stack {

    padding:
      10px
      0
      30px;

  }


  .device-label-dashboard {

    left:
      14px;

    top:
      -22px;

  }


  .dash-body {

    grid-template-columns:
      44px
      1fr;

  }


  .dash-side {

    gap:
      13px;

  }


  .dash-logo {

    width:
      28px;

    height:
      28px;

  }


  .dash-side-item {

    width:
      29px;

    height:
      29px;

  }


  .dash-main {

    padding:
      16px
      14px;

  }


  .dash-stats {

    gap:
      6px;

  }


  .dash-stat {

    padding:
      9px;

  }


  .dash-stat-value {

    font-size:
      12px;

  }


  .dash-stat-label {

    font-size:
      7.5px;

  }


  .dash-trend {

    display:
      none;

  }


  .browser-url {

    max-width:
      65%;

    overflow:
      hidden;

    white-space:
      nowrap;

    text-overflow:
      ellipsis;

  }


  .mini-phone {

    right:
      3px;

    bottom:
      -35px;

    width:
      112px;

  }


  .sync-pill {

    left:
      23%;

    bottom:
      -15px;

  }

}



@media (max-width: 480px) {

  .browser-frame {

    border-radius:
      17px;

  }


  .browser-url {

    font-size:
      8px;

    padding:
      4px
      8px;

  }


  .dash-stats {

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

  }


  .dash-chart {

    height:
      50px;

  }


  .dash-row {

    font-size:
      9px;

  }


  .dash-customer strong {

    font-size:
      9px;

  }


  .dash-customer span {

    font-size:
      7.5px;

  }


  .mini-phone {

    display:
      none;

  }


  .sync-pill {

    left:
      auto;

    right:
      12px;

  }


  .invoice-stage {

    padding:
      34px
      18px
      24px;

    border-radius:
      22px;

  }

}



/* =====================================================
   REDUCED MOTION
===================================================== */

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

  .dash-chart span {

    animation:
      none;

  }


  .browser-frame,
  .mini-phone,
  .invoice-card,
  .dash-stat {

    transition:
      none;

  }

}

/* =====================================================
   BUILT FOR / BUSINESS TYPES
===================================================== */

.who-section {
  position: relative;

  background:
    radial-gradient(
      650px 400px at 5% 20%,
      rgba(91, 33, 182, .09),
      transparent 70%
    ),
    radial-gradient(
      600px 450px at 95% 80%,
      rgba(163, 230, 53, .06),
      transparent 70%
    ),
    var(--paper-dim);

  overflow: hidden;
}


/* decorative grid */

.who-section::before {
  content: "";

  position: absolute;
  inset: 0;

  pointer-events: none;

  opacity: .18;

  background-image:
    linear-gradient(
      rgba(91, 33, 182, .06) 1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(91, 33, 182, .06) 1px,
      transparent 1px
    );

  background-size: 48px 48px;

  mask-image:
    linear-gradient(
      to bottom,
      transparent,
      #000 25%,
      #000 75%,
      transparent
    );
}



/* =====================================================
   HEADING
===================================================== */

.who-head {
  position: relative;
  z-index: 2;

  max-width: 760px;

  margin-left: auto;
  margin-right: auto;
  margin-bottom: 58px;
}


.who-head h2 {
  max-width: 720px;
}


.who-head h2 span {
  color: var(--violet);
}


.who-head p {
  max-width: 590px;

  margin:
    18px auto 0;
}



/* =====================================================
   SLIDER
===================================================== */

.business-slider {
     --business-gap: 20px;
  --business-half-gap: 10px;
  position: relative;

  width: 100%;

  overflow: hidden;

  padding:
    12px
    0;
      /* Helps mobile rendering */
  transform: translateZ(0);
}


/*
Fade cards at left/right edges
*/

.business-slider::before,
.business-slider::after {
  content: "";

  position: absolute;

  top: 0;
  bottom: 0;

  width: 90px;

  z-index: 5;

  pointer-events: none;
}


.business-slider::before {
  left: 0;

  background:
    linear-gradient(
      to right,
      var(--paper-dim),
      transparent
    );
}


.business-slider::after {
  right: 0;

  background:
    linear-gradient(
      to left,
      var(--paper-dim),
      transparent
    );
}



/* spacing between rows */

.business-slider-right {
  margin-top: 12px;
}



/* =====================================================
   TRACK
===================================================== */

.business-track {
  display: flex;

  align-items: stretch;

  width: max-content;

  gap: var(--business-gap);

  will-change: transform;

  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;

  transform: translate3d(0, 0, 0);
}




/* top moves LEFT */

.business-slider-left .business-track {
  animation:
    businessSlideLeft
    32s
    linear
    infinite;
}



/* bottom moves RIGHT */

.business-slider-right .business-track {
  animation:
    businessSlideRight
    34s
    linear
    infinite;
}



/* pause if visitor hovers */

@media (hover:hover) {

  .business-slider:hover .business-track {
    animation-play-state: paused;
  }

}



/* =====================================================
   LOOP ANIMATION
===================================================== */

@keyframes businessSlideLeft {

  from {
    transform:
      translate3d(
        0,
        0,
        0
      );
  }

  to {
    transform:
      translate3d(
        calc(-50% - var(--business-half-gap)),
        0,
        0
      );
  }

}



@keyframes businessSlideRight {

  from {
    transform:
      translate3d(
        calc(-50% - var(--business-half-gap)),
        0,
        0
      );
  }

  to {
    transform:
      translate3d(
        0,
        0,
        0
      );
  }

}



/* =====================================================
   BUSINESS CARD
===================================================== */

.business-card {
  position: relative;

  flex:
    0
    0
    300px;

  height:
    190px;

  overflow: hidden;

  border-radius:
    24px;

  background:
    var(--ink);

  border:
    1px solid
    rgba(255, 255, 255, .08);

  box-shadow:
    0 14px 35px rgba(24, 19, 44, .08);

  transform:
    translateZ(0);

  transition:
    transform .4s var(--ease),
    box-shadow .4s var(--ease);
}



/* image */

.business-card > img {
  position: absolute;

  inset: 0;

  width: 100%;
  height: 100%;

  object-fit: cover;

  object-position: center;

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



/* dark gradient */

.business-overlay {
  position: absolute;

  inset: 0;

  background:
    linear-gradient(
      180deg,
      rgba(14, 12, 24, .02) 15%,
      rgba(14, 12, 24, .24) 47%,
      rgba(14, 12, 24, .94) 100%
    );
}



/* subtle violet tint */

.business-card::after {
  content: "";

  position: absolute;

  inset: 0;

  background:
    linear-gradient(
      135deg,
      rgba(91,33,182,.08),
      transparent 48%
    );

  pointer-events: none;
}



/* =====================================================
   CARD CONTENT
===================================================== */

.business-card-content {
  position: absolute;

  z-index: 3;

  left: 0;
  right: 0;
  bottom: 0;

  display: flex;

  align-items: flex-start;

  gap: 8px;

  padding:
    10px;
}



/* icon */

.business-icon {
  flex-shrink: 0;

  width: 30px;
  height: 30px;

  display: flex;

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

  border-radius:
    8px;

  background:
    rgba(255,255,255,.14);

  border:
    1px solid
    rgba(255,255,255,.19);

  backdrop-filter:
    blur(12px);

  color:
    var(--lime);
}


.business-icon svg {
  width: 21px;
  height: 21px;

  fill: none;

  stroke: currentColor;

  stroke-width: 1.8;

  stroke-linecap: round;
  stroke-linejoin: round;
}



/* label */

.business-small {
  display: block;

  margin-bottom:
    2px;

  color:
    var(--lime);

  font-size:
    9.5px;

  font-weight:
    700;

  text-transform:
    uppercase;

  letter-spacing:
    .1em;
}



/* title */

.business-card h3 {
  margin:
    0;

  color:
    #fff;

  font-size:
    18px;

  font-weight:
    650;

  letter-spacing:
    -.02em;
}



/* text */

.business-card p {
  max-width:
    205px;

  margin:
    5px
    0
    0;

  color:
    rgba(255,255,255,.70);

  font-size:
    11.5px;

  line-height:
    1.5;
}



/* =====================================================
   HOVER
===================================================== */

@media (hover:hover) {

  .business-card:hover {
    transform:
      translateY(-8px);

    box-shadow:
      0 28px 65px rgba(24,19,44,.20);
  }


  .business-card:hover > img {
    transform:
      scale(1.08);
  }


  .business-card:hover .business-icon {
    background:
      var(--violet);

    border-color:
      var(--violet);
  }

}



/* =====================================================
   FOOT NOTE
===================================================== */

.who-note {
  max-width:
    760px;

  margin:
    50px auto 0;

  padding:
    16px
    22px;

  border-radius:
    15px;

  background:
    rgba(255,255,255,.7);

  border:
    1px solid
    rgba(91,33,182,.09);

  box-shadow:
    0 10px 30px rgba(32,24,58,.035);

  color:
    var(--grey);

  text-align:
    center;

  font-size:
    13px;

  line-height:
    1.6;
}


.who-note span {
  color:
    var(--ink);

  font-weight:
    700;
}



/* =====================================================
   TABLET
===================================================== */

@media (max-width: 900px) {

      .business-slider {
    --business-gap: 16px;
    --business-half-gap: 8px;
  }

  .business-card {
    flex:
      0 0 270px;

    width: 270px;

    height: 215px;
  }


  .business-slider::before,
  .business-slider::after {
    width:
      45px;
  }

    .business-slider-left .business-track {
    animation-duration: 27s;
  }


  .business-slider-right .business-track {
    animation-duration: 29s;
  }


}



/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 600px) {

      .business-slider {
    --business-gap: 14px;

    /* Half of 14px */
    --business-half-gap: 7px;

    padding: 8px 0;
  }


  .who-head {
    margin-bottom:
      42px;
  }


  .business-track {
    gap:
      14px;
  }


 
  .business-card {
    flex:
      0 0 min(74vw, 255px);

    width:
      min(74vw, 255px);

    height: 180px;

    border-radius: 20px;
  }


  .business-card-content {
    padding: 18px;

    gap: 11px;
  }

  .business-icon {
    width:
      37px;

    height:
      37px;

    border-radius:
      11px;
  }


  .business-icon svg {
    width:
      18px;

    height:
      18px;
  }


  .business-card h3 {
    font-size:
      16px;
  }


  .business-card p {
    font-size:
      10.5px;
      max-width: 180px;
  }


  .business-slider::before,
  .business-slider::after {
    width:
      18px;
  }


  /*
  Slightly faster because mobile cards
  are narrower.
  */

  .business-slider-left .business-track {
    animation-duration:
      21s;
  }


  .business-slider-right .business-track {
    animation-duration:
      23s;
  }


  .who-note {
    margin-top:
      36px;
  }

}


/* =====================================================
   VERY SMALL PHONES
===================================================== */

@media (max-width: 380px) {

  .business-card {
    flex-basis: 76vw;

    width: 76vw;

    max-width: 245px;

    height: 180px;
  }


  .business-slider-left .business-track {
    animation-duration: 20s;
  }


  .business-slider-right .business-track {
    animation-duration: 22s;
  }

}




/* =====================================================
   REDUCED MOTION
===================================================== */


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

  .business-track {
    animation: none !important;
  }


  .business-slider {
    overflow-x: auto;

    scrollbar-width: none;

    -webkit-overflow-scrolling: touch;
  }


  .business-slider::-webkit-scrollbar {
    display: none;
  }

}

  /* ---------- persona / entrepreneurs-to-enterprise ---------- */
  .persona-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:40px;}
  @media (max-width:860px){ .persona-grid{grid-template-columns:1fr;} }
  .persona-card{background:var(--paper); border:1px solid var(--border); border-radius:var(--radius-md); overflow:hidden; transition:transform .25s var(--ease), box-shadow .25s var(--ease);}
  .persona-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-soft);}
  .persona-media{height:150px; display:flex; align-items:center; justify-content:center;}
  .persona-media .icon{width:34px; height:34px; color:#fff; stroke-width:1.4;}
  .persona-media-1{background:linear-gradient(135deg,var(--violet),var(--violet-deep));}
  .persona-media-2{background:linear-gradient(135deg,#4D7C0F,var(--violet-2));}
  .persona-media-3{background:linear-gradient(135deg,var(--ink),var(--violet-deep));}
  .persona-card h3{font-size:16.5px; font-weight:600; padding:20px 20px 6px; color:var(--ink);}
  .persona-card h3 strong{color:var(--violet); font-weight:700;}
  .persona-card p{font-size:13.5px; color:var(--grey); line-height:1.6; padding:0 20px 22px;}
  .persona-cta{display:flex; justify-content:center;}

  /* ---------- FAQ ---------- */
  .faq-list{max-width:780px;}
  .faq-item{border-bottom:1px solid var(--border); padding:6px 0;}
  .faq-item:first-child{border-top:1px solid var(--border);}
  .faq-item summary{
    display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 4px;
    font-family:'Space Grotesk'; font-size:16px; font-weight:600; color:var(--ink); cursor:pointer; list-style:none;
  }
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-chevron{width:19px; height:19px; color:var(--violet); flex-shrink:0; transition:transform .25s var(--ease);}
  .faq-item[open] .faq-chevron{transform:rotate(180deg);}
  .faq-body{padding:0 4px 20px;}
  .faq-body p{font-size:14.5px; color:var(--grey); line-height:1.7; max-width:640px;}

  /* ============ reviews ============ */
.reviews-summary{display:flex; align-items:center; justify-content:center; gap:8px; margin-top:14px; font-size:15px; color:var(--ink-soft); font-weight:600;}
.reviews-summary .stars{color:var(--lime-deep); letter-spacing:2px;}
.reviews-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-bottom:32px;}
@media (max-width:860px){ .reviews-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:600px){ .reviews-grid{grid-template-columns:1fr;} }

.review-card{background:var(--paper); border:1px solid var(--border); border-radius:var(--radius-md); padding:24px; display:flex; flex-direction:column; gap:14px;}
.review-card .stars{color:var(--lime-deep); font-size:15px; letter-spacing:2px;}
.review-card p{font-size:14.5px; color:var(--ink-soft); line-height:1.65; flex:1; margin:0;}
.review-person{display:flex; align-items:center; gap:11px;}
.review-avatar{width:38px; padding:12px; height:38px; border-radius:50%; background:var(--violet-tint); color:var(--violet); display:flex; align-items:center; justify-content:center; font-weight:900; font-size:30px; flex-shrink:0;}
.review-person strong{display:block; font-size:14px; color:var(--ink);}
.review-person span{display:block; font-size:12.5px; color:var(--grey);}

.reviews-empty{text-align:center; color:var(--grey); font-size:14.5px; padding:32px 0; margin-bottom:24px;}

.reviews-write{max-width:560px; margin:0 auto; text-align:center;}
.review-form{margin-top:24px; text-align:left; background:var(--paper); border:1px solid var(--border); border-radius:var(--radius-md); padding:26px;}
.review-form .form-row{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
@media (max-width:560px){ .review-form .form-row{grid-template-columns:1fr;} }
.review-form label{display:block; font-size:13.5px; font-weight:600; color:var(--ink-soft); margin-bottom:7px;}
.review-form input, .review-form textarea{
  width:100%; padding:11px 13px; border-radius:10px; border:1px solid var(--border); background:var(--paper-dim);
  font:400 16px 'Inter',sans-serif; color:var(--ink); box-sizing:border-box; margin-bottom:16px;
}
.review-form textarea{resize:vertical; font-family:inherit;}
.review-form input:focus, .review-form textarea:focus{outline:none; border-color:var(--violet); box-shadow:0 0 0 3px rgba(91,33,182,0.12);}

.star-picker{display:flex; gap:6px; margin-bottom:16px;}
.star-btn{background:none; border:none; font-size:26px; line-height:1; color:var(--border); cursor:pointer; padding:0; transition:color .15s, transform .15s;}
.star-btn:hover{transform:scale(1.1);}
.star-btn.is-active{color:var(--lime-deep);}

.review-form-note{font-size:12.5px; color:var(--grey-light); margin-top:4px;}

.review-thanks{display:flex; align-items:center; justify-content:center; gap:8px; margin-top:20px; color:var(--lime-deep); font-weight:600; font-size:14.5px;}
.review-thanks .icon{width:18px; height:18px;}
  
  /* ---------- CTA band ---------- */
  /* =====================================================
   FINAL CTA
===================================================== */

.cta-band {
  position: relative;

  overflow: hidden;

  border-radius: 30px;

  background:
    radial-gradient(
      600px 300px at 85% 15%,
      rgba(163, 230, 53, .17),
      transparent 65%
    ),
    linear-gradient(
      135deg,
      var(--violet-deep),
      var(--violet)
    );

  box-shadow:
    0 28px 70px rgba(91, 33, 182, .22);
}


/* background decoration */

.cta-band::before {
  content: "";

  position: absolute;

  width: 320px;
  height: 320px;

  left: -100px;
  bottom: -190px;

  border-radius: 50%;

  border:
    1px solid rgba(255, 255, 255, .12);

  box-shadow:
    0 0 0 45px rgba(255,255,255,.025),
    0 0 0 90px rgba(255,255,255,.018);

  pointer-events: none;
}


.cta-band::after {
  content: "";

  position: absolute;

  width: 220px;
  height: 220px;

  right: -80px;
  top: -100px;

  border-radius: 50%;

  background:
    rgba(163, 230, 53, .08);

  filter: blur(4px);

  pointer-events: none;
}



/* inner */

.cta-inner {
  position: relative;
  z-index: 2;

  max-width: 760px;

  margin: 0 auto;

  padding: 72px 35px;

  text-align: center;
}



/* kicker */

.cta-kicker {
  display: inline-flex;

  align-items: center;

  margin-bottom: 17px;

  padding: 7px 13px;

  border-radius: 100px;

  background:
    rgba(255,255,255,.1);

  border:
    1px solid rgba(255,255,255,.13);

  color:
    var(--lime);

  font-size: 11px;

  font-weight: 700;

  letter-spacing: .08em;

  text-transform: uppercase;

  backdrop-filter: blur(10px);
}



/* heading */

.cta-inner h2 {
  max-width: 650px;

  margin:
    0 auto;

  color: #fff;

  font-size:
    clamp(30px, 5vw, 48px);

  line-height: 1.08;

  letter-spacing: -.035em;
}


.cta-inner h2 span {
  color: var(--lime);
}



/* paragraph */

.cta-inner > p:not(.waitlist-note) {
  max-width: 590px;

  margin:
    20px auto 0;

  color:
    rgba(255,255,255,.72);

  font-size: 15.5px;

  line-height: 1.7;
}



/* =====================================================
   BUTTONS
===================================================== */

.cta-actions {
  display: flex;

  align-items: center;

  justify-content: center;

  flex-wrap: wrap;

  gap: 18px;

  margin-top: 32px;
}


.cta-main-btn {
  display: inline-flex;

  align-items: center;

  justify-content: center;

  gap: 10px;

  min-height: 52px;

  padding:
    0 23px;

  border-radius: 14px;

  box-shadow:
    0 12px 30px rgba(163,230,53,.17);

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


.cta-main-btn svg {
  width: 18px;
  height: 18px;

  fill: none;

  stroke: currentColor;

  stroke-width: 2;

  stroke-linecap: round;

  stroke-linejoin: round;

  transition:
    transform .25s ease;
}


@media (hover:hover) {

  .cta-main-btn:hover {
    transform:
      translateY(-3px);

    box-shadow:
      0 18px 40px rgba(163,230,53,.25);
  }


  .cta-main-btn:hover svg {
    transform:
      translateX(4px);
  }

}



/* docs link */

.cta-doc-link {
  position: relative;

  color:
    rgba(255,255,255,.82);

  font-size: 14px;

  font-weight: 600;

  text-decoration: none;

  transition:
    color .25s ease;
}


.cta-doc-link::after {
  content: "";

  position: absolute;

  left: 0;
  right: 0;
  bottom: -5px;

  height: 1px;

  background:
    rgba(255,255,255,.55);

  transform:
    scaleX(.35);

  transform-origin:
    center;

  transition:
    transform .3s ease;
}


@media (hover:hover) {

  .cta-doc-link:hover {
    color: #fff;
  }


  .cta-doc-link:hover::after {
    transform:
      scaleX(1);
  }

}



/* =====================================================
   TRUST POINTS
===================================================== */

.cta-trust {
  display: flex;

  align-items: center;

  justify-content: center;

  flex-wrap: wrap;

  gap: 11px 22px;

  margin-top: 35px;
}


.cta-trust span {
  display: inline-flex;

  align-items: center;

  gap: 6px;

  color:
    rgba(255,255,255,.65);

  font-size: 11.5px;
}


.cta-trust svg {
  width: 13px;
  height: 13px;

  fill: none;

  stroke: var(--lime);

  stroke-width: 2.5;

  stroke-linecap: round;

  stroke-linejoin: round;
}



/* small note */

.cta-inner .waitlist-note {
  margin:
    19px 0 0;

  color:
    rgba(255,255,255,.48);

  font-size:
    11.5px;
}



/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 600px) {

  .cta-band {
    border-radius: 23px;
  }


  .cta-inner {
    padding:
      52px 22px;
  }


  .cta-inner h2 {
    font-size:
      clamp(29px, 9vw, 38px);
  }


  .cta-inner > p:not(.waitlist-note) {
    font-size:
      14px;
  }


  .cta-actions {
    flex-direction: column;

    gap: 16px;

    margin-top: 28px;
  }


  .cta-main-btn {
    width: 100%;
  }


  .cta-trust {
    flex-direction: column;

    gap: 9px;
  }

}
  @media (max-width:640px){ .cta-band{padding:44px 24px;} }
  .cta-inner{position:relative; z-index:1; max-width:620px;}
  .cta-band h2{color:#fff; font-size:clamp(24px,3.6vw,34px); margin-bottom:14px;}
  .cta-band p{color:#D8CFF7; font-size:16px; line-height:1.6; margin-bottom:30px;}
  .waitlist-form{display:flex; gap:10px; flex-wrap:wrap;}
  .waitlist-form input, .waitlist-form select{
    flex:1; min-width:180px; padding:13px 16px; border-radius:100px; border:1px solid rgba(255,255,255,0.18);
    background:rgba(255,255,255,0.08); color:#fff; font-size:14.5px; font-family:inherit;
  }
  .waitlist-form input::placeholder{color:#B9AEE0;}
  .waitlist-form select{color:#fff;}
  .waitlist-form select option{color:var(--ink);}
  .waitlist-note{margin-top:14px; font-size:12.5px; color:#B9AEE0;}
  .form-success{display:none; align-items:center; gap:10px; color:var(--lime); font-weight:600; font-size:15px; margin-top:6px;}
  .form-success.show{display:flex;}
  .form-success .icon{color:var(--lime);}


  /* =====================================================
   CONTACT / SUPPORT
===================================================== */

.contact-section {
  position: relative;

  background:
    radial-gradient(
      650px 400px at 10% 30%,
      rgba(91,33,182,.07),
      transparent 70%
    ),
    var(--paper);

  overflow: hidden;
}


.contact-shell {
  display: grid;

  grid-template-columns:
    minmax(0,.82fr)
    minmax(420px,1.18fr);

  gap: 70px;

  align-items: center;

  padding: 58px;

  border-radius: 30px;

  background:
    linear-gradient(
      145deg,
      #faf8ff,
      #fff
    );

  border:
    1px solid rgba(91,33,182,.10);

  box-shadow:
    0 25px 70px rgba(32,23,60,.065);
}



/* =====================================================
   INTRO
===================================================== */

.contact-intro h2 {
  max-width: 470px;

  margin-top: 14px;

  font-size:
    clamp(32px,4vw,48px);

  line-height: 1.08;

  letter-spacing: -.035em;
}


.contact-intro h2 span {
  color: var(--violet);
}


.contact-intro > p {
  max-width: 470px;

  margin-top: 18px;

  color: var(--grey);

  font-size: 15px;

  line-height: 1.75;
}



/* status */

.contact-status {
  display: flex;

  align-items: center;

  gap: 12px;

  margin-top: 31px;

  padding: 14px 16px;

  max-width: 390px;

  border-radius: 14px;

  background:
    rgba(163,230,53,.08);

  border:
    1px solid rgba(163,230,53,.22);
}


.contact-status-dot {
  position: relative;

  width: 9px;
  height: 9px;

  flex-shrink: 0;

  border-radius: 50%;

  background: var(--lime-deep);

  box-shadow:
    0 0 0 5px rgba(163,230,53,.14);
}


.contact-status-dot::after {
  content: "";

  position: absolute;

  inset: -5px;

  border-radius: 50%;

  border:
    1px solid var(--lime-deep);

  animation:
    supportPulse 2.2s ease-out infinite;
}


@keyframes supportPulse {
  0% {
    transform: scale(.5);
    opacity: .7;
  }

  100% {
    transform: scale(1.8);
    opacity: 0;
  }
}


.contact-status div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}


.contact-status strong {
  color: var(--ink);

  font-size: 12px;
}


.contact-status div span {
  color: var(--grey);

  font-size: 10.5px;
}



/* =====================================================
   CONTACT OPTIONS
===================================================== */

.contact-options {
  display: flex;

  flex-direction: column;

  gap: 13px;
}


.contact-card {
  position: relative;

  display: grid;

  grid-template-columns:
    52px
    minmax(0,1fr)
    34px;

  align-items: center;

  gap: 16px;

  padding: 18px;

  border-radius: 18px;

  background: #fff;

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

  text-decoration: none;

  box-shadow:
    0 5px 20px rgba(32,23,60,.025);

  transition:
    transform .3s var(--ease),
    border-color .3s var(--ease),
    box-shadow .3s var(--ease);
}



/* WhatsApp / primary card */

.contact-primary {
  background:
    linear-gradient(
      135deg,
      rgba(91,33,182,.04),
      #fff
    );

  border-color:
    rgba(91,33,182,.15);
}



/* icon */

.contact-icon {
  width: 52px;
  height: 52px;

  display: flex;

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

  border-radius: 15px;

  background:
    var(--violet-tint);

  color:
    var(--violet);

  transition:
    background .3s ease,
    color .3s ease,
    transform .3s ease;
}


.contact-icon svg {
  width: 23px;
  height: 23px;

  fill: none;

  stroke: currentColor;

  stroke-width: 1.7;

  stroke-linecap: round;
  stroke-linejoin: round;
}



/* text */

.contact-card-copy {
  min-width: 0;
}


.contact-label {
  display: block;

  margin-bottom: 3px;

  color: var(--violet);

  font-size: 9px;

  font-weight: 700;

  text-transform: uppercase;

  letter-spacing: .08em;
}


.contact-card h3 {
  margin: 0;

  color: var(--ink);

  font-size: 14px;

  font-weight: 650;
}


.contact-card p {
  margin: 4px 0 0;

  color: var(--grey);

  font-size: 11px;

  line-height: 1.5;
}



/* arrow */

.contact-arrow {
  width: 32px;
  height: 32px;

  display: flex;

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

  border-radius: 10px;

  background: var(--paper-dim);

  color: var(--violet);

  transition:
    transform .3s ease,
    background .3s ease,
    color .3s ease;
}


.contact-arrow svg {
  width: 15px;
  height: 15px;

  fill: none;

  stroke: currentColor;

  stroke-width: 2;

  stroke-linecap: round;
  stroke-linejoin: round;
}



/* hover */

@media (hover:hover) {

  .contact-card:hover {
    transform:
      translateY(-4px)
      translateX(3px);

    border-color:
      rgba(91,33,182,.20);

    box-shadow:
      0 14px 35px rgba(91,33,182,.08);
  }


  .contact-card:hover .contact-icon {
    transform: scale(1.05);

    background: var(--violet);

    color: #fff;
  }


  .contact-card:hover .contact-arrow {
    transform: translateX(3px);

    background: var(--violet);

    color: #fff;
  }

}



/* =====================================================
   BUILDER CARD
===================================================== */

.builder-card {
  display: grid;

  grid-template-columns:
    auto
    1fr
    auto;

  align-items: center;

  gap: 28px;

  margin-top: 18px;

  padding:
    20px
    24px;

  border-radius: 20px;

  background:
    var(--ink);

  color: #fff;
}


.builder-left {
  display: flex;

  align-items: center;

  gap: 12px;
}


.builder-logo {
  width: 43px;
  height: 43px;

  display: flex;

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

  border-radius: 13px;

  

  color: var(--violet-deep);

  font-family: 'Space Grotesk';

  font-size: 17px;

  font-weight: 800;
}


.builder-left > div:last-child {
  display: flex;

  flex-direction: column;

  gap: 1px;
}


.builder-label {
  color:
    rgba(255,255,255,.52);

  font-size: 9px;

  text-transform: uppercase;

  letter-spacing: .07em;
}


.builder-left strong {
  font-size: 13px;
}


.builder-copy p {
  max-width: 470px;

  margin: 0;

  color:
    rgba(255,255,255,.58);

  font-size: 11.5px;

  line-height: 1.6;
}


.builder-btn {
  display: inline-flex;

  align-items: center;

  justify-content: center;

  gap: 8px;

  padding:
    11px
    15px;

  border-radius: 11px;

  background:
    rgba(255,255,255,.08);

  border:
    1px solid rgba(255,255,255,.11);

  color: #fff;

  text-decoration: none;

  font-size: 11px;

  font-weight: 600;

  white-space: nowrap;

  transition:
    background .25s ease,
    transform .25s ease;
}


.builder-btn svg {
  width: 14px;
  height: 14px;

  fill: none;

  stroke: currentColor;

  stroke-width: 2;
}


@media (hover:hover) {

  .builder-btn:hover {
    transform: translateY(-2px);

    background: var(--violet);
  }

}



/* =====================================================
   TABLET
===================================================== */

@media (max-width: 900px) {

  .contact-shell {
    grid-template-columns: 1fr;

    gap: 45px;

    padding: 45px;
  }


  .contact-intro {
    text-align: center;
  }


  .contact-intro h2,
  .contact-intro > p,
  .contact-status {
    margin-left: auto;
    margin-right: auto;
  }


  .contact-status {
    text-align: left;
  }


  .builder-card {
    grid-template-columns: 1fr auto;
  }


  .builder-copy {
    grid-column:
      1 / -1;

    grid-row: 2;
  }

}



/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 600px) {

  .contact-shell {
    padding:
      35px 18px;

    border-radius: 23px;
  }


  .contact-card {
    grid-template-columns:
      44px
      minmax(0,1fr)
      29px;

    gap: 12px;

    padding: 15px;
  }


  .contact-icon {
    width: 44px;
    height: 44px;

    border-radius: 12px;
  }


  .contact-icon svg {
    width: 20px;
    height: 20px;
  }


  .contact-card h3 {
    font-size: 12.5px;
  }


  .contact-card p {
    font-size: 10px;
  }


  .contact-arrow {
    width: 28px;
    height: 28px;
  }


  .builder-card {
    display: flex;

    flex-direction: column;

    align-items: flex-start;

    gap: 17px;

    padding: 21px;

    border-radius: 18px;
  }


  .builder-btn {
    width: 100%;
  }

}



/* =====================================================
   REDUCED MOTION
===================================================== */

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

  .contact-status-dot::after {
    animation: none;
  }

}

  /* ---------- footer ---------- */
  .footer{padding:56px 0 32px; border-top:1px solid var(--border);}
  .footer-top{display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap; padding-bottom:40px;}
  .footer-brand p{color:var(--grey); font-size:14px; max-width:280px; margin-top:14px; line-height:1.6;}
  .footer-cols{display:flex; gap:56px; flex-wrap:wrap;}
  .footer-col h4{font-size:13px; font-weight:700; color:var(--ink); margin-bottom:16px; text-transform:uppercase; letter-spacing:.04em;}
  .footer-col a{display:block; font-size:14px; color:var(--grey); margin-bottom:11px; transition:color .2s;}
  .footer-col a:hover{color:var(--violet);}
  .footer-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:28px; border-top:1px solid var(--border); flex-wrap:wrap; gap:12px;}
  .footer-bottom p{font-size:13px; color:var(--grey-light);}
  .footer-social{display:flex; gap:14px;}
  .footer-social a{width:36px; height:36px; border-radius:50%; background:var(--paper-dim); display:flex; align-items:center; justify-content:center; color:var(--grey); transition:background .2s, color .2s;}
  .footer-social a:hover{background:var(--violet-tint); color:var(--violet);}
  .footer-social .icon{width:17px; height:17px;}

/* ============ shared: inner-page hero ============ */
.page-hero{
  background:radial-gradient(120% 100% at 15% 0%, #EFE9FF 0%, var(--paper) 55%);
  padding:56px 0 44px; border-bottom:1px solid var(--border);
}
.page-hero .kicker{margin-bottom:12px;}
.page-hero h1{font-size:clamp(28px,4.2vw,42px); font-weight:700; line-height:1.12; max-width:680px;}
.page-hero .meta{display:flex; align-items:center; gap:10px; margin-top:18px; font-size:13.5px; color:var(--grey-light);}
.page-hero .meta .icon{width:15px; height:15px; color:var(--lime-deep);}
.back-link{display:inline-flex; align-items:center; gap:7px; font-size:13.5px; font-weight:600; color:var(--violet); margin-bottom:20px;}
.back-link .icon{width:15px; height:15px;}
.back-link:hover{opacity:.75;}

/* ============ documentation layout ============ */
.doc-shell {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: 56px;

  padding: 56px 24px 100px;

  align-items: start;

  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
}


/* TABLET */
@media (max-width: 900px) {

  .doc-shell {
    grid-template-columns: 1fr;

    gap: 32px;

    padding:
      40px 24px
      80px;
  }

}


/* MOBILE */
@media (max-width: 600px) {

  .doc-shell {
    grid-template-columns: minmax(0, 1fr);

    gap: 24px;

    padding:
      28px 18px
      64px;

    width: 100%;
  }

}


/* VERY SMALL MOBILE */
@media (max-width: 380px) {

  .doc-shell {
    padding:
      24px 15px
      56px;
  }

}

.doc-shell > * {
  min-width: 0;
}

.doc-content {
  min-width: 0;
}

.doc-content pre {
  max-width: 100%;
  overflow-x: auto;
}

.doc-content code {
  overflow-wrap: anywhere;
}

.doc-content img,
.doc-content video,
.doc-content iframe {
  max-width: 100%;
  height: auto;
}


.doc-nav{position:sticky; top:88px; align-self:start;}
.doc-nav-group{margin-bottom:22px;}
.doc-nav-group h5{font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--grey-light); margin-bottom:10px;}
.doc-nav a{
  display:block; font-size:14px; color:var(--grey); padding:6px 0 6px 14px; border-left:2px solid var(--border);
  transition:color .2s, border-color .2s;
}
.doc-nav a:hover{color:var(--violet);}
.doc-nav a.active{color:var(--violet); border-color:var(--violet); font-weight:600;}
@media (max-width:900px){ .doc-nav{position:static; display:flex; flex-wrap:wrap; gap:8px 18px; margin-bottom:8px;} .doc-nav a{border-left:none; padding:4px 0;} }

.doc-content{min-width:0;}
.doc-section{padding-bottom:56px; margin-bottom:56px; border-bottom:1px solid var(--border); scroll-margin-top:90px;}
.doc-section:last-child{border-bottom:none; margin-bottom:0;}
.doc-section .part-label{display:inline-block; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--lime-deep); margin-bottom:10px;}
.doc-section h2{font-size:26px; font-weight:700; margin-bottom:16px; scroll-margin-top:90px;}
.doc-section h3{font-size:18px; font-weight:600; margin:26px 0 10px;}
.doc-section p{color:var(--ink-soft); font-size:15.5px; line-height:1.75; margin-bottom:14px;}
.doc-section ul, .doc-section ol{margin:0 0 16px; padding-left:22px; color:var(--ink-soft); font-size:15.5px; line-height:1.8;}
.doc-section li{margin-bottom:6px;}
.doc-section strong{color:var(--ink); font-weight:600;}

.doc-table{width:100%; border-collapse:collapse; margin:8px 0 22px; font-size:14.5px;}
.doc-table th{
  background:var(--violet); color:#fff; text-align:left; padding:11px 14px; font-weight:600; font-size:13.5px;
}
.doc-table th:first-child{border-radius:10px 0 0 0;} .doc-table th:last-child{border-radius:0 10px 0 0;}
.doc-table td{padding:11px 14px; border-bottom:1px solid var(--border); color:var(--ink-soft); vertical-align:top;}
.doc-table tr:nth-child(even) td{background:var(--paper-dim);}

.doc-callout{
  background:var(--violet-tint); border-left:3px solid var(--violet); border-radius:0 12px 12px 0;
  padding:16px 20px; margin:18px 0; font-size:14.5px; color:var(--violet-2); font-weight:500; line-height:1.6;
}
.doc-callout.lime{background:#F7FEE7; border-color:var(--lime-deep); color:#3F6212;}

.doc-grid-2{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:18px;}
@media (max-width:640px){ .doc-grid-2{grid-template-columns:1fr;} }
.doc-mini-card{background:var(--paper-dim); border:1px solid var(--border); border-radius:12px; padding:16px 18px;}
.doc-mini-card h4{font-size:14.5px; font-weight:600; margin-bottom:6px; color:var(--ink);}
.doc-mini-card p{font-size:13.5px; color:var(--grey); margin:0; line-height:1.6;}

/* ============ legal / prose pages ============ */
.legal-shell{max-width:760px; margin:0 auto; padding: 28px 18px 64px;}
.legal-updated{
  display:inline-flex; align-items:center; gap:8px; background:var(--paper-dim); border:1px solid var(--border);
  padding:8px 14px; border-radius:100px; font-size:13px; color:var(--grey); margin-bottom:36px;
}
.legal-updated .icon{width:14px; height:14px; color:var(--lime-deep);}
.legal-shell h2{font-size:21px; font-weight:600; margin:38px 0 12px; scroll-margin-top:90px;}
.legal-shell h2:first-of-type{margin-top:0;}
.legal-shell p{font-size:15.5px; color:var(--ink-soft); line-height:1.8; margin-bottom:14px;}
.legal-shell ul{padding-left:22px; margin:0 0 14px; color:var(--ink-soft); font-size:15.5px; line-height:1.8;}
.legal-shell li{margin-bottom:7px;}
.legal-shell strong{color:var(--ink);}
.legal-toc{
  background:var(--paper-dim); border:1px solid var(--border); border-radius:14px; padding:20px 24px; margin-bottom:40px;
}
.legal-toc h4{font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--grey); margin-bottom:12px;}
.legal-toc ol{margin:0; padding-left:20px; columns:2; column-gap:24px; font-size:14px;}
@media (max-width:560px){ .legal-toc ol{columns:1;} }
.legal-toc li{margin-bottom:8px;}
.legal-toc a{color:var(--violet); font-weight:500;}
.legal-toc a:hover{text-decoration:underline;}
.legal-disclaimer{
  background:#FFF7ED; border:1px solid #FED7AA; border-radius:12px; padding:16px 20px; margin-bottom:36px;
  font-size:13.5px; color:#9A3412; line-height:1.65;
}

/* ============ back to top ============ */
.to-top{
  position:fixed; right:22px; bottom:22px; width:44px; height:44px; border-radius:50%; background:var(--ink);
  color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-lift);
  opacity:0; pointer-events:none; transition:opacity .3s, transform .2s; z-index:40; border:none;
}
.to-top.show{opacity:1; pointer-events:auto;}
.to-top:hover{transform:translateY(-2px);}
.to-top .icon{width:18px; height:18px; stroke-width:2;}
