/* Truvyo marketing site — v2, bolder.
 * Aesthetic: Vercel/Linear/Resend energy on product pages; editorial
 * (Anthropic-like) on Markets and About. The `.editorial` body class
 * shifts paper to a warm cream, headlines to a serif, and tones down
 * accents — more research-lab, less growth-SaaS.
 */

/* Editorial mode — cream paper, serif headings, restrained accents.
 * Activated by adding class="editorial" on <body>. Used by markets.html
 * and about.html. */
body.editorial {
  background: #faf7f2;
  color: #1a1612;
  font-size: 18px;
  line-height: 1.65;
}
body.editorial .nav {
  background: rgba(250, 247, 242, 0.88);
  border-bottom-color: rgba(184, 168, 142, 0.25);
}
body.editorial .nav .link { color: #3d342a; }
body.editorial .nav .link:hover { background: #f0eadf; color: #1a1612; }
body.editorial .nav a.cta { background: #1a1612; }
body.editorial .nav a.cta:hover { background: #c3582a; }
body.editorial .hero { padding: 120px 24px 56px; text-align: left; max-width: 880px; }
body.editorial .hero::before { display: none; }
body.editorial .hero h1 {
  font-family: ui-serif, Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-size: clamp(40px, 6vw, 64px);
  letter-spacing: -0.025em;
  line-height: 1.05;
  margin: 0 0 28px;
  color: #1a1612;
}
body.editorial .hero h1 em {
  font-style: italic;
  color: #c3582a;
  font-weight: 500;
}
body.editorial .hero .eyebrow {
  background: #f0eadf;
  color: #6a5a44;
  text-transform: none;
  letter-spacing: 0.01em;
  font-size: 13.5px;
  font-weight: 500;
  padding: 4px 12px;
}
body.editorial .hero p.lede {
  color: #3d342a;
  font-size: clamp(18px, 2.1vw, 22px);
  margin-left: 0; margin-right: 0;
  max-width: 720px;
  line-height: 1.55;
}
body.editorial .section { padding: 64px 24px; max-width: 880px; }
body.editorial .section.alt { background: #f5f0e8; max-width: none; }
body.editorial .section.alt .inner { max-width: 880px; padding: 0 24px; }
body.editorial .section.dark { background: #1a1612; color: #d8c9b1; }
body.editorial .section h2 {
  font-family: ui-serif, Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-size: clamp(26px, 3.6vw, 36px);
  letter-spacing: -0.015em;
  color: #1a1612;
  margin: 0 0 16px;
  line-height: 1.2;
}
body.editorial .section.dark h2 { color: #fff8eb; }
body.editorial .section .lede { color: #4a4138; max-width: 720px; font-size: 18px; }
body.editorial .section.dark .lede { color: #b5a690; }
body.editorial .section h3 {
  font-family: ui-serif, Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-size: 22px;
  color: #1a1612;
  letter-spacing: -0.01em;
}
body.editorial p, body.editorial li { color: #2a241d; font-size: 17px; line-height: 1.65; }
body.editorial a { color: #c3582a; }
body.editorial a:hover { color: #8e3f1c; }
body.editorial code {
  background: #f0eadf;
  border-color: #e3d7c0;
  color: #1a1612;
}

/* Editorial card — calmer than .pillar */
body.editorial .ed-card {
  background: #fff;
  border: 1px solid #e3d7c0;
  border-radius: 8px;
  padding: 32px;
  margin: 20px 0;
}
body.editorial .ed-card h3 { margin-top: 0; }
body.editorial .ed-card .tag {
  display: inline-block;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #c3582a;
  background: #fcefe3;
  padding: 3px 10px;
  border-radius: 999px;
  margin-bottom: 14px;
}
body.editorial .ed-card .score {
  float: right;
  font-size: 11px;
  color: #6a5a44;
  background: #f0eadf;
  padding: 4px 10px;
  border-radius: 999px;
  font-family: ui-monospace, "SF Mono", Menlo, monospace;
  font-weight: 600;
}
body.editorial .ed-card .role {
  font-size: 14px;
  color: #6a5a44;
  font-style: italic;
  margin: 0 0 16px;
}
body.editorial .ed-card .examples {
  background: #faf7f2;
  border-left: 3px solid #c3582a;
  padding: 14px 18px;
  margin: 16px 0;
  border-radius: 0 6px 6px 0;
}
body.editorial .ed-card .examples h4 {
  margin: 0 0 8px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #6a5a44;
  font-weight: 700;
}
body.editorial .ed-card .examples ul { margin: 0; padding-left: 20px; }
body.editorial .ed-card .examples li { font-size: 15.5px; color: #3d342a; }
body.editorial .ed-card .examples li::marker { color: #c3582a; }

/* Calm CTA on editorial pages */
body.editorial .btn.signal {
  background: #c3582a;
  color: #fff;
}
body.editorial .btn.signal:hover { background: #8e3f1c; box-shadow: 0 12px 30px -10px rgba(195, 88, 42, 0.4); }
body.editorial .btn.ghost { border-color: #d4c4a8; color: #1a1612; }
body.editorial .btn.ghost:hover { background: #f0eadf; border-color: #c3582a; }

/* Principle list — for /about */
body.editorial .principles { list-style: none; padding: 0; margin: 32px 0; }
body.editorial .principles li {
  border-top: 1px solid #e3d7c0;
  padding: 28px 0;
  font-size: 17px;
}
body.editorial .principles li:last-child { border-bottom: 1px solid #e3d7c0; }
body.editorial .principles strong {
  display: block;
  font-family: ui-serif, Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-size: 22px;
  color: #1a1612;
  margin-bottom: 8px;
  letter-spacing: -0.01em;
}
body.editorial .principles p { margin: 0; color: #4a4138; }

/* Footer warmth */
body.editorial footer.foot {
  background: #faf7f2;
  border-top-color: #e3d7c0;
  color: #6a5a44;
}
body.editorial footer.foot a { color: #6a5a44; }
body.editorial footer.foot a:hover { color: #c3582a; }

/* Quiet, ranked table for the market scoring */
body.editorial table.score-table {
  width: 100%; border-collapse: collapse; margin: 28px 0; font-size: 15px;
}
body.editorial table.score-table th, body.editorial table.score-table td {
  padding: 14px 16px; text-align: left; border-bottom: 1px solid #e3d7c0;
}
body.editorial table.score-table th { font-weight: 600; color: #6a5a44; text-transform: uppercase; font-size: 12px; letter-spacing: 0.05em; background: transparent; }
body.editorial table.score-table td.tier-s { color: #c3582a; font-weight: 600; }
body.editorial table.score-table td.tier-a { color: #6a5a44; }
body.editorial table.score-table td.tier-b { color: #9b8b73; }

/* End editorial overrides */



:root {
  --ink:        #060a10;
  --ink-2:      #1d2731;
  --ink-3:      #3d4956;
  --muted:      #6a7785;
  --line:       #e3e8ec;
  --line-2:     #eef1f4;
  --paper:      #ffffff;
  --paper-2:    #f6f8fa;
  --warm:       #fafaf7;

  --signal:     #00d97a;   /* primary brand — verified-green */
  --signal-2:   #00a85c;
  --signal-3:   #006d3c;
  --signal-bg:  #dffaeb;
  --signal-dark:#0a3424;

  --magenta:    #ff3d8b;   /* secondary accent — drama */
  --gold:       #ffb600;

  --grad-1: linear-gradient(135deg, #00d97a 0%, #00b8c4 50%, #6c7cff 100%);
  --grad-2: linear-gradient(180deg, rgba(0,217,122,.04) 0%, rgba(0,217,122,0) 100%);
  --grad-dark: linear-gradient(180deg, #060a10 0%, #0f1820 100%);

  --shadow-sm: 0 1px 2px rgba(6,10,16,.04);
  --shadow-md: 0 2px 6px rgba(6,10,16,.06), 0 12px 30px rgba(6,10,16,.06);
  --shadow-lg: 0 24px 60px -10px rgba(6,10,16,.18);
  --shadow-signal: 0 12px 40px -8px rgba(0,217,122,.45);

  --radius:     12px;
  --radius-sm:  8px;
  --max:        1200px;
  --font-sans:  ui-sans-serif, system-ui, -apple-system, "Segoe UI", "Inter", Roboto, sans-serif;
  --font-display: "Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;
  --font-mono:  ui-monospace, "SF Mono", Menlo, Consolas, monospace;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 1.55;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
a { color: var(--signal-2); text-decoration: none; }
a:hover { color: var(--signal-3); }

/* ---------- Nav ---------- */
.nav {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255, 255, 255, 0.86);
  backdrop-filter: saturate(160%) blur(10px);
  border-bottom: 1px solid rgba(227, 232, 236, 0.6);
}
.nav .inner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 16px 28px;
  display: flex; align-items: center; gap: 24px;
}
.nav .logo {
  display: inline-flex; align-items: center; gap: 9px;
  font-weight: 700; font-size: 20px; letter-spacing: -0.02em; color: var(--ink);
}
.nav .logo svg { width: 24px; height: 24px; }
.nav .spacer { flex: 1; }
.nav a.link { color: var(--ink-2); font-size: 14.5px; font-weight: 500; padding: 6px 10px; border-radius: 6px; transition: color .15s, background .15s; }
.nav a.link:hover { color: var(--ink); background: var(--paper-2); text-decoration: none; }
.nav a.cta {
  background: var(--ink);
  color: #fff;
  padding: 9px 16px;
  border-radius: 7px;
  font-size: 14.5px;
  font-weight: 500;
  transition: transform .15s, box-shadow .15s, background .15s;
}
.nav a.cta:hover { background: var(--signal-2); color: #fff; transform: translateY(-1px); box-shadow: var(--shadow-signal); }
@media (max-width: 760px) {
  .nav .link:not(.cta):not(.logo) { display: none; }
}

/* ---------- Hero ---------- */
.hero {
  position: relative;
  padding: 96px 24px 72px;
  max-width: var(--max);
  margin: 0 auto;
  text-align: center;
  overflow: hidden;
}
.hero::before {
  content: "";
  position: absolute; inset: 0;
  background: var(--grad-2);
  pointer-events: none;
  z-index: -1;
}
.hero .eyebrow {
  display: inline-block;
  font-size: 13px;
  color: var(--signal-3);
  background: var(--signal-bg);
  padding: 5px 14px;
  border-radius: 999px;
  margin-bottom: 24px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.hero h1 {
  font-family: var(--font-display);
  font-size: clamp(44px, 7vw, 76px);
  line-height: 1.0;
  letter-spacing: -0.035em;
  margin: 0 auto 24px;
  max-width: 940px;
  font-weight: 800;
}
.hero h1 .accent {
  background: var(--grad-1);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline;
}
.hero p.lede {
  font-size: clamp(18px, 2.1vw, 22px);
  color: var(--ink-3);
  max-width: 680px;
  margin: 0 auto 36px;
  line-height: 1.5;
}
.hero .ctas { display: inline-flex; gap: 12px; flex-wrap: wrap; justify-content: center; }
.hero .micro { display: block; margin-top: 18px; font-size: 13.5px; color: var(--muted); }
.hero .micro strong { color: var(--ink-2); font-weight: 600; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 13px 22px;
  border-radius: 8px;
  font-weight: 600;
  font-size: 15.5px;
  border: 1px solid transparent;
  cursor: pointer;
  font-family: inherit;
  transition: transform .12s, box-shadow .15s, background .15s, border-color .15s;
  letter-spacing: -0.005em;
}
.btn.primary {
  background: var(--ink);
  color: #fff;
}
.btn.primary:hover { transform: translateY(-1px); box-shadow: var(--shadow-signal); background: var(--signal-2); text-decoration: none; }
.btn.signal {
  background: var(--signal);
  color: var(--ink);
  font-weight: 700;
}
.btn.signal:hover { transform: translateY(-1px); box-shadow: var(--shadow-signal); background: var(--signal-2); color: #fff; text-decoration: none; }
.btn.ghost {
  background: transparent;
  color: var(--ink);
  border-color: var(--line);
}
.btn.ghost:hover { background: var(--paper-2); border-color: var(--ink-3); text-decoration: none; }
.btn.ghost-light {
  background: rgba(255,255,255,0.05);
  color: #fff;
  border-color: rgba(255,255,255,0.15);
}
.btn.ghost-light:hover { background: rgba(255,255,255,0.10); text-decoration: none; }
.btn.lg { padding: 16px 28px; font-size: 17px; }

/* ---------- Sections ---------- */
.section {
  padding: 84px 24px;
  max-width: var(--max);
  margin: 0 auto;
}
.section.alt { background: var(--warm); max-width: none; }
.section.alt .inner { max-width: var(--max); margin: 0 auto; padding: 0 24px; }
.section.dark { background: var(--grad-dark); color: #cdd6e0; max-width: none; }
.section.dark .inner { max-width: var(--max); margin: 0 auto; padding: 0 24px; }
.section.dark h2 { color: #fff; }
.section.dark .lede { color: #97a3b1; }
.section.dark a { color: #6cf2af; }

.section h2 {
  font-family: var(--font-display);
  font-size: clamp(30px, 4.2vw, 44px);
  letter-spacing: -0.025em;
  margin: 0 0 14px;
  line-height: 1.1;
  font-weight: 800;
}
.section .lede {
  font-size: 19px;
  color: var(--ink-3);
  max-width: 720px;
  margin: 0 0 44px;
  line-height: 1.5;
}

/* ---------- Pillars ---------- */
.pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 28px; }
@media (max-width: 880px) { .pillars { grid-template-columns: 1fr; } }
.pillar {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 28px;
  transition: transform .15s, box-shadow .15s, border-color .15s;
}
.pillar:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); border-color: var(--signal); }
.pillar .icon {
  width: 42px; height: 42px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--signal-bg); color: var(--signal-3);
  border-radius: 10px; margin-bottom: 18px;
}
.pillar h3 { margin: 0 0 8px; font-size: 18px; font-weight: 700; letter-spacing: -0.01em; }
.pillar p { margin: 0; color: var(--ink-3); font-size: 15.5px; line-height: 1.55; }

/* ---------- Chat demo mockup ---------- */
.chatdemo {
  background: var(--ink);
  border-radius: 14px;
  padding: 28px;
  box-shadow: var(--shadow-lg);
  max-width: 720px;
  margin: 40px auto 0;
  position: relative;
}
.chatdemo .head {
  display: flex; align-items: center; gap: 10px;
  padding-bottom: 18px; border-bottom: 1px solid rgba(255,255,255,.08);
}
.chatdemo .head .dot { width: 9px; height: 9px; border-radius: 50%; background: var(--signal); box-shadow: 0 0 12px var(--signal); }
.chatdemo .head .title { font-size: 13px; color: #97a3b1; font-weight: 500; }
.chatdemo .head .pill { margin-left: auto; font-size: 11px; padding: 3px 10px; border-radius: 999px; background: rgba(0,217,122,.12); color: var(--signal); font-weight: 600; }
.chatdemo .msg { display: flex; gap: 14px; margin: 18px 0; align-items: flex-start; }
.chatdemo .who { font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: #6a7785; padding-top: 3px; min-width: 84px; }
.chatdemo .you .who { color: #97a3b1; }
.chatdemo .truvyo .who { color: var(--signal); }
.chatdemo .body { color: #cdd6e0; font-size: 15px; line-height: 1.55; flex: 1; }
.chatdemo .body strong { color: #fff; }
.chatdemo .cite {
  display: inline-block; margin: 0 2px;
  font-size: 11px; padding: 1px 8px; border-radius: 999px;
  background: rgba(0,217,122,.18); color: var(--signal); font-weight: 600;
}
.chatdemo .citations {
  margin-top: 14px; padding-top: 14px;
  border-top: 1px dashed rgba(255,255,255,.08);
  font-size: 12.5px; color: #6a7785; line-height: 1.6;
}
.chatdemo .citations .ref { color: var(--signal); font-weight: 600; }

/* ---------- Comparison table ---------- */
table.compare {
  width: 100%;
  border-collapse: collapse;
  margin-top: 28px;
  font-size: 15px;
}
table.compare th, table.compare td {
  padding: 16px 18px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}
table.compare th {
  font-weight: 600;
  background: var(--paper-2);
  color: var(--ink);
  font-size: 12.5px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
table.compare th:last-child, table.compare td:last-child { background: linear-gradient(to right, var(--signal-bg), rgba(0,217,122,0.05)); }

/* ---------- Quote / case ---------- */
.case {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 40px;
  box-shadow: var(--shadow-md);
  margin-top: 32px;
}
.case blockquote {
  margin: 0 0 20px;
  font-size: 22px;
  line-height: 1.4;
  color: var(--ink);
  font-weight: 500;
  letter-spacing: -0.01em;
  border-left: 4px solid var(--signal);
  padding-left: 22px;
}
.case .who { font-size: 14.5px; color: var(--muted); }
.case .who strong { color: var(--ink); }

/* ---------- Pricing tiers ---------- */
.tiers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 36px; }
@media (max-width: 960px) { .tiers { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .tiers { grid-template-columns: 1fr; } }
.tier {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 30px;
  display: flex; flex-direction: column;
  position: relative;
  transition: transform .15s, box-shadow .15s, border-color .15s;
}
.tier:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.tier.featured {
  border-color: var(--signal);
  box-shadow: 0 0 0 4px var(--signal-bg), var(--shadow-md);
}
.tier.featured::after {
  content: "Most popular";
  position: absolute; top: -12px; right: 18px;
  background: var(--signal); color: var(--ink);
  font-size: 11px; font-weight: 700;
  padding: 5px 12px; border-radius: 999px;
  letter-spacing: 0.04em; text-transform: uppercase;
}
.tier h3 { margin: 0 0 6px; font-size: 19px; font-weight: 700; letter-spacing: -0.01em; }
.tier .subtitle { color: var(--muted); font-size: 13.5px; margin-bottom: 18px; min-height: 32px; }
.tier .price { font-size: 32px; font-weight: 800; letter-spacing: -0.02em; line-height: 1; }
.tier .price small { font-weight: 500; color: var(--muted); font-size: 15px; margin-left: 4px; letter-spacing: 0; }
.tier .or { color: var(--muted); font-size: 13.5px; margin: 8px 0 22px; min-height: 38px; }
.tier ul { padding-left: 18px; margin: 0 0 24px; font-size: 14.5px; color: var(--ink-3); }
.tier li { margin: 7px 0; }
.tier li strong { color: var(--ink); }
.tier .btn { width: 100%; justify-content: center; margin-top: auto; }

/* ---------- Footer ---------- */
footer.foot {
  border-top: 1px solid var(--line);
  padding: 44px 24px;
  margin-top: 0;
  font-size: 14px;
  color: var(--muted);
  background: var(--paper);
}
footer.foot .inner { max-width: var(--max); margin: 0 auto; display: flex; flex-wrap: wrap; gap: 24px; align-items: center; }
footer.foot a { color: var(--muted); }
footer.foot a:hover { color: var(--ink); }
footer.foot .spacer { flex: 1; }

/* ---------- Forms / signup ---------- */
form.signup { max-width: 480px; margin: 0 auto; }
form.signup label { display: block; font-size: 12.5px; font-weight: 600; color: var(--ink-2); margin: 18px 0 6px; text-transform: uppercase; letter-spacing: 0.05em; }
form.signup input, form.signup textarea, form.signup select {
  width: 100%;
  padding: 12px 14px;
  font-size: 16px;
  font-family: inherit;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
  color: var(--ink);
  transition: border-color .15s, box-shadow .15s;
}
form.signup input:focus, form.signup textarea:focus, form.signup select:focus {
  outline: none; border-color: var(--signal); box-shadow: 0 0 0 4px var(--signal-bg);
}
form.signup .btn { width: 100%; margin-top: 24px; }
form.signup .note { font-size: 13px; color: var(--muted); margin-top: 14px; text-align: center; }

/* ---------- Tag chips ---------- */
.chip { display: inline-block; font-size: 12px; padding: 3px 10px; border-radius: 999px; font-weight: 600; background: var(--paper-2); color: var(--ink-2); letter-spacing: 0.02em; }
.chip.signal { background: var(--signal-bg); color: var(--signal-3); }
.chip.warn { background: #fef5e0; color: #8b6500; }
.chip.danger { background: #fde9e9; color: #c43b3b; }

/* ---------- Logo strip / connectors ---------- */
.connectors {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 32px;
}
@media (max-width: 700px) { .connectors { grid-template-columns: 1fr 1fr; } }
.connector {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 18px 20px;
  display: flex; align-items: center; gap: 12px;
  transition: border-color .15s, transform .15s;
}
.connector:hover { border-color: var(--signal); transform: translateY(-1px); }
.connector .logo {
  width: 32px; height: 32px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 8px; color: #fff;
  font-size: 14px; font-weight: 700;
}
.connector .name { font-weight: 600; color: var(--ink); font-size: 15px; }
.connector .status { margin-left: auto; }

/* Connector brand colors */
.cn-zoom .logo    { background: #2D8CFF; }
.cn-zendesk .logo { background: #03363D; }
.cn-intercom .logo{ background: #1F8DED; }
.cn-drift .logo   { background: #0747FF; }

/* ---------- "What is a disposition" callout ---------- */
.definition {
  background: var(--ink);
  color: #cdd6e0;
  border-radius: var(--radius);
  padding: 36px;
  margin: 32px 0;
}
.definition h3 { color: #fff; margin: 0 0 12px; font-size: 22px; }
.definition .term {
  font-family: var(--font-mono);
  background: rgba(0,217,122,.14);
  color: var(--signal);
  padding: 2px 9px;
  border-radius: 6px;
  font-size: 0.92em;
}
.definition ul { margin: 16px 0 0; padding-left: 22px; line-height: 1.7; }
.definition strong { color: #fff; }
