/* ============================================================
   Landing page — design tokens
   Palette: near-black, white, one disciplined green. Green is spent
   sparingly (CTAs, the signature visual, small accents) — most of the
   page is quiet black-on-white/white-on-black so the green still reads
   as a decision rather than a wash.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,500&family=Manrope:wght@400;500;600;700;800&display=swap');

:root{
  --l-ink:#0B0F0D;
  --l-white:#FFFFFF;
  --l-soft:#F4F7F5;
  --l-border:#E2E8E4;
  --l-muted:#5B6660;
  --l-green:#0F6B4C;
  --l-green-deep:#07321F;
  --l-green-bright:#2BAE76;
}

.lp{
  font-family:'Manrope',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--l-ink);
  background:var(--l-white);
  line-height:1.5;
  overflow-x:hidden;
}
.lp *{box-sizing:border-box;}
.lp h1,.lp h2,.lp h3{
  font-family:'Fraunces',Georgia,serif;
  font-weight:600;
  line-height:1.08;
  letter-spacing:-0.01em;
  margin:0;
}
.lp em{font-style:italic;color:var(--l-green);}
.lp .eyebrow{
  font-family:'Manrope',sans-serif;font-weight:700;font-size:12.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--l-green);display:inline-flex;align-items:center;gap:8px;
}
.lp .eyebrow::before{content:'';width:18px;height:1px;background:var(--l-green);display:inline-block;}
.lp .wrap{max-width:1140px;margin:0 auto;padding:0 24px;}
.lp a{color:inherit;text-decoration:none;}
.lp .muted{color:var(--l-muted);}

@media (prefers-reduced-motion: reduce){
  .lp *{animation:none !important;transition:none !important;}
}

/* ---------------- Nav ---------------- */
.lp-nav{
  position:sticky;top:0;z-index:50;background:var(--l-ink);
  border-bottom:1px solid rgba(255,255,255,0.08);
}
.lp-nav .wrap{display:flex;align-items:center;justify-content:space-between;height:68px;gap:10px;}
.lp-nav .brand{
  display:flex;align-items:center;gap:9px;font-family:'Fraunces',serif;font-weight:600;font-size:18px;color:var(--l-white);
  min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1 1 auto;
}
.lp-nav .brand-dot{flex-shrink:0;width:9px;height:9px;border-radius:2px;background:var(--l-green-bright);display:inline-block;}
.lp-nav .brand img{height:30px;width:auto;max-width:140px;object-fit:contain;flex-shrink:0;}
.lp-nav nav{display:flex;align-items:center;gap:30px;flex-shrink:0;}
.lp-nav nav a{color:rgba(255,255,255,0.78);font-size:14.5px;font-weight:500;}
.lp-nav nav a:hover{color:#fff;}
.lp-nav .actions{display:flex;align-items:center;gap:14px;flex-shrink:0;}
.lp-nav .actions a.login{color:rgba(255,255,255,0.85);font-size:14.5px;font-weight:600;}
.lp-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:11px 20px;border-radius:8px;font-weight:700;font-size:14.5px;
  background:var(--l-green-bright);color:#06190F;border:none;cursor:pointer;
}
.lp-btn:hover{background:#39c485;}
.lp-btn-ghost{background:transparent;color:var(--l-white);border:1px solid rgba(255,255,255,0.25);}
.lp-btn-ghost:hover{border-color:rgba(255,255,255,0.55);background:rgba(255,255,255,0.05);}
.lp-btn-dark{background:var(--l-ink);color:#fff;}
.lp-btn-dark:hover{background:#1a201d;}

.lp-nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:6px;flex-shrink:0;}
.lp-nav-toggle span{display:block;width:22px;height:2px;background:#fff;margin:5px 0;border-radius:2px;}
.lp-mobile-menu{display:none;}

/* ---------------- Hero ---------------- */
.lp-hero{
  background:var(--l-ink);color:var(--l-white);
  padding:72px 0 90px;position:relative;
}
.lp-hero .wrap{display:grid;grid-template-columns:1.05fr 0.95fr;gap:50px;align-items:center;position:relative;z-index:2;}
.lp-hero h1{font-size:clamp(34px,4.6vw,56px);color:#fff;margin:18px 0 20px;}
.lp-hero p.lead{font-size:18px;color:rgba(255,255,255,0.72);max-width:480px;margin-bottom:32px;}
.lp-hero .cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:30px;}
.lp-hero .trust-line{font-size:13px;color:rgba(255,255,255,0.5);}

/* Signature visual: a tilted phone with messages fanning out to recipient
   nodes — the actual product thesis (one number, many recipients) made
   visible, not a generic floating-gradient-blob. */
.hv{position:relative;height:440px;perspective:1100px;}
.hv-glow{
  position:absolute;width:480px;height:480px;left:50%;top:50%;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(43,174,118,0.25),rgba(43,174,118,0) 65%);
  pointer-events:none;
}
.hv-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;}
.hv-path{fill:none;stroke:rgba(43,174,118,0.55);stroke-width:1.5;stroke-dasharray:5 6;animation:hv-dash 6s linear infinite;}
@keyframes hv-dash{to{stroke-dashoffset:-200;}}

.hv-dot{position:absolute;width:11px;height:11px;border-radius:50%;background:var(--l-green-bright);box-shadow:0 0 0 5px rgba(43,174,118,0.18);}
.hv-dot-1{top:18%;right:6%;}
.hv-dot-2{top:42%;right:0%;}
.hv-dot-3{top:70%;right:14%;}

.hv-phone{
  position:absolute;left:8%;top:50%;width:220px;
  transform:translateY(-50%) rotateY(-14deg) rotateX(4deg);
  transform-style:preserve-3d;
  background:#111714;border:1px solid rgba(255,255,255,0.12);border-radius:22px;
  padding:18px 14px;box-shadow:0 30px 60px rgba(0,0,0,0.55);
}
.hv-phone-notch{width:46px;height:5px;border-radius:4px;background:rgba(255,255,255,0.15);margin:0 auto 16px;}
.hv-bubble{
  background:var(--l-green);color:#fff;font-size:12.5px;line-height:1.4;
  padding:9px 11px;border-radius:10px 10px 10px 2px;margin-bottom:8px;max-width:90%;
}
.hv-bubble:nth-child(3){background:#1B2420;color:rgba(255,255,255,0.8);margin-left:auto;border-radius:10px 10px 2px 10px;}
.hv-phone-input{height:30px;border-radius:8px;background:rgba(255,255,255,0.06);margin-top:10px;}

.hv-card{
  position:absolute;background:#fff;color:var(--l-ink);border-radius:10px;
  padding:10px 14px;font-size:12.5px;font-weight:700;box-shadow:0 16px 32px rgba(0,0,0,0.35);
  display:flex;align-items:center;gap:8px;
}
.hv-card-1{top:10%;right:2%;}
.hv-card-2{bottom:8%;right:18%;}
.hv-card .hv-check{color:var(--l-green);font-size:14px;}
.hv-card .hv-dotsmall{width:7px;height:7px;border-radius:50%;background:var(--l-green-bright);}

/* ---------------- How it works ---------------- */
.lp-section{padding:84px 0;}
.lp-section-head{max-width:560px;margin-bottom:48px;}
.lp-section-head h2{font-size:clamp(26px,3.4vw,38px);margin:10px 0 12px;}
.lp-section-head p{color:var(--l-muted);font-size:16px;}

.lp-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.lp-step{border-top:2px solid var(--l-ink);padding-top:18px;}
.lp-step .num{font-family:'Fraunces',serif;font-size:34px;color:var(--l-green);margin-bottom:10px;display:block;}
.lp-step h3{font-size:19px;margin-bottom:8px;}
.lp-step p{color:var(--l-muted);font-size:14.5px;}

/* ---------------- Stats ---------------- */
.lp-stats{background:var(--l-soft);border-top:1px solid var(--l-border);border-bottom:1px solid var(--l-border);}
.lp-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:56px 0;}
.lp-stat .num{font-family:'Fraunces',serif;font-size:38px;color:var(--l-ink);}
.lp-stat .num em{font-style:normal;color:var(--l-green);}
.lp-stat .label{font-size:13.5px;color:var(--l-muted);margin-top:4px;}

/* ---------------- Features ---------------- */
.lp-features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--l-border);border:1px solid var(--l-border);}
.lp-feature{background:#fff;padding:32px;}
.lp-feature .icon{
  width:38px;height:38px;border-radius:9px;background:var(--l-ink);color:var(--l-green-bright);
  display:flex;align-items:center;justify-content:center;margin-bottom:18px;
}
.lp-feature h3{font-size:17px;margin-bottom:8px;font-family:'Manrope',sans-serif;font-weight:700;}
.lp-feature p{color:var(--l-muted);font-size:14px;}

/* ---------------- Pricing ---------------- */
.lp-pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;}
.lp-plan{border:1px solid var(--l-border);border-radius:14px;padding:28px;background:#fff;}
.lp-plan.featured{background:var(--l-ink);color:#fff;border-color:var(--l-ink);position:relative;}
.lp-plan.featured .lp-plan-tag{
  position:absolute;top:-12px;right:24px;background:var(--l-green-bright);color:#06190F;
  font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:4px 10px;border-radius:99px;
}
.lp-plan h3{font-family:'Manrope',sans-serif;font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--l-green);}
.lp-plan.featured h3{color:var(--l-green-bright);}
.lp-plan .price{font-family:'Fraunces',serif;font-size:34px;margin:10px 0 18px;}
.lp-plan .price span{font-family:'Manrope',sans-serif;font-size:13px;font-weight:500;color:var(--l-muted);}
.lp-plan.featured .price span{color:rgba(255,255,255,0.55);}
.lp-plan ul{list-style:none;padding:0;margin:0 0 22px;font-size:14px;}
.lp-plan li{padding:7px 0;border-top:1px solid var(--l-border);}
.lp-plan.featured li{border-top:1px solid rgba(255,255,255,0.12);}
.lp-plan li:first-child{border-top:none;}

/* ---------------- CTA banner ---------------- */
.lp-cta{background:var(--l-green-deep);color:#fff;padding:72px 0;text-align:center;}
.lp-cta h2{color:#fff;font-size:clamp(26px,3.6vw,40px);margin-bottom:16px;}
.lp-cta p{color:rgba(255,255,255,0.7);margin-bottom:30px;font-size:16px;}

/* ---------------- Footer ---------------- */
.lp-footer{background:var(--l-ink);color:rgba(255,255,255,0.6);padding:48px 0 28px;font-size:13.5px;}
.lp-footer .brand{color:#fff;font-family:'Fraunces',serif;font-size:17px;margin-bottom:8px;display:flex;align-items:center;gap:8px;}
.lp-footer .cols{display:flex;justify-content:space-between;flex-wrap:wrap;gap:32px;margin-bottom:32px;}
.lp-footer .links{display:flex;gap:22px;}
.lp-footer .links a:hover{color:#fff;}
.lp-footer .bottom{border-top:1px solid rgba(255,255,255,0.1);padding-top:20px;}

/* ---------------- Responsive ---------------- */
@media (max-width:920px){
  .lp-hero .wrap{grid-template-columns:1fr;}
  .hv{height:340px;order:-1;}
  .lp-steps{grid-template-columns:1fr;gap:32px;}
  .lp-stats-grid{grid-template-columns:repeat(2,1fr);}
  .lp-features-grid{grid-template-columns:1fr 1fr;}
}

@media (max-width:680px){
  .lp-nav nav{display:none;}
  .lp-nav .actions{display:none;}
  .lp-nav .brand{font-size:16px;max-width:62vw;}
  .lp-nav-toggle{display:inline-flex;flex-direction:column;}
  .lp-mobile-menu{
    display:flex;flex-direction:column;gap:2px;background:var(--l-ink);
    border-top:1px solid rgba(255,255,255,0.08);padding:10px 24px 16px;
  }
  .lp-mobile-menu.open{display:flex;}
  .lp-mobile-menu:not(.open){display:none;}
  .lp-mobile-menu a{color:rgba(255,255,255,0.85);padding:10px 0;font-size:15px;font-weight:600;}

  .lp-hero{padding:36px 0 48px;}
  .lp-hero .cta-row{flex-direction:column;}
  .lp-hero .cta-row .lp-btn{width:100%;}

  /* The fan-out visual is genuinely too detailed for a ~300px-wide screen —
     rather than shrinking every element and hoping nothing clips, show a
     simpler version of the same idea: just the phone, centered, no tilt. */
  .hv{height:240px;overflow:hidden;display:flex;align-items:center;justify-content:center;perspective:none;}
  .hv-glow{width:260px;height:260px;}
  .hv-lines,.hv-dot{display:none;}
  .hv-phone{position:static;transform:none;width:190px;margin:0;}
  .hv-card{display:none;}
  .hv-card-1{
    display:flex;position:absolute;top:14px;right:14px;font-size:11px;padding:7px 10px;
  }

  .lp-section{padding:44px 0;}
  .lp-section-head{margin-bottom:32px;}
  .lp-stats-grid{grid-template-columns:1fr 1fr;padding:32px 0;gap:18px;}
  .lp-features-grid{grid-template-columns:1fr;}
  .lp-pricing-grid{grid-template-columns:1fr;}
  .lp-footer .cols{flex-direction:column;}
}
