/* Marketing / landing page styles (paired with Tailwind CDN utilities). */

@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&family=Manrope:wght@200..800&family=Valley+Sans:ital,wght@0,100..900;1,100..900&display=swap');


/* ═══════════════════════════════════════════════════════════
   LP-* LANDING PAGE DESIGN SYSTEM
   ═══════════════════════════════════════════════════════════ */

/* ── Root / Layout ─────────────────────────────────────── */

.lp-root {
  position: relative;
  overflow-x: hidden;
  background: #fafbff;
  font-family: "Manrope", ui-sans-serif, system-ui, sans-serif;
  /* font-weight: 400; */
}



.lp-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* ── Ambient background blobs ──────────────────────────── */
.lp-blob {
  position: fixed;
  border-radius: 9999px;
  filter: blur(80px);
  opacity: 0.45;
  pointer-events: none;
  z-index: 0;
  animation: lp-blob-drift 18s ease-in-out infinite alternate;
}
.lp-blob-violet  { width: 600px; height: 600px; top: -150px; left: -150px;   background: radial-gradient(circle, rgba(17,138,128,0.28), transparent 70%); animation-duration: 22s; }
.lp-blob-sky     { width: 500px; height: 500px; top: 200px;  right: -120px;  background: radial-gradient(circle, rgba(20,184,166,0.22), transparent 70%); animation-duration: 18s; animation-delay: -5s; }
.lp-blob-emerald { width: 450px; height: 450px; top: 60%;    left: 20%;      background: radial-gradient(circle, rgba(16,185,129,0.20), transparent 70%); animation-duration: 25s; animation-delay: -10s; }
.lp-blob-amber   { width: 350px; height: 350px; bottom: 10%; right: 10%;     background: radial-gradient(circle, rgba(245,158,11,0.18), transparent 70%); animation-duration: 20s; animation-delay: -3s; }

@keyframes lp-blob-drift {
  0%   { transform: translate(0, 0) scale(1); }
  50%  { transform: translate(30px, -20px) scale(1.06); }
  100% { transform: translate(-20px, 30px) scale(0.97); }
}

/* ── Nav ───────────────────────────────────────────────── */
.lp-nav-wrap {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(250,251,255,0.85);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(148,163,184,0.20);
}

.lp-nav {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
  height: 64px;
  display: flex;
  align-items: center;
  gap: 2rem;
}

.lp-nav-logo {
  display: flex;
  align-items: center;
  gap: .6rem;
  text-decoration: none;
  flex-shrink: 0;
}

.lp-nav-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: linear-gradient(135deg, #118a80, #0d6b62);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1rem;
}

.lp-nav-brand  { font-size: .88rem; font-weight: 800; color: #0f172a; line-height: 1.1; }
.lp-nav-tagline { font-size: .65rem; color: #118a80; font-weight: 600; letter-spacing: .02em; }

.lp-nav-links {
  display: flex;
  align-items: center;
  gap: 1.75rem;
  margin-left: auto;
}
.lp-nav-links a {
  font-size: .82rem;
  font-weight: 500;
  color: #475569;
  text-decoration: none;
  transition: color 160ms;
}
.lp-nav-links a:hover { color: #118a80; }

.lp-nav-actions {
  display: flex;
  align-items: center;
  gap: .6rem;
  flex-shrink: 0;
}

/* ── Buttons ───────────────────────────────────────────── */
.lp-btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .4rem .9rem;
  border-radius: 8px;
  font-size: .82rem;
  font-weight: 600;
  color: #475569;
  text-decoration: none;
  transition: background 160ms, color 160ms;
}
.lp-btn-ghost:hover { background: #f1f5f9; color: #0f172a; }

.lp-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .45rem 1.1rem;
  border-radius: 8px;
  font-size: .82rem;
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  background: linear-gradient(135deg, #118a80 0%, #14b8a6 100%);
  box-shadow: 0 2px 8px rgba(17,138,128,.30);
  transition: opacity 160ms, transform 160ms, box-shadow 160ms;
}
.lp-btn-primary:hover { opacity: .9; transform: translateY(-1px); box-shadow: 0 6px 18px rgba(17,138,128,.32); }

.lp-btn-outline {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .65rem 1.5rem;
  border-radius: 12px;
  font-size: .9rem;
  font-weight: 600;
  color: #475569;
  text-decoration: none;
  border: 1.5px solid #e2e8f0;
  background: #fff;
  transition: border-color 160ms, color 160ms, background 160ms;
}
.lp-btn-outline:hover { border-color: #118a80; color: #118a80; background: #faf5ff; }

.lp-btn-lg {
  padding: .75rem 1.75rem;
  font-size: .95rem;
  border-radius: 12px;
}

/* ── Badges, Pills ─────────────────────────────────────── */
.lp-badge {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .3rem .75rem;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 600;
  color: #475569;
  background: rgba(255,255,255,.80);
  border: 1px solid rgba(148,163,184,.30);
  backdrop-filter: blur(8px);
  width: fit-content;
}

.lp-badge-dot {
  display: inline-block;
  border-radius: 50%;
  flex-shrink: 0;
}
.lp-badge-dot-green {
  width: 7px;
  height: 7px;
  background: #22c55e;
  box-shadow: 0 0 0 2px rgba(34,197,94,.25);
  animation: pulse-green 2s ease-in-out infinite;
}

@keyframes pulse-green {
  0%, 100% { box-shadow: 0 0 0 2px rgba(34,197,94,.25); }
  50%       { box-shadow: 0 0 0 5px rgba(34,197,94,.10); }
}

.lp-pill-row {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}
.lp-pill {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .28rem .65rem;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 600;
}
.lp-pill .bi { font-size: .72rem; }

/* ── Section-label, h1, h2, section-sub ────────────────── */
.lp-section-label {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .28rem .75rem;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 700;
  color: #118a80;
  background: #e6f5f4;
  border: 1px solid rgba(17,138,128,.20);
  letter-spacing: .03em;
  text-transform: uppercase;
  width: fit-content;
}

.lp-h1 {
  /* font-family: "Lato", "Inter", ui-sans-serif, sans-serif; */
  font-size: clamp(2.25rem, 5vw, 3.4rem);
  font-weight: 800;
  color: #0f172a;
  line-height: 1.12;
  letter-spacing: -.02em;
  margin: .75rem 0 1rem;
}

.lp-h2 {
  /* font-family: "Lato", "Inter", ui-sans-serif, sans-serif; */
  font-size: clamp(1.75rem, 3.5vw, 2.4rem);
  font-weight: 800;
  color: #0f172a;
  line-height: 1.15;
  letter-spacing: -.018em;
  margin: .5rem 0 .75rem;
}

.lp-gradient-text {
  background: linear-gradient(135deg, #118a80, #14b8a6, #0891b2);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.lp-section-sub {
  font-size: .95rem;
  color: #64748b;
  line-height: 1.65;
  max-width: 540px;
  margin: 0;
}

/* ── Hero ──────────────────────────────────────────────── */
.lp-hero {
  position: relative;
  z-index: 1;
  padding: 5rem 0 4rem;
}

.lp-hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 4rem;
}

.lp-hero-copy {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.lp-hero-sub {
  font-size: 1.18rem;
  color: #475569;
  line-height: 1.7;
  max-width: 480px;
  margin: 0;
}

.lp-hero-ctas {
  display: flex;
  align-items: center;
  gap: .75rem;
  flex-wrap: wrap;
}

/* ── Hero stats ─────────────────────────────────────────── */
.lp-stat-row {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding: 1rem 1.25rem;
  background: rgba(255,255,255,.80);
  border: 1px solid rgba(148,163,184,.22);
  border-radius: 14px;
  backdrop-filter: blur(10px);
  width: fit-content;
}
.lp-stat-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .15rem;
}
.lp-stat-num {
  font-size: 1.25rem;
  font-weight: 800;
  color: #118a80;
  line-height: 1;
}
.lp-stat-lbl {
  font-size: .65rem;
  font-weight: 600;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.lp-stat-div {
  width: 1px;
  height: 28px;
  background: #e2e8f0;
}

/* ── Hero visual / mockup ──────────────────────────────── */
.lp-hero-visual {
  position: relative;
  z-index: 1;
}

.lp-mockup-wrap {
  position: relative;
  max-width: 420px;
  margin: 0 auto;
}

.lp-mock-card {
  background: rgba(255,255,255,.95);
  border: 1px solid rgba(148,163,184,.28);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(15,23,42,.12), 0 2px 0 rgba(255,255,255,.8) inset;
}

.lp-mock-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .75rem 1rem;
  background: #fafbff;
  border-bottom: 1px solid #f1f5f9;
}
.lp-mock-header-left {
  display: flex;
  align-items: center;
  gap: .5rem;
}
.lp-mock-avatar {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: #d1f0ed;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lp-mock-stage-chip {
  font-size: .6rem;
  font-weight: 700;
  color: #118a80;
  background: #d1f0ed;
  padding: .15rem .5rem;
  border-radius: 6px;
  letter-spacing: .04em;
}

.lp-mock-messages {
  padding: .75rem 1rem;
  display: flex;
  flex-direction: column;
  gap: .6rem;
  min-height: 140px;
}

.lp-msg-ai {
  display: flex;
  align-items: flex-end;
  gap: .4rem;
}
.lp-msg-ai-avatar {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #d1f0ed;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .7rem;
  color: #118a80;
  flex-shrink: 0;
}
.lp-msg-bubble-ai {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 14px 14px 14px 3px;
  padding: .55rem .75rem;
  font-size: .75rem;
  color: #1e293b;
  line-height: 1.5;
  max-width: 260px;
}
.lp-msg-user {
  display: flex;
  justify-content: flex-end;
}
.lp-msg-bubble-user {
  background: linear-gradient(135deg, #118a80, #0d6b62);
  border-radius: 14px 14px 3px 14px;
  padding: .55rem .75rem;
  font-size: .75rem;
  color: #fff;
  line-height: 1.5;
  max-width: 240px;
}

.lp-mock-footer {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .6rem .75rem;
  border-top: 1px solid #f1f5f9;
}
.lp-mock-send {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: linear-gradient(135deg, #118a80, #0d6b62);
  border: none;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: .75rem;
  flex-shrink: 0;
}

/* Typing indicator (mockup version) */
.lp-typing-indicator {
  display: flex;
  align-items: center;
  gap: 3px;
  padding: .5rem .75rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 14px 14px 14px 3px;
  width: fit-content;
}
.lp-typing-indicator span {
  display: inline-block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #94a3b8;
  animation: lp-bounce 1.3s ease-in-out infinite;
}
.lp-typing-indicator span:nth-child(2) { animation-delay: .17s; }
.lp-typing-indicator span:nth-child(3) { animation-delay: .34s; }

@keyframes lp-bounce {
  0%, 80%, 100% { transform: translateY(0); opacity: .45; }
  40%           { transform: translateY(-5px); opacity: 1; }
}

/* ── Floating badge ────────────────────────────────────── */
.lp-float-badge {
  position: absolute;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .3rem .7rem;
  border-radius: 999px;
  background: rgba(255,255,255,.95);
  border: 1px solid rgba(148,163,184,.25);
  box-shadow: 0 4px 16px rgba(15,23,42,.10);
  backdrop-filter: blur(8px);
  z-index: 5;
}
.lp-float-badge-tr { top: -12px; right: -12px; }

/* ── Floating cards ─────────────────────────────────────── */
.lp-float-card {
  position: absolute;
  background: rgba(255,255,255,.95);
  border: 1px solid rgba(148,163,184,.25);
  border-radius: 14px;
  padding: .75rem 1rem;
  box-shadow: 0 10px 32px rgba(15,23,42,.12);
  backdrop-filter: blur(10px);
  z-index: 5;
  min-width: 150px;
}
.lp-float-score     { bottom: 60px; left: -50px; }
.lp-float-candidate { bottom: -20px; right: -30px; }

.lp-mini-bar-bg {
  height: 5px;
  border-radius: 999px;
  background: #f1f5f9;
  margin-top: .35rem;
  overflow: hidden;
}
.lp-mini-bar-fill {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, #118a80, #14b8a6);
}

/* ── Floaty animation ──────────────────────────────────── */
.lp-floaty {
  animation: lp-floaty 5s ease-in-out infinite;
}
@keyframes lp-floaty {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-10px); }
}

/* ── Slide-in animation (mockup messages) ──────────────── */
.lp-msg-slide-in {
  opacity: 0;
  transform: translateY(8px);
  animation: lp-slide-in 400ms ease forwards;
}
@keyframes lp-slide-in {
  to { opacity: 1; transform: translateY(0); }
}

/* ── Sections ──────────────────────────────────────────── */
.lp-section {
  position: relative;
  z-index: 1;
  padding: 5rem 0;
}
.lp-section-alt {
  background: rgba(248,250,252,.80);
  border-top: 1px solid rgba(148,163,184,.12);
  border-bottom: 1px solid rgba(148,163,184,.12);
}

.lp-section-head {
  text-align: center;
  margin-bottom: 3rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .5rem;
}

/* ── Features grid ─────────────────────────────────────── */
.lp-features-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}

.lp-feat-card {
  background: var(--feat-bg, #fff);
  border: 1.5px solid var(--feat-border, #e2e8f0);
  border-radius: 18px;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  transition: transform 200ms ease, box-shadow 200ms ease;
}
.lp-feat-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 42px rgba(15,23,42,.10);
}
.lp-feat-wide {
  grid-column: span 2;
  flex-direction: row;
  align-items: flex-start;
  gap: 1.25rem;
}
.lp-feat-wide .lp-feat-body { flex: 1; }

.lp-feat-icon-wrap {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  flex-shrink: 0;
}
.lp-feat-body { display: flex; flex-direction: column; gap: .4rem; }
.lp-feat-title { font-size: .95rem; font-weight: 700; color: #0f172a; margin: 0; }
.lp-feat-desc  { font-size: .82rem; color: #64748b; line-height: 1.6; margin: 0; }
.lp-feat-chips { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: auto; }
.lp-feat-chip  {
  font-size: .65rem;
  font-weight: 700;
  padding: .2rem .55rem;
  border-radius: 6px;
  letter-spacing: .02em;
}

/* ── How it works ──────────────────────────────────────── */
.lp-how-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  position: relative;
}

.lp-how-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
}

.lp-how-step-number {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .03em;
  margin-bottom: .75rem;
  position: relative;
  z-index: 2;
}

.lp-how-connector {
  position: absolute;
  top: 20px;
  right: -12px;
  z-index: 3;
}

.lp-how-card {
  background: #fff;
  border: 1.5px solid #e2e8f0;
  border-radius: 16px;
  padding: 1.25rem;
  width: 100%;
  box-shadow: 0 2px 12px rgba(15,23,42,.05);
  display: flex;
  flex-direction: column;
  gap: .6rem;
  transition: transform 200ms, box-shadow 200ms;
}
.lp-how-card:hover { transform: translateY(-4px); box-shadow: 0 14px 36px rgba(15,23,42,.10); }

.lp-how-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lp-how-title { font-size: .88rem; font-weight: 700; color: #0f172a; margin: 0; }
.lp-how-desc  { font-size: .78rem; color: #64748b; line-height: 1.6; margin: 0; }

/* ── Modes grid ────────────────────────────────────────── */
.lp-modes-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}

.lp-mode-card {
  background: #fff;
  border: 1.5px solid var(--mode-border, #e2e8f0);
  border-radius: 18px;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: .85rem;
  transition: transform 200ms, box-shadow 200ms;
}
.lp-mode-card:hover { transform: translateY(-5px); box-shadow: 0 18px 48px rgba(15,23,42,.12); }

.lp-mode-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}
.lp-mode-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lp-mode-badge {
  font-size: .6rem;
  font-weight: 800;
  padding: .2rem .55rem;
  border-radius: 6px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.lp-mode-title { font-size: .95rem; font-weight: 700; color: #0f172a; margin: 0; }
.lp-mode-desc  { font-size: .78rem; color: #64748b; line-height: 1.6; margin: 0; flex: 1; }
.lp-mode-presets {
  display: flex;
  flex-direction: column;
  gap: .35rem;
}
.lp-mode-preset-chip {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  font-size: .7rem;
  font-weight: 600;
  padding: .25rem .6rem;
  border-radius: 7px;
  border: 1px solid;
  width: fit-content;
}
.lp-mode-preset-chip .bi { font-size: .7rem; }
.lp-mode-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  padding: .55rem 1rem;
  border-radius: 10px;
  font-size: .78rem;
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  transition: opacity 160ms, transform 160ms;
  margin-top: auto;
}
.lp-mode-cta:hover { opacity: .88; transform: translateY(-1px); }

/* ── Pipeline ──────────────────────────────────────────── */
.lp-pipeline-flow {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .35rem;
  margin-bottom: 1.75rem;
  justify-content: center;
}
.lp-pipe-step {
  display: flex;
  align-items: center;
  gap: .35rem;
}
.lp-pipe-chip {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .45rem .85rem;
  border-radius: 999px;
  border: 1.5px solid;
  font-size: .75rem;
  font-weight: 700;
  white-space: nowrap;
}
.lp-pipe-arrow {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.lp-pipeline-notes {
  display: flex;
  flex-direction: column;
  gap: .6rem;
}
.lp-pipeline-note {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  padding: .75rem 1rem;
  border-radius: 12px;
  border: 1px solid;
  font-size: .8rem;
  line-height: 1.6;
}
.lp-pipeline-note .bi { flex-shrink: 0; margin-top: .1rem; }

/* ── CTA section ───────────────────────────────────────── */
.lp-cta-section { padding: 5rem 0 3rem; }

.lp-cta-card {
  background: linear-gradient(135deg, #063c37, #0a4a44, #0d6b62);
  border-radius: 28px;
  padding: 3.5rem;
  position: relative;
  overflow: hidden;
  box-shadow: 0 24px 80px rgba(30,27,75,.35);
}
.lp-cta-blobs { position: absolute; inset: 0; pointer-events: none; }
.lp-cta-blob-1 {
  position: absolute;
  width: 350px; height: 350px;
  top: -100px; left: -80px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(17,138,128,.40), transparent 65%);
  filter: blur(40px);
}
.lp-cta-blob-2 {
  position: absolute;
  width: 300px; height: 300px;
  bottom: -80px; right: -50px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(20,184,166,.35), transparent 65%);
  filter: blur(40px);
}
.lp-cta-inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}
.lp-cta-copy { display: flex; flex-direction: column; gap: .75rem; }
.lp-cta-h2 {
  /* font-family: "Lato", "Inter", ui-sans-serif, sans-serif; */
  font-size: clamp(1.6rem, 3.5vw, 2.25rem);
  font-weight: 800;
  color: #fff;
  line-height: 1.15;
  margin: 0;
}
.lp-cta-sub {
  font-size: .9rem;
  color: rgba(255,255,255,.65);
  line-height: 1.6;
  max-width: 400px;
  margin: 0;
}
.lp-cta-actions {
  display: flex;
  flex-direction: column;
  gap: .65rem;
  flex-shrink: 0;
}
.lp-cta-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .75rem 1.5rem;
  border-radius: 12px;
  font-size: .9rem;
  font-weight: 700;
  color: #063c37;
  background: #fff;
  text-decoration: none;
  box-shadow: 0 4px 18px rgba(0,0,0,.20);
  transition: opacity 160ms, transform 160ms;
}
.lp-cta-btn-primary:hover { opacity: .92; transform: translateY(-1px); }
.lp-cta-btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .75rem 1.5rem;
  border-radius: 12px;
  font-size: .9rem;
  font-weight: 700;
  color: rgba(255,255,255,.80);
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.20);
  text-decoration: none;
  transition: background 160ms, color 160ms;
}
.lp-cta-btn-ghost:hover { background: rgba(255,255,255,.20); color: #fff; }

/* ── Footer ─────────────────────────────────────────────── */
.lp-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: 2rem 0 .5rem;
  font-size: .78rem;
  color: #94a3b8;
}
.lp-footer-brand { font-weight: 800; color: #118a80; }
.lp-footer-sep   { color: #cbd5e1; }

/* ── Counter animation ─────────────────────────────────── */
.lp-counter { transition: opacity 400ms; }

/* ── Reveal-on-scroll (JS-driven) ──────────────────────── */
[data-reveal] {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 550ms ease, transform 550ms ease;
  will-change: opacity, transform;
}
[data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── Responsive breakpoints ────────────────────────────── */
@media (max-width: 1024px) {
  .lp-features-grid { grid-template-columns: repeat(2, 1fr); }
  .lp-feat-wide      { grid-column: span 2; }
  .lp-modes-grid     { grid-template-columns: repeat(2, 1fr); }
  .lp-how-grid       { grid-template-columns: repeat(2, 1fr); gap: 1.25rem; }
  .lp-how-connector  { display: none; }
  .lp-how-step-number { margin-bottom: .5rem; }
}

@media (max-width: 768px) {
  .lp-hero-grid      { grid-template-columns: 1fr; gap: 2.5rem; }
  .lp-hero-visual    { display: none; }
  .lp-nav-links      { display: none; }
  .lp-features-grid  { grid-template-columns: 1fr; }
  .lp-feat-wide      { grid-column: span 1; flex-direction: column; }
  .lp-modes-grid     { grid-template-columns: 1fr; }
  .lp-how-grid       { grid-template-columns: 1fr; }
  .lp-pipeline-flow  { gap: .25rem; }
  .lp-pipe-chip      { font-size: .65rem; padding: .35rem .6rem; }
  .lp-cta-card       { padding: 2rem 1.5rem; }
  .lp-cta-inner      { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  .lp-floaty, .lp-blob, .lp-msg-slide-in { animation: none !important; }
  [data-reveal] { opacity: 1; transform: none; transition: none; }
}

:root {
  --lavender: 17, 138, 128; /* ANI brand teal #118a80 */
  --sky: 20, 184, 166;     /* teal-400 #14b8a6 */
  --mint: 34, 197, 94;     /* green-500 */
  --coral: 244, 63, 94;    /* rose-500  */
  --peach: 251, 146, 60;   /* orange-400 */
}

.mesh-bg {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(1100px 600px at 15% 15%, rgba(var(--lavender), 0.18), transparent 55%),
    radial-gradient(900px 520px at 80% 25%, rgba(var(--sky), 0.18), transparent 55%),
    radial-gradient(1000px 560px at 50% 90%, rgba(var(--mint), 0.14), transparent 60%),
    linear-gradient(180deg, #ffffff 0%, #fbfcff 55%, #ffffff 100%);
}

.noise-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.06;
  mix-blend-mode: multiply;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='260' height='260' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
  background-size: 260px 260px;
}

.blob {
  position: absolute;
  filter: blur(30px);
  opacity: 0.65;
  transform: translateZ(0);
  border-radius: 9999px;
  mix-blend-mode: multiply;
}

.blob--lavender {
  background: radial-gradient(circle at 30% 30%, rgba(var(--lavender), 0.55), rgba(var(--lavender), 0.06) 65%, transparent 70%);
}
.blob--sky {
  background: radial-gradient(circle at 30% 30%, rgba(var(--sky), 0.55), rgba(var(--sky), 0.06) 65%, transparent 70%);
}
.blob--mint {
  background: radial-gradient(circle at 30% 30%, rgba(var(--mint), 0.50), rgba(var(--mint), 0.06) 65%, transparent 70%);
}
.blob--coral {
  background: radial-gradient(circle at 30% 30%, rgba(var(--coral), 0.45), rgba(var(--coral), 0.06) 65%, transparent 70%);
}
.blob--peach {
  background: radial-gradient(circle at 30% 30%, rgba(var(--peach), 0.48), rgba(var(--peach), 0.06) 65%, transparent 70%);
}

.glass {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.70), rgba(255, 255, 255, 0.40));
  border: 1px solid rgba(148, 163, 184, 0.35);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.zen-card {
  position: relative;
  border-radius: 24px;
  background: linear-gradient(135deg, rgba(255,255,255,0.78), rgba(255,255,255,0.42));
  border: 1px solid rgba(148, 163, 184, 0.32);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 16px 50px rgba(15, 23, 42, 0.10);
}

.zen-card::before {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: 26px;
  padding: 1px;
  background: conic-gradient(
    from 180deg,
    rgba(var(--lavender), 0.55),
    rgba(var(--sky), 0.55),
    rgba(var(--mint), 0.50),
    rgba(var(--peach), 0.45),
    rgba(var(--lavender), 0.55)
  );
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0.55;
  pointer-events: none;
}

.card-gradient {
  background:
    linear-gradient(135deg, rgba(var(--lavender), 0.10), rgba(var(--sky), 0.10), rgba(var(--mint), 0.08)),
    linear-gradient(180deg, rgba(255,255,255,0.9), rgba(255,255,255,0.65));
}

.btn-gradient {
  background: linear-gradient(135deg, rgba(var(--lavender), 1) 0%, rgba(var(--sky), 1) 50%, rgba(var(--mint), 1) 100%);
}

.text-gradient {
  background: linear-gradient(135deg, rgba(var(--lavender), 1), rgba(var(--sky), 1), rgba(var(--mint), 1));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.hover-lift {
  transition: transform 180ms ease, box-shadow 180ms ease, filter 180ms ease;
}
.hover-lift:hover {
  transform: translateY(-4px) scale(1.01);
  box-shadow: 0 18px 45px rgba(15, 23, 42, 0.14);
  filter: saturate(1.05);
}

.tilt {
  transition: transform 220ms cubic-bezier(.2,.8,.2,1), box-shadow 220ms cubic-bezier(.2,.8,.2,1), filter 220ms cubic-bezier(.2,.8,.2,1);
  will-change: transform;
}
.tilt:hover {
  transform: translateY(-6px) rotate(-0.6deg) scale(1.012);
  box-shadow: 0 26px 65px rgba(15, 23, 42, 0.16);
  filter: saturate(1.06);
}

.soft-ring:focus-visible {
  outline: none;
  box-shadow: 0 0 0 6px rgba(var(--sky), 0.18), 0 0 0 2px rgba(var(--sky), 0.30);
}

/* Subtle motion */
@keyframes floaty {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50%      { transform: translate3d(0, -10px, 0); }
}

.floaty {
  animation: floaty 6s ease-in-out infinite;
}

@keyframes shimmer {
  0%   { opacity: 0.0; transform: translate3d(-10px, 10px, 0) rotate(-6deg); }
  35%  { opacity: 0.65; }
  100% { opacity: 0.0; transform: translate3d(220px, -120px, 0) rotate(-6deg); }
}

.shimmer {
  pointer-events: none;
  position: absolute;
  inset: -40px;
  background: linear-gradient(135deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.55) 40%, rgba(255,255,255,0) 70%);
  transform: rotate(-6deg);
  animation: shimmer 5.5s ease-in-out infinite;
}

/* Reveal animations */
.reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 600ms ease, transform 600ms ease;
  will-change: opacity, transform;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .floaty, .shimmer { animation: none !important; }
  .hover-lift { transition: none !important; }
  .reveal { opacity: 1; transform: none; }
}
