/* nurture.email — marketing homepage
   Premium botanical-editorial direction. Signature: a faceted low-poly
   tessellation (echoing the logo's folded leaf-planes) layered into the dark
   bands. Tokens derived from branding/colors.md + branding/fonts.md. */

/* ---------- Fonts: Inter + JetBrains Mono self-hosted; Fraunces via <link> ---------- */
@font-face { font-family:"Inter"; font-style:normal; font-weight:400; font-display:swap; src:url("assets/fonts/Inter-Regular.woff2") format("woff2"); }
@font-face { font-family:"Inter"; font-style:normal; font-weight:500; font-display:swap; src:url("assets/fonts/Inter-Medium.woff2") format("woff2"); }
@font-face { font-family:"Inter"; font-style:normal; font-weight:600; font-display:swap; src:url("assets/fonts/Inter-SemiBold.woff2") format("woff2"); }
@font-face { font-family:"Inter"; font-style:normal; font-weight:700; font-display:swap; src:url("assets/fonts/Inter-Bold.woff2") format("woff2"); }
@font-face { font-family:"JetBrains Mono"; font-style:normal; font-weight:400; font-display:swap; src:url("assets/fonts/JetBrainsMono-Regular.woff2") format("woff2"); }
@font-face { font-family:"JetBrains Mono"; font-style:normal; font-weight:500; font-display:swap; src:url("assets/fonts/JetBrainsMono-Medium.woff2") format("woff2"); }

:root {
  /* Dark (forest) surfaces */
  --forest:      #08150E;
  --forest-2:    #0E2016;
  --forest-line: rgba(125,215,98,.14);

  /* Green family */
  --green:       #39BD68;   /* brand primary */
  --green-bright:#57E08A;   /* luminous green for dark surfaces */
  --green-ink:   #1B7A43;   /* accessible green text on light */
  --leaf:        #7DD762;   /* highlight facet */

  /* Light (paper) surfaces */
  --paper:       #F5F8F3;
  --paper-2:     #FFFFFF;
  --ink:         #101820;
  --muted:       #55655B;   /* green-tinted grey */
  --hairline:    #E2E9E1;

  /* On-dark text */
  --on-dark:       #EAF3EC;
  --on-dark-muted: #93A99B;

  --font-display:"Fraunces", Georgia, "Times New Roman", serif;
  --font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  --maxw: 1120px;
  --radius: 14px;
}

/* ---------- Base ---------- */
* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  font-family:var(--font-sans);
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img, svg { max-width:100%; }
a { color:inherit; text-decoration:none; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.wrap { max-width:var(--maxw); margin:0 auto; padding:0 2rem; }

/* ---------- Type helpers ---------- */
.eyebrow {
  font-family:var(--font-mono); font-size:.72rem; font-weight:500;
  letter-spacing:.22em; text-transform:uppercase; color:var(--green-ink);
  display:inline-flex; align-items:center; gap:.6rem;
}
.eyebrow::before { content:""; width:7px; height:7px; background:var(--green); transform:rotate(45deg); flex-shrink:0; }
.on-dark .eyebrow { color:var(--green-bright); }
.on-dark .eyebrow::before { background:var(--green-bright); box-shadow:0 0 12px rgba(87,224,138,.6); }

.display { font-family:var(--font-display); font-weight:400; line-height:1.06; letter-spacing:-.02em; font-optical-sizing:auto; }
.display em { font-style:italic; font-weight:400; }

.lede { font-size:1.075rem; color:var(--muted); line-height:1.65; max-width:46ch; }
.on-dark .lede { color:var(--on-dark-muted); }

/* ---------- Buttons ---------- */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; font-family:var(--font-sans); font-size:.95rem; font-weight:500; padding:.8rem 1.4rem; border-radius:10px; border:1px solid transparent; cursor:pointer; transition:transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease; white-space:nowrap; }
.btn-primary { background:var(--green); color:#04120A; box-shadow:0 1px 0 rgba(255,255,255,.25) inset, 0 8px 24px -10px rgba(57,189,104,.7); }
.btn-primary:hover { background:var(--green-bright); transform:translateY(-2px); box-shadow:0 12px 30px -10px rgba(87,224,138,.75); }
.btn-ghost { background:transparent; color:var(--ink); border-color:var(--hairline); }
.btn-ghost:hover { border-color:var(--ink); transform:translateY(-2px); }
.on-dark .btn-ghost { color:var(--on-dark); border-color:rgba(234,243,236,.22); }
.on-dark .btn-ghost:hover { border-color:var(--green-bright); color:#fff; }

/* ---------- Faceted mesh (signature) ---------- */
.mesh { position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.mesh::before {
  content:""; position:absolute; inset:-10%;
  background-image:
    repeating-linear-gradient( 60deg, transparent 0 46px, var(--forest-line) 46px 47px),
    repeating-linear-gradient(-60deg, transparent 0 46px, var(--forest-line) 46px 47px),
    repeating-linear-gradient(  0deg, transparent 0 40px, var(--forest-line) 40px 41px);
  -webkit-mask-image:radial-gradient(120% 90% at 80% 0%, #000 0%, transparent 70%);
          mask-image:radial-gradient(120% 90% at 80% 0%, #000 0%, transparent 70%);
  opacity:.9;
}
.glow { position:absolute; pointer-events:none; width:60rem; height:60rem; border-radius:50%;
  background:radial-gradient(circle, rgba(87,224,138,.18) 0%, rgba(87,224,138,.06) 32%, transparent 62%); }
.sprout-ghost { position:absolute; pointer-events:none; opacity:.10; filter:saturate(1.2); }

/* ---------- Header ---------- */
.site-head { position:sticky; top:0; z-index:50; background:rgba(8,21,14,.72); backdrop-filter:blur(14px) saturate(1.2); -webkit-backdrop-filter:blur(14px) saturate(1.2); border-bottom:1px solid var(--forest-line); }
.site-head .wrap { display:flex; align-items:center; justify-content:space-between; height:76px; }
.brand img { height:38px; width:auto; display:block; }
.nav { display:flex; align-items:center; gap:2rem; }
.nav a.link { font-size:.9rem; color:var(--on-dark-muted); transition:color .15s ease; }
.nav a.link:hover { color:var(--on-dark); }

/* ---------- Section rhythm ---------- */
.band { padding:6.5rem 0; position:relative; }
.band.on-dark { background:var(--forest); color:var(--on-dark); }
.band.paper { background:var(--paper); }
.band.paper-2 { background:var(--paper-2); }
.section-head { max-width:60ch; }
.section-head .display { font-size:clamp(1.8rem, 3.4vw, 2.7rem); margin:1rem 0 .6rem; }
.on-dark .section-head .display { color:#fff; }
.section-sub { color:var(--muted); font-size:1rem; max-width:52ch; }
.on-dark .section-sub { color:var(--on-dark-muted); }

/* ---------- Hero ---------- */
.hero { position:relative; background:var(--forest); color:var(--on-dark); overflow:hidden; border-bottom:1px solid var(--forest-line); }
.hero .glow { top:-22rem; right:-16rem; }
.hero .sprout-ghost { top:-4rem; right:-8rem; width:44rem; height:auto; }
.hero-inner { position:relative; z-index:2; max-width:var(--maxw); margin:0 auto; padding:8.5rem 2rem 5.5rem; }
.hero h1 { font-size:clamp(2.7rem, 6.2vw, 4.6rem); margin:1.6rem 0 1.4rem; max-width:16ch; color:#fff; }
.hero h1 em { color:var(--green-bright); }
.hero .lede { font-size:1.2rem; max-width:44ch; }
.hero-ctas { display:flex; gap:.9rem; flex-wrap:wrap; margin-top:2.4rem; }

/* ---------- Problem (editorial) ---------- */
.problem .display { font-size:clamp(2rem, 4vw, 3.1rem); max-width:20ch; }
.problem-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:4rem; align-items:end; }
.problem-body { color:var(--muted); font-size:1.05rem; line-height:1.75; }
.stat-list { display:flex; flex-direction:column; }
.stat { padding:1.4rem 0; border-top:1px solid var(--hairline); display:grid; grid-template-columns:auto 1fr; gap:1.2rem; align-items:baseline; }
.stat:last-child { border-bottom:1px solid var(--hairline); }
.stat .n { font-family:var(--font-display); font-size:2.6rem; line-height:1; color:var(--ink); min-width:3.6ch; }
.stat .l { font-size:.92rem; color:var(--muted); }

/* ---------- Plays ---------- */
.plays-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:1px; background:var(--hairline); border:1px solid var(--hairline); border-radius:var(--radius); overflow:hidden; margin-top:3rem; }
.play { background:var(--paper-2); padding:2rem 1.75rem 2.25rem; transition:background .2s ease; }
.play:hover { background:#FbFdFa; }
.play .ic { width:34px; height:34px; color:var(--green-ink); margin-bottom:1.1rem; }
.play .ic svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.play h3 { font-family:var(--font-display); font-weight:400; font-size:1.25rem; letter-spacing:-.01em; margin-bottom:.45rem; }
.play p { font-size:.92rem; color:var(--muted); line-height:1.6; }

/* ---------- How (dark, sequence) ---------- */
.steps { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; margin-top:3.5rem; position:relative; z-index:2; }
.step { border-top:1px solid var(--forest-line); padding-top:1.3rem; }
.step .num { font-family:var(--font-mono); font-size:.72rem; letter-spacing:.14em; color:var(--green-bright); }
.step h3 { font-family:var(--font-display); font-weight:400; font-size:1.3rem; color:#fff; margin:.9rem 0 .5rem; }
.step p { font-size:.9rem; color:var(--on-dark-muted); line-height:1.6; }

/* ---------- Outcomes ---------- */
.outcomes-list { border-top:1px solid var(--hairline); margin-top:2.5rem; }
.outcome { display:grid; grid-template-columns:auto 1fr; gap:1.3rem; padding:1.5rem 0; border-bottom:1px solid var(--hairline); align-items:start; }
.outcome .ic { width:26px; height:26px; color:var(--green-ink); margin-top:2px; }
.outcome .ic svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.outcome h3 { font-size:1.08rem; font-weight:600; color:var(--ink); margin-bottom:.2rem; }
.outcome p { font-size:.95rem; color:var(--muted); }

/* ---------- Pricing ---------- */
.plans { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; margin-top:3rem; align-items:start; }
.plan { background:var(--paper-2); border:1px solid var(--hairline); border-radius:var(--radius); padding:2rem 1.75rem; position:relative; }
.plan.featured { border-color:var(--green); box-shadow:0 24px 60px -30px rgba(57,189,104,.5); }
.plan .badge { position:absolute; top:-.7rem; left:1.75rem; font-family:var(--font-mono); font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; color:#04120A; background:var(--green); padding:.28rem .7rem; border-radius:6px; }
.plan .pname { font-family:var(--font-mono); font-size:.75rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.plan .price { font-family:var(--font-display); font-size:3rem; line-height:1; margin:.8rem 0 .1rem; color:var(--ink); }
.plan .price sub { font-family:var(--font-sans); font-size:.9rem; font-weight:400; vertical-align:baseline; color:var(--muted); }
.plan .contacts { font-size:.9rem; color:var(--muted); margin-bottom:1.4rem; }
.plan .btn { width:100%; margin-bottom:1.5rem; }
.plan ul { list-style:none; display:flex; flex-direction:column; gap:.7rem; }
.plan li { display:flex; gap:.6rem; align-items:flex-start; font-size:.9rem; color:var(--ink); }
.plan li svg { width:16px; height:16px; flex-shrink:0; margin-top:.15rem; color:var(--green-ink); fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.pricing-note { text-align:center; color:var(--muted); font-size:.88rem; margin-top:2rem; }

/* ---------- Integrations ---------- */
.chips { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:2rem; }
.chip { display:inline-flex; align-items:center; gap:.5rem; font-family:var(--font-mono); font-size:.8rem; color:var(--muted); background:var(--paper-2); border:1px solid var(--hairline); border-radius:8px; padding:.5rem .85rem; }
.chip svg { width:16px; height:16px; color:var(--green-ink); fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }

/* ---------- Book a demo ---------- */
.demo { position:relative; overflow:hidden; }
.demo .glow { bottom:-30rem; left:-14rem; }
.demo-grid { position:relative; z-index:2; display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:start; }
.demo h2 { font-family:var(--font-display); font-weight:400; font-size:clamp(2rem,3.6vw,2.9rem); color:#fff; margin:1rem 0 1rem; letter-spacing:-.02em; }
.demo .reassure { list-style:none; margin-top:2rem; display:flex; flex-direction:column; gap:.9rem; }
.demo .reassure li { display:flex; gap:.7rem; align-items:center; color:var(--on-dark); font-size:.95rem; }
.demo .reassure svg { width:18px; height:18px; color:var(--green-bright); fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.form { background:rgba(234,243,236,.04); border:1px solid var(--forest-line); border-radius:var(--radius); padding:1.75rem; }
.field { margin-bottom:1.05rem; }
.field label { display:block; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--on-dark-muted); margin-bottom:.45rem; }
.field input, .field select, .field textarea {
  width:100%; font-family:var(--font-sans); font-size:.95rem; color:var(--on-dark);
  background:rgba(8,21,14,.6); border:1px solid var(--forest-line); border-radius:9px;
  padding:.7rem .85rem; transition:border-color .15s ease, box-shadow .15s ease;
}
.field input::placeholder, .field textarea::placeholder { color:#5f7266; }
.field input:focus, .field select:focus, .field textarea:focus { outline:none; border-color:var(--green-bright); box-shadow:0 0 0 3px rgba(87,224,138,.15); }
.field textarea { resize:vertical; min-height:84px; }
.form .row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.form .btn { width:100%; margin-top:.4rem; }
.form-note { font-size:.78rem; color:var(--on-dark-muted); margin-top:.9rem; text-align:center; }
.form-success { display:none; text-align:center; padding:2.5rem 1rem; }
.form-success.show { display:block; }
.form-success .tick { width:52px; height:52px; margin:0 auto 1rem; border-radius:50%; background:rgba(87,224,138,.14); display:flex; align-items:center; justify-content:center; }
.form-success .tick svg { width:26px; height:26px; color:var(--green-bright); fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.form-success h3 { font-family:var(--font-display); font-weight:400; font-size:1.5rem; color:#fff; margin-bottom:.4rem; }
.form-success p { color:var(--on-dark-muted); font-size:.95rem; }

/* ---------- Footer ---------- */
.site-foot { background:var(--forest); color:var(--on-dark-muted); border-top:1px solid var(--forest-line); }
.site-foot .wrap { display:flex; justify-content:space-between; align-items:center; gap:1.5rem; flex-wrap:wrap; padding-top:2.2rem; padding-bottom:2.2rem; }
.site-foot img { height:26px; width:auto; opacity:.9; }
.foot-meta { font-family:var(--font-mono); font-size:.72rem; letter-spacing:.06em; }
.foot-links { display:flex; gap:1.5rem; }
.foot-links a { font-size:.82rem; color:var(--on-dark-muted); }
.foot-links a:hover { color:var(--on-dark); }

/* ---------- Motion ---------- */
.reveal { opacity:0; transform:translateY(18px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.in { opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce) {
  * { scroll-behavior:auto !important; }
  .reveal { opacity:1 !important; transform:none !important; transition:none; }
  .btn:hover { transform:none; }
}

/* ---------- Responsive ---------- */
@media (max-width:900px) {
  .problem-grid, .demo-grid { grid-template-columns:1fr; gap:2.5rem; }
  .plays-grid { grid-template-columns:repeat(2,1fr); }
  .steps { grid-template-columns:repeat(2,1fr); gap:2rem; }
  .plans { grid-template-columns:1fr; max-width:420px; margin-left:auto; margin-right:auto; }
}
@media (max-width:640px) {
  .wrap { padding:0 1.25rem; }
  .band { padding:4.5rem 0; }
  .hero-inner { padding:5.5rem 1.25rem 4rem; }
  .nav { gap:1rem; }
  .nav a.link { display:none; }
  .brand img { height:32px; }
  .plays-grid { grid-template-columns:1fr; }
  .steps { grid-template-columns:1fr; }
  .form .row { grid-template-columns:1fr; }
}
