<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>X-Connect Showcase</title>
<link href="https://fonts.googleapis.com/css2?family=Syne:wght@700;800&family=IBM+Plex+Mono:wght@300;400;500;600;700&family=IBM+Plex+Sans:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<style>
/* ─── Reset & Tokens ─────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
::selection { background: #090B0F; color: #fff; }
::-webkit-scrollbar { display: none; }

:root {
  --bg0: #ECEEF2; --bg1: #E4E7EC; --bg2: #FFFFFF; --bg3: #F5F6F9;
  --bd:  rgba(10,12,16,.14); --bd2: rgba(10,12,16,.22); --bd3: rgba(10,12,16,.36);
  --ink: #090B0F; --ink2: rgba(9,11,15,.88); --ink3: rgba(9,11,15,.65);
  --ink4: rgba(9,11,15,.42); --ink5: rgba(9,11,15,.18);
  --green: #0A7A3E; --greenbg: rgba(10,122,62,.08); --greenhl: #0DB85A;
  --amber: #92400E;
  --mono: 'IBM Plex Mono', monospace;
  --sans: 'IBM Plex Sans', sans-serif;
  --disp: 'Syne', sans-serif;
  --status-h: 30px; --nav-h: 48px; --ticker-h: 30px; --bottom-h: 54px;
}

/* ─── Layout Shell ───────────────────────────────────────────── */
body {
  width: 100vw; height: 100vh;
  background: var(--bg0); color: var(--ink);
  overflow: hidden; font-family: var(--mono);
}

/* Background decorations */
.grid-bg {
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background-image:
    linear-gradient(var(--bd) 1px, transparent 1px),
    linear-gradient(90deg, var(--bd) 1px, transparent 1px);
  background-size: 40px 40px;
}
.scan-bg {
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background: repeating-linear-gradient(
    0deg, transparent, transparent 3px,
    rgba(10,12,16,.007) 3px, rgba(10,12,16,.007) 4px
  );
}

/* ─── Animations ─────────────────────────────────────────────── */
@keyframes fadeUp   { from { opacity:0; transform:translateY(14px) } to { opacity:1; transform:translateY(0) } }
@keyframes timerW   { from { width:0% } to { width:100% } }
@keyframes pulseDot { 0%,100%{opacity:1} 50%{opacity:.3} }
@keyframes tapescroll { from{transform:translateX(0)} to{transform:translateX(-50%)} }
@keyframes blink    { 0%,49%{opacity:1} 50%,100%{opacity:0} }

/* ─── Timer Bar ──────────────────────────────────────────────── */
.timer-bar {
  position: fixed; top: 0; left: 0; height: 2px; z-index: 200;
  background: var(--ink); opacity: .55;
}

/* ─── Status Bar ─────────────────────────────────────────────── */
.status-bar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 150;
  height: var(--status-h); background: var(--ink);
  border-bottom: 1px solid rgba(255,255,255,.08);
  display: flex; align-items: center; padding: 0 16px; gap: 0;
}
.status-bar .items { display: flex; align-items: center; flex: 1; overflow: hidden; }
.status-item {
  display: flex; align-items: center; gap: 8px;
  padding: 0 16px; height: var(--status-h);
  border-right: 1px solid rgba(255,255,255,.1);
}
.status-item:first-child { border-left: 1px solid rgba(255,255,255,.1); }
.status-lbl { font-size: 9.5px; letter-spacing: .1em; color: rgba(255,255,255,.38); }
.status-val { font-size: 11px; font-weight: 700; letter-spacing: .06em; }
.pulse-dot {
  width: 5px; height: 5px; border-radius: 50%;
  background: #4ade80; animation: pulseDot 2s infinite;
  display: inline-block; box-shadow: 0 0 6px rgba(74,222,128,.6); flex-shrink: 0;
}
#clock { font-size: 10px; color: rgba(255,255,255,.35); letter-spacing: .1em; margin-left: auto; }

/* ─── Navbar ─────────────────────────────────────────────────── */
.navbar {
  position: fixed; top: var(--status-h); left: 0; right: 0; z-index: 100;
  height: var(--nav-h); background: var(--bg2);
  border-bottom: 2px solid var(--bd3);
  display: flex; align-items: stretch;
  box-shadow: 0 2px 12px rgba(10,12,16,.08);
}
.brand {
  display: flex; align-items: center; padding: 0 22px;
  border-right: 2px solid var(--bd3); gap: 10px; flex-shrink: 0;
}
.brand-name { font-family: var(--disp); font-size: 16px; font-weight: 800; letter-spacing: .14em; }
.brand-badge {
  font-size: 10px; font-weight: 700; color: var(--bg2);
  letter-spacing: .12em; background: var(--ink); padding: 2px 8px;
}
.nav-btn {
  display: flex; align-items: center; padding: 0 18px;
  font-family: var(--mono); font-size: 10.5px; letter-spacing: .1em;
  text-transform: uppercase; cursor: pointer;
  color: var(--ink4); background: transparent; font-weight: 500;
  border: none; border-right: 1px solid var(--bd);
  border-bottom: 2px solid transparent;
  transition: all .15s; position: relative; top: 1px;
  white-space: nowrap;
}
.nav-btn:hover { color: var(--ink2); background: var(--bg3); }
.nav-btn.active {
  color: var(--ink); background: var(--bg3);
  font-weight: 700; border-bottom: 2px solid var(--ink);
}

/* ─── Ticker ─────────────────────────────────────────────────── */
.ticker {
  position: fixed;
  top: calc(var(--status-h) + var(--nav-h));
  left: 0; right: 0; z-index: 90;
  height: var(--ticker-h); background: var(--bg1);
  border-bottom: 1px solid var(--bd2);
  overflow: hidden; display: flex; align-items: center;
}
.ticker .fade-l {
  position: absolute; top: 0; bottom: 0; left: 0; width: 60px;
  background: linear-gradient(to right, var(--bg1), transparent); z-index: 2;
}
.ticker .fade-r {
  position: absolute; top: 0; bottom: 0; right: 0; width: 60px;
  background: linear-gradient(to left, var(--bg1), transparent); z-index: 2;
}
.ticker .track { display: flex; animation: tapescroll 28s linear infinite; white-space: nowrap; }
.ticker .seg {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 0 22px; border-right: 1px solid var(--bd2);
  height: var(--ticker-h); font-size: 10.5px;
}
.ticker .seg b { letter-spacing: .1em; }
.ticker .seg span { color: var(--ink3); }

/* ─── Scene Container ────────────────────────────────────────── */
.scenes {
  position: fixed;
  top: calc(var(--status-h) + var(--nav-h) + var(--ticker-h));
  bottom: var(--bottom-h);
  left: 0; right: 0; z-index: 10;
  overflow: hidden;
}
.scene {
  position: absolute; inset: 0;
  display: flex; align-items: flex-start; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity .45s cubic-bezier(.4,0,.2,1);
  overflow-y: auto; overflow-x: hidden;
  padding: 24px 0 16px;
}
.scene.active { opacity: 1; pointer-events: all; }

/* ─── Bottom Nav ─────────────────────────────────────────────── */
.bottom-nav {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 100;
  height: var(--bottom-h); background: var(--bg2);
  border-top: 2px solid var(--bd3);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 28px;
}
.bot-btn {
  font-family: var(--mono); font-size: 10px; letter-spacing: .14em;
  text-transform: uppercase; cursor: pointer; padding: 8px 16px;
  border-radius: 0; transition: all .15s;
}
.dots { display: flex; gap: 7px; align-items: center; }
.dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--bd3); border: 1px solid transparent;
  cursor: pointer; transition: all .25s; padding: 0;
}
.dot.active { width: 22px; border-radius: 3px; background: var(--ink); border-color: var(--ink); }

/* ─── Shared Components ──────────────────────────────────────── */
.tag {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--mono); font-size: 10px; letter-spacing: .14em;
  text-transform: uppercase; padding: 4px 12px;
  border: 1px solid var(--bd2); color: var(--ink3); font-weight: 500;
}
.tag.live { border-color: var(--green); color: var(--green); background: var(--greenbg); font-weight: 700; }

.section-header {
  padding: 11px 26px; border-bottom: 2px solid var(--bd3);
  display: flex; align-items: center; gap: 12px; background: var(--bg1);
  flex-wrap: wrap;
}
.section-num {
  font-family: var(--mono); font-size: 10px; color: var(--ink4);
  letter-spacing: .1em; font-weight: 700; border: 1px solid var(--bd2);
  padding: 2px 8px; background: var(--bg3);
}
.section-sep { color: var(--ink5); font-size: 14px; }
.section-title {
  font-family: var(--mono); font-size: 11px; color: var(--ink);
  letter-spacing: .1em; text-transform: uppercase; font-weight: 700;
}
.section-sub { font-family: var(--sans); font-size: 11px; color: var(--ink3); font-weight: 500; }
.section-status { font-family: var(--mono); font-size: 9.5px; color: var(--green); margin-left: auto; letter-spacing: .08em; font-weight: 700; }

.card {
  border: 1px solid var(--bd2); background: var(--bg2);
  box-shadow: 0 2px 16px rgba(10,12,16,.06);
}
.inner { padding: 24px; }

/* Terminal */
.term {
  background: var(--ink); padding: 12px 14px;
  font-family: var(--mono); font-size: 10.5px;
}
.term-dots { display: flex; gap: 6px; margin-bottom: 8px; align-items: center; }
.tdot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.log-line { display: flex; gap: 10px; line-height: 1.9; opacity: 0; animation: fadeUp .25s forwards; }
.log-waiting { color: rgba(255,255,255,.2); }

/* Info rows */
.info-row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 9px 0; border-bottom: 1px solid var(--bd);
  opacity: 0; transform: translateY(5px);
  transition: opacity .35s, transform .35s;
}
.info-row-key { font-family: var(--sans); font-size: 12px; color: var(--ink3); font-weight: 500; }
.info-row-val { font-family: var(--mono); font-size: 11.5px; font-weight: 600; }

/* Verdict bar */
.verdict-bar {
  padding: 13px 16px; background: var(--bg1);
  border: 1px solid var(--bd2); border-left: 3px solid var(--green);
}
.verdict-bar p { font-family: var(--sans); font-size: 12px; color: var(--ink2); line-height: 1.65; font-weight: 500; }

/* ─── Scene: Hero ────────────────────────────────────────────── */
.hero-grid {
  display: grid; grid-template-columns: 1fr 340px;
  border: 1px solid var(--bd2); background: var(--bg2);
  box-shadow: 0 2px 16px rgba(10,12,16,.06);
  margin-bottom: 1px;
}
.hero-main {
  padding: 36px 40px; border-right: 2px solid var(--bd3);
  position: relative; overflow: hidden;
}
.hero-bg-letter {
  position: absolute; right: -10px; top: -20px;
  font-family: var(--disp); font-weight: 800;
  font-size: 200px; line-height: 1;
  color: rgba(10,12,16,.04); pointer-events: none;
  user-select: none; letter-spacing: -.04em;
}
.hero-tags { display: flex; align-items: center; gap: 8px; margin-bottom: 22px; animation: fadeUp .6s .1s both; flex-wrap: wrap; }
.hero-title {
  font-family: var(--disp); font-weight: 800;
  font-size: clamp(46px, 5.5vw, 82px); line-height: .88;
  letter-spacing: -.03em; margin-bottom: 10px;
  animation: fadeUp .6s .25s both;
}
.hero-sub {
  font-family: var(--sans); font-size: 14px; color: var(--ink3);
  margin-bottom: 26px; line-height: 1.6;
  animation: fadeUp .6s .35s both;
}
.hero-stats { display: flex; margin-bottom: 26px; animation: fadeUp .6s .45s both; }
.hero-stat {
  padding: 12px 20px; border: 1px solid var(--bd2); border-right: none;
}
.hero-stat:last-child { border-right: 1px solid var(--bd2); }
.hero-stat-n { font-family: var(--mono); font-size: 20px; font-weight: 700; line-height: 1; }
.hero-stat-l { font-family: var(--mono); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink4); font-weight: 600; margin-top: 3px; }
.hero-actions { display: flex; gap: 8px; flex-wrap: wrap; animation: fadeUp .6s .55s both; }
.btn-primary {
  padding: 13px 28px; background: var(--ink); color: var(--bg2);
  font-family: var(--mono); font-size: 11px; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
  border: none; cursor: pointer; transition: opacity .15s;
}
.btn-primary:hover { opacity: .85; }
.btn-secondary {
  padding: 13px 18px; background: transparent; color: var(--ink3);
  font-family: var(--mono); font-size: 11px; letter-spacing: .1em;
  text-transform: uppercase; border: 1px solid var(--bd2);
  cursor: pointer; transition: background .15s;
}
.btn-secondary:hover { background: var(--bg3); }

/* Capability panel */
.cap-panel { display: flex; flex-direction: column; background: var(--bg1); }
.cap-header {
  padding: 11px 18px; border-bottom: 1px solid var(--bd2);
  font-family: var(--mono); font-size: 9.5px; letter-spacing: .18em;
  text-transform: uppercase; color: var(--ink3);
  background: var(--bg3); font-weight: 700;
}
.cap-row {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 16px; border-bottom: 1px solid var(--bd);
}
.cap-row:nth-child(odd) { background: var(--bg2); }
.cap-row:nth-child(even) { background: var(--bg3); }
.cap-key { font-family: var(--sans); font-size: 11.5px; color: var(--ink3); flex: 1; font-weight: 500; }
.cap-val { font-family: var(--mono); font-size: 10.5px; font-weight: 600; }
.cap-cta { padding: 14px 16px; margin-top: auto; }
.cap-cta button {
  width: 100%; padding: 13px 16px; background: var(--ink); color: var(--bg2);
  font-family: var(--mono); font-size: 11px; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase; border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between;
  transition: opacity .15s;
}
.cap-cta button:hover { opacity: .85; }

/* Feature strip */
.feature-strip { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1px; background: var(--bd2); }
.feature-chip {
  padding: 10px 12px; display: flex; align-items: center; justify-content: center;
  font-family: var(--mono); font-size: 9.5px; letter-spacing: .1em;
  text-transform: uppercase; font-weight: 600; text-align: center;
}

/* ─── Scene: Pipeline ────────────────────────────────────────── */
.pipe-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px; background: var(--bd2); margin-bottom: 14px; }
.pipe-progress-wrap { height: 3px; background: var(--bg0); overflow: hidden; margin-bottom: 14px; }
#pipeProgress { height: 100%; background: linear-gradient(90deg, var(--ink), var(--green)); width: 0%; transition: width .5s cubic-bezier(.4,0,.2,1); }

/* ─── Scene: Stealth & Cost ──────────────────────────────────── */
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.panel-top-green { border-top: 2px solid var(--green); }
.panel-top-ink   { border-top: 2px solid var(--ink); }
.panel-heading {
  padding: 11px 20px; border-bottom: 2px solid var(--bd3);
  font-family: var(--mono); font-size: 9.5px; letter-spacing: .2em;
  text-transform: uppercase; color: var(--ink3); background: var(--bg1); font-weight: 700;
}
.big-num { font-family: var(--disp); font-weight: 800; font-size: clamp(52px, 5.5vw, 78px); line-height: 1; margin-bottom: 6px; }
.big-num-green { color: var(--green); }
.panel-desc { font-family: var(--sans); font-size: 12.5px; color: var(--ink3); line-height: 1.75; margin-bottom: 20px; font-weight: 500; }

/* ─── Scene: Competitors ─────────────────────────────────────── */
.comp-table { border: 1px solid var(--bd2); overflow: hidden; margin-bottom: 12px; }
.comp-head {
  display: grid; grid-template-columns: 1.8fr 1fr 1.2fr 1.2fr .8fr .8fr;
  background: var(--bg1); border-bottom: 2px solid var(--bd3);
}
.comp-col {
  padding: 10px 14px; font-family: var(--mono); font-size: 9.5px;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--ink3); font-weight: 700; border-right: 1px solid var(--bd);
}
.comp-col:last-child { border-right: none; }
.comp-col.center { text-align: center; }

/* ─── Scene: Pricing ─────────────────────────────────────────── */
.pricing-grid { display: grid; grid-template-columns: 1fr 1fr 1fr 1.1fr; gap: 10px; margin-bottom: 14px; }
.plan-card {
  background: var(--bg3); border: 1px solid var(--bd2);
  padding: 20px 18px; display: flex; flex-direction: column;
  opacity: 0; transform: translateY(8px); transition: all .4s;
}
.plan-note { font-family: var(--mono); font-size: 9px; letter-spacing: .16em; text-transform: uppercase; margin-bottom: 10px; font-weight: 700; }
.plan-name { font-family: var(--disp); font-weight: 800; font-size: 13px; margin-bottom: 7px; }
.plan-price { font-family: var(--disp); font-weight: 800; font-size: clamp(30px, 3vw, 44px); line-height: 1; margin-bottom: 3px; }
.plan-sub { font-family: var(--mono); font-size: 9.5px; color: var(--ink4); letter-spacing: .1em; margin-bottom: 16px; }
.plan-divider { height: 1px; background: var(--bd2); margin-bottom: 12px; }
.plan-feats { display: flex; flex-direction: column; gap: 7px; }
.plan-feat { display: flex; align-items: flex-start; gap: 7px; }
.plan-feat-check { font-weight: 700; font-size: 11px; flex-shrink: 0; }
.plan-feat-text { font-family: var(--sans); font-size: 11px; color: var(--ink3); line-height: 1.5; font-weight: 500; }

/* ─── Scene: CTA ─────────────────────────────────────────────── */
.cta-headline {
  font-family: var(--disp); font-weight: 800;
  font-size: clamp(48px, 6vw, 86px); letter-spacing: -.03em; line-height: .88;
}
.cta-headline-outline {
  color: transparent; -webkit-text-stroke: 2px var(--ink);
}
.cta-stat-strip { display: flex; border: 1px solid var(--bd2); overflow: hidden; margin-bottom: 30px; }
.cta-stat {
  flex: 1; padding: 13px 18px; border-right: 1px solid var(--bd2);
  text-align: center;
}
.cta-stat:nth-child(odd) { background: var(--bg2); }
.cta-stat:nth-child(even) { background: var(--bg3); }
.cta-stat:last-child { border-right: none; }
.cta-stat-n { font-family: var(--disp); font-weight: 800; font-size: 26px; line-height: 1; }
.cta-stat-l { font-family: var(--mono); font-size: 8.5px; color: var(--ink4); letter-spacing: .14em; text-transform: uppercase; margin-top: 3px; font-weight: 600; }

/* Perf stat grid */
.perf-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--bd2); margin-bottom: 14px; }
.perf-cell { background: var(--bg2); padding: 20px 18px; }
.perf-num { font-family: var(--disp); font-weight: 800; font-size: clamp(34px,3.5vw,50px); line-height: 1; margin-bottom: 5px; font-variant-numeric: tabular-nums; transition: color .5s; }
.perf-label { font-family: var(--sans); font-size: 12px; font-weight: 700; margin-bottom: 3px; }
.perf-desc { font-family: var(--sans); font-size: 11px; color: var(--ink3); line-height: 1.55; font-weight: 500; }
</style>
</head>
<body>

<div class="grid-bg"></div>
<div class="scan-bg"></div>
<div class="timer-bar" id="timerBar"></div>

<!-- ════ STATUS BAR ════════════════════════════════════════════ -->
<div class="status-bar">
  <div class="items">
    <div class="status-item">
      <span class="pulse-dot"></span>
      <span class="status-lbl">STATUS</span>
      <span class="status-val" style="color:#4ade80">AGENT ACTIVE</span>
    </div>
    <div class="status-item">
      <span class="status-lbl">PRODUCT</span>
      <span class="status-val" style="color:rgba(255,255,255,.9)">X-CONNECT</span>
    </div>
    <div class="status-item">
      <span class="status-lbl">PRICE</span>
      <span class="status-val" style="color:#4ade80">$199 OTP</span>
    </div>
    <div class="status-item">
      <span class="status-lbl">AI</span>
      <span class="status-val" style="color:rgba(255,255,255,.7)">FRONTIER LLM</span>
    </div>
  </div>
  <span id="clock">00:00</span>
</div>

<!-- ════ NAVBAR ════════════════════════════════════════════════ -->
<div class="navbar">
  <div class="brand">
    <span class="brand-name">X-CONNECT</span>
    <span class="brand-badge">AI</span>
  </div>
  <button class="nav-btn active" onclick="goTo(0)">Overview</button>
  <button class="nav-btn" onclick="goTo(1)">Pipeline</button>
  <button class="nav-btn" onclick="goTo(2)">Stealth &amp; Cost</button>
  <button class="nav-btn" onclick="goTo(3)">Performance</button>
  <button class="nav-btn" onclick="goTo(4)">Competitors</button>
  <button class="nav-btn" onclick="goTo(5)">Pricing</button>
  <button class="nav-btn" onclick="goTo(6)">Deploy</button>
</div>

<!-- ════ TICKER ════════════════════════════════════════════════ -->
<div class="ticker">
  <div class="fade-l"></div>
  <div class="fade-r"></div>
  <div class="track">
    <div class="seg"><b>X-CONNECT</b><span>AI ENGAGEMENT ENGINE</span></div>
    <div class="seg"><b>PIPELINE</b><span>7 STAGES · STEALTH OPERATION</span></div>
    <div class="seg"><b>COST</b><span>$199 ONE-TIME · NO SUBSCRIPTION</span></div>
    <div class="seg"><b>HOSTED</b><span>SELF-HOSTED · YOUR VPS · FULL CONTROL</span></div>
    <div class="seg"><b>AI</b><span>FRONTIER LLM · NO TEMPLATES EVER</span></div>
    <div class="seg"><b>SAVINGS</b><span>$1,200–$2,800 / YEAR VS COMPETITORS</span></div>
    <!-- duplicate for seamless loop -->
    <div class="seg"><b>X-CONNECT</b><span>AI ENGAGEMENT ENGINE</span></div>
    <div class="seg"><b>PIPELINE</b><span>7 STAGES · STEALTH OPERATION</span></div>
    <div class="seg"><b>COST</b><span>$199 ONE-TIME · NO SUBSCRIPTION</span></div>
    <div class="seg"><b>HOSTED</b><span>SELF-HOSTED · YOUR VPS · FULL CONTROL</span></div>
    <div class="seg"><b>AI</b><span>FRONTIER LLM · NO TEMPLATES EVER</span></div>
    <div class="seg"><b>SAVINGS</b><span>$1,200–$2,800 / YEAR VS COMPETITORS</span></div>
  </div>
</div>

<!-- ════ SCENES ════════════════════════════════════════════════ -->
<div class="scenes">

  <!-- S0: HERO ──────────────────────────────────────────────── -->
  <div class="scene active" id="s0">
    <div style="width:100%;max-width:1060px;padding:0 28px">
      <div class="hero-grid">

        <!-- Left: main copy -->
        <div class="hero-main">
          <span class="hero-bg-letter">X</span>
          <div class="hero-tags">
            <span class="tag live"><span class="pulse-dot"></span>AGENT ACTIVE</span>
            <span class="tag">SELF-HOSTED</span>
            <span class="tag">$199 OTP</span>
          </div>
          <div class="hero-title">X-Connect</div>
          <p class="hero-sub">
            The AI engine that never sleeps — grow any X account on autopilot
            with human-quality, context-aware replies.
          </p>
          <div class="hero-stats">
            <div class="hero-stat" style="background:var(--bg3)">
              <div class="hero-stat-n">$199</div>
              <div class="hero-stat-l">One-Time</div>
            </div>
            <div class="hero-stat">
              <div class="hero-stat-n">7</div>
              <div class="hero-stat-l">AI Stages</div>
            </div>
            <div class="hero-stat" style="background:var(--bg3)">
              <div class="hero-stat-n">24/7</div>
              <div class="hero-stat-l">Always On</div>
            </div>
            <div class="hero-stat">
              <div class="hero-stat-n">∞</div>
              <div class="hero-stat-l">Accounts</div>
            </div>
          </div>
          <div class="hero-actions">
            <button class="btn-primary">GET STARTED — $199 →</button>
            <button class="btn-secondary" onclick="goTo(1)">See How It Works</button>
          </div>
        </div>

        <!-- Right: capability matrix -->
        <div class="cap-panel">
          <div class="cap-header">CAPABILITY MATRIX</div>
          <div class="cap-row"><span class="cap-key">AI pipeline</span><span class="cap-val">7-stage frontier LLM</span></div>
          <div class="cap-row"><span class="cap-key">License cost</span><span class="cap-val" style="color:var(--green)">$199 one-time</span></div>
          <div class="cap-row"><span class="cap-key">Infrastructure</span><span class="cap-val">Self-hosted VPS</span></div>
          <div class="cap-row"><span class="cap-key">Accounts</span><span class="cap-val">Unlimited isolation</span></div>
          <div class="cap-row"><span class="cap-key">X API usage</span><span class="cap-val" style="color:var(--green)">$0 — browser mode</span></div>
          <div class="cap-row"><span class="cap-key">Templates used</span><span class="cap-val">Zero — generated fresh</span></div>
          <div class="cap-row"><span class="cap-key">Typing simulation</span><span class="cap-val" style="color:var(--green)">Keyboard-level stealth</span></div>
          <div class="cap-row"><span class="cap-key">Reply pacing</span><span class="cap-val">Randomised delays</span></div>
          <div class="cap-cta">
            <button>BUY NOW — $199 <span>→</span></button>
          </div>
        </div>
      </div>

      <!-- Feature strip -->
      <div class="feature-strip">
        <div class="feature-chip" style="background:var(--ink);color:var(--bg2)">Stealth Design</div>
        <div class="feature-chip" style="background:var(--ink);color:var(--bg2)">7-Stage AI</div>
        <div class="feature-chip" style="background:var(--ink);color:var(--bg2)">$199 OTP</div>
        <div class="feature-chip" style="background:var(--bg2);color:var(--ink3)">Self-Hosted</div>
        <div class="feature-chip" style="background:var(--bg2);color:var(--ink3)">Multi-Account</div>
        <div class="feature-chip" style="background:var(--bg2);color:var(--ink3)">Browser Mode</div>
      </div>
    </div>
  </div>

  <!-- S1: PIPELINE ──────────────────────────────────────────── -->
  <div class="scene" id="s1">
    <div style="width:100%;max-width:1060px;padding:0 28px">
      <div class="card">
        <div class="section-header">
          <span class="section-num">02</span>
          <span class="section-sep">|</span>
          <span class="section-title">7-STAGE AI PIPELINE</span>
          <span class="section-sub">From raw tweet to posted reply — fully automated</span>
          <span class="section-status">● RUNNING NOW</span>
        </div>
        <div class="inner">
          <div class="pipe-grid" id="pipeGrid"></div>
          <div class="pipe-progress-wrap"><div id="pipeProgress"></div></div>
          <div class="term">
            <div class="term-dots">
              <span class="tdot" style="background:#FF605C"></span>
              <span class="tdot" style="background:#FFBD44"></span>
              <span class="tdot" style="background:#00CA4E"></span>
              <span style="margin-left:8px;color:rgba(255,255,255,.3);font-size:10px;letter-spacing:.1em">session.log</span>
            </div>
            <div id="pipeLogs" style="max-height:88px;overflow:hidden">
              <span class="log-waiting">Awaiting session<span style="animation:blink 1s infinite">_</span></span>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>

  <!-- S2: STEALTH & COST ─────────────────────────────────────── -->
  <div class="scene" id="s2">
    <div style="width:100%;max-width:1000px;padding:0 28px">
      <div class="two-col">

        <div class="card panel-top-ink">
          <div class="panel-heading">UNDETECTABLE BY DESIGN</div>
          <div style="padding:22px 22px 0">
            <div class="big-num">Stealth</div>
            <p class="panel-desc">
              Real browser. Human pacing. Every reply unique.<br>
              Keyboard simulation with randomised 2–720s delays.
            </p>
          </div>
          <div id="stealthRows" style="padding:0 22px 16px"></div>
        </div>

        <div class="card panel-top-green">
          <div class="panel-heading">REAL COST BREAKDOWN</div>
          <div style="padding:22px 22px 0">
            <div style="display:flex;align-items:flex-end;gap:8px;margin-bottom:6px">
              <span class="big-num big-num-green">$199</span>
              <div style="padding-bottom:10px">
                <div style="font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--green);text-transform:uppercase;font-weight:700">one-time</div>
                <div style="font-family:var(--mono);font-size:9px;color:var(--ink4);letter-spacing:.1em;text-decoration:line-through">was $299/mo</div>
              </div>
            </div>
            <p class="panel-desc">
              No subscription. Pay once, own it.<br>
              Optional $5/mo flex plan available.
            </p>
          </div>
          <div id="costRows" style="padding:0 22px 16px"></div>
        </div>

      </div>
    </div>
  </div>

  <!-- S3: PERFORMANCE ───────────────────────────────────────── -->
  <div class="scene" id="s3">
    <div style="width:100%;max-width:960px;padding:0 28px">
      <div class="card">
        <div class="section-header">
          <span class="section-num">04</span>
          <span class="section-sep">|</span>
          <span class="section-title">PERFORMANCE METRICS</span>
          <span class="section-sub">Across real client deployments</span>
          <span class="section-status">● DATA VERIFIED</span>
        </div>
        <div class="inner">
          <div class="perf-grid">
            <div class="perf-cell">
              <div class="perf-num" id="stat0" style="color:var(--ink5)">0%</div>
              <div class="perf-label">Engagement rate</div>
              <div class="perf-desc">Skip filter removes bait &amp; bots</div>
            </div>
            <div class="perf-cell">
              <div class="perf-num" id="stat1" style="color:var(--ink5)">0</div>
              <div class="perf-label">Unique replies/session</div>
              <div class="perf-desc">Generated fresh — zero templates</div>
            </div>
            <div class="perf-cell">
              <div class="perf-num" style="color:var(--ink3)">0</div>
              <div class="perf-label">Templates used</div>
              <div class="perf-desc">AI writes from scratch every time</div>
            </div>
            <div class="perf-cell">
              <div class="perf-num" style="color:var(--ink3)">7</div>
              <div class="perf-label">Pipeline stages</div>
              <div class="perf-desc">End-to-end quality verification</div>
            </div>
          </div>
          <div class="term">
            <div class="term-dots">
              <span class="tdot" style="background:#FF605C"></span>
              <span class="tdot" style="background:#FFBD44"></span>
              <span class="tdot" style="background:#00CA4E"></span>
              <span style="margin-left:8px;color:rgba(255,255,255,.3);font-size:10px;letter-spacing:.1em">session.log</span>
              <span id="perfCount" style="margin-left:auto;color:rgba(255,255,255,.2);font-size:9px">0/7 events</span>
            </div>
            <div id="perfLogs" style="max-height:96px;overflow:hidden">
              <span class="log-waiting">Awaiting session<span style="animation:blink 1s infinite">_</span></span>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>

  <!-- S4: COMPETITORS ───────────────────────────────────────── -->
  <div class="scene" id="s4">
    <div style="width:100%;max-width:1060px;padding:0 28px">
      <div class="card">
        <div class="section-header">
          <span class="section-num">05</span>
          <span class="section-sep">|</span>
          <span class="section-title">MARKET LANDSCAPE</span>
          <span class="section-sub">Nothing else combines all four — verified March 2025</span>
        </div>
        <div class="inner">
          <div class="comp-table">
            <div class="comp-head">
              <div class="comp-col">Tool</div>
              <div class="comp-col center">Price</div>
              <div class="comp-col center">Frontier AI</div>
              <div class="comp-col center">Auto-Engage</div>
              <div class="comp-col center">Stealth</div>
              <div class="comp-col center">One-Time</div>
            </div>
            <div id="compRows"></div>
          </div>
          <div style="font-family:var(--mono);font-size:9px;color:var(--ink5);letter-spacing:.1em;margin-bottom:12px">
            Sources: socialchamp.com · sproutsocial.com · tweetpeek.ai · northpennnow.com · ifttt.com
          </div>
          <div class="verdict-bar">
            <p><strong style="color:var(--ink);font-weight:700">Conclusion:</strong>
            X-Connect is the only tool combining frontier LLM auto-engagement, stealth operation, and a one-time price.</p>
          </div>
        </div>
      </div>
    </div>
  </div>

  <!-- S5: PRICING ───────────────────────────────────────────── -->
  <div class="scene" id="s5">
    <div style="width:100%;max-width:1040px;padding:0 28px">
      <div class="card">
        <div class="section-header">
          <span class="section-num">06</span>
          <span class="section-sep">|</span>
          <span class="section-title">PRICING &amp; VIABILITY</span>
          <span class="section-sub">Good economics — for both parties</span>
        </div>
        <div class="inner">
          <div class="pricing-grid" id="pricingGrid"></div>
          <div id="verdict" class="verdict-bar" style="opacity:0;transition:opacity .5s">
            <p><strong style="color:var(--ink);font-weight:700">Verdict:</strong>
            Customers save $400–$2,800/year vs subscription tools. At 50 clients you clear ~$10K upfront
            + ~$250/mo Flex MRR. High margin — only costs are LLM inference (~$1–2/client/day) and VPS (~$10/mo).</p>
          </div>
        </div>
      </div>
    </div>
  </div>

  <!-- S6: DEPLOY / CTA ──────────────────────────────────────── -->
  <div class="scene" id="s6">
    <div style="width:100%;max-width:820px;padding:0 28px">
      <div class="card" style="padding:48px">
        <div style="display:flex;align-items:center;gap:8px;margin-bottom:26px;flex-wrap:wrap;animation:fadeUp .6s .1s both">
          <span class="tag live"><span class="pulse-dot"></span>AGENT ACTIVE</span>
          <span class="tag">ONE-TIME PURCHASE</span>
          <span class="tag">SELF-HOSTED</span>
        </div>
        <div class="cta-headline" style="margin-bottom:8px;animation:fadeUp .6s .25s both">Grow on</div>
        <div class="cta-headline cta-headline-outline" style="margin-bottom:30px;animation:fadeUp .6s .3s both">autopilot.</div>
        <p style="font-family:var(--sans);font-size:15px;color:var(--ink3);line-height:1.75;max-width:460px;margin-bottom:32px;font-weight:400;animation:fadeUp .6s .4s both">
          Human-quality AI replies, stealth operation by design, running 24/7 on your infrastructure.
          Pay once — <strong style="color:var(--ink);font-weight:700">own it forever.</strong>
        </p>
        <div class="cta-stat-strip" style="animation:fadeUp .6s .5s both">
          <div class="cta-stat"><div class="cta-stat-n">$199</div><div class="cta-stat-l">One-Time</div></div>
          <div class="cta-stat"><div class="cta-stat-n">7</div><div class="cta-stat-l">AI Stages</div></div>
          <div class="cta-stat"><div class="cta-stat-n">24/7</div><div class="cta-stat-l">Always On</div></div>
          <div class="cta-stat"><div class="cta-stat-n">∞</div><div class="cta-stat-l">Accounts</div></div>
          <div class="cta-stat"><div class="cta-stat-n">$0</div><div class="cta-stat-l">API Cost</div></div>
        </div>
        <div style="display:flex;gap:10px;flex-wrap:wrap;animation:fadeUp .6s .6s both">
          <button class="btn-primary" style="font-size:12px;letter-spacing:.14em">GET X-CONNECT — $199 →</button>
          <button class="btn-secondary" onclick="goTo(0)" style="font-size:12px;letter-spacing:.12em">← Replay</button>
        </div>
      </div>
    </div>
  </div>

</div><!-- /scenes -->

<!-- ════ BOTTOM NAV ════════════════════════════════════════════ -->
<div class="bottom-nav">
  <button class="bot-btn" id="backBtn" onclick="goBack()"
    style="color:var(--ink5);background:none;border:1px solid var(--bd2)">← Back</button>
  <div class="dots" id="dotsContainer"></div>
  <div style="display:flex;align-items:center;gap:12px">
    <span id="navLabel" style="font-family:var(--mono);font-size:9.5px;color:var(--ink4);letter-spacing:.1em">1/7 · OVERVIEW</span>
    <button class="bot-btn" id="nextBtn" onclick="advance()"
      style="color:var(--bg2);background:var(--ink);border:1px solid var(--ink)">Next →</button>
  </div>
</div>

<!-- ════ SCRIPT ════════════════════════════════════════════════ -->
<script>
/* ── Data ──────────────────────────────────────────────────── */
const TOTAL  = 7;
const DURS   = [8000,9000,9000,9000,9500,10000,0];
const LABELS = ["Overview","Pipeline","Stealth & Cost","Performance","Competitors","Pricing","Deploy"];

const PIPE = [
  {num:"01",name:"Extract",  phase:"DATA",   desc:"Full tweet context — text, images, author metadata, engagement signals scraped cleanly."},
  {num:"02",name:"Classify", phase:"FILTER", desc:"AI decides: bait, genuine, or shill — zero wasted replies on low-signal posts."},
  {num:"03",name:"Enrich",   phase:"AUGMENT",desc:"Live news + on-chain data + AI vision on images woven in before writing."},
  {num:"04",name:"Generate", phase:"WRITE",  desc:"Frontier LLM crafts a unique contextual reply from scratch. No templates ever."},
  {num:"05",name:"Proofread",phase:"VERIFY", desc:"Second AI pass: grammar, tone, and factual accuracy verified against live data."},
  {num:"06",name:"Clean",    phase:"FORMAT", desc:"Strips tickers, fixes formatting, enforces brand-safety — polished output."},
  {num:"07",name:"Post",     phase:"DEPLOY", desc:"Keyboard simulation with randomised 2–720s delays — human-like pacing."}
];

const COMPS = [
  {nm:"Buffer",        pr:"$6/mo",    ai:"",             au:"",             st:"",  ot:""},
  {nm:"Hootsuite",     pr:"$99/mo",   ai:"Basic",        au:"",             st:"",  ot:""},
  {nm:"Hypefury",      pr:"$49/mo",   ai:"Templates",    au:"Limited",      st:"",  ot:""},
  {nm:"Tweet Hunter",  pr:"$49/mo",   ai:"Templates",    au:"Limited",      st:"",  ot:""},
  {nm:"Sprout Social", pr:"$249/mo",  ai:"Partial",      au:"",             st:"",  ot:""},
  {nm:"SocialPilot",   pr:"$30/mo",   ai:"Basic",        au:"",             st:"",  ot:""},
  {nm:"Drip",          pr:"$99/mo",   ai:"Basic",        au:"Limited",      st:"",  ot:""},
  {nm:"Bika.ai",       pr:"$30/mo",   ai:"Basic",        au:"Basic",        st:"",  ot:""},
  {nm:"X-Connect",     pr:"$199 OTP", ai:"Frontier LLM", au:"Full 7-Stage", st:"✓", ot:"✓", us:true}
];

const LOGS = [
  {ts:"14:32:01",tag:"INFO", col:"var(--ink4)",  msg:"Session started — 100 tweets queued"},
  {ts:"14:32:04",tag:"PASS", col:"var(--ink)",   msg:"Tweet #001 classified PASS (BTC macro take)"},
  {ts:"14:32:07",tag:"DATA", col:"var(--amber)", msg:"Enrichment — 3 headlines + Dune on-chain merged"},
  {ts:"14:32:09",tag:"OK",   col:"var(--green)", msg:"Reply generated (219 chars) — proofread ✓"},
  {ts:"14:32:11",tag:"POST", col:"var(--green)", msg:"Posted via keyboard sim, 340ms avg delay"},
  {ts:"14:32:41",tag:"SKIP", col:"var(--ink4)",  msg:"Tweet #002 — SKIP (bait score 0.12)"},
  {ts:"14:33:18",tag:"SHILL",col:"var(--amber)", msg:"Tweet #003 — SHILL opportunity queued (0.87)"}
];

const STEALTH = [
  {k:"Browser fingerprint", v:"Real Chrome profile",   c:"var(--green)"},
  {k:"Typing pattern",      v:"Keyboard simulation",   c:"var(--green)"},
  {k:"Reply quality",       v:"Unique every time",     c:"var(--ink)"},
  {k:"Action pacing",       v:"Randomised 2–720s",     c:"var(--ink)"},
  {k:"webdriver flag",      v:"Spoofed & clean",       c:"var(--green)"}
];

const COST = [
  {k:"Software license",  v:"$199 one-time",    c:"var(--green)"},
  {k:"X API credits",     v:"$0 — browser mode",c:"var(--green)"},
  {k:"AI model calls",    v:"~$0.50–2 / day",   c:"var(--ink)"},
  {k:"Hosting (VPS)",     v:"$5–20 / month",    c:"var(--ink)"},
  {k:"Competitors avg",   v:"$99–$299 / mo",    c:"rgba(185,28,28,.7)", st:true}
];

/* ── State ─────────────────────────────────────────────────── */
let sc = 0, secs = 0, timer = null, sceneTimers = [];

/* ── Dots ──────────────────────────────────────────────────── */
function initDots() {
  const c = document.getElementById("dotsContainer");
  c.innerHTML = "";
  for (let i = 0; i < TOTAL; i++) {
    const d = document.createElement("button");
    d.className = "dot" + (i === sc ? " active" : "");
    d.onclick = () => goTo(i);
    c.appendChild(d);
  }
}

/* ── UI Sync ───────────────────────────────────────────────── */
function updateUI() {
  document.querySelectorAll(".nav-btn").forEach((b,i) => b.className = "nav-btn" + (i===sc?" active":""));
  document.querySelectorAll(".scene").forEach((s,i) => s.className = "scene" + (i===sc?" active":""));
  document.querySelectorAll(".dot").forEach((d,i) => d.className = "dot" + (i===sc?" active":""));
  document.getElementById("navLabel").textContent = (sc+1) + "/" + TOTAL + " · " + LABELS[sc].toUpperCase();
  const bb = document.getElementById("backBtn");
  bb.style.color = sc === 0 ? "var(--ink5)" : "var(--ink3)";
  const nb = document.getElementById("nextBtn");
  if (sc === TOTAL - 1) {
    nb.style.cssText = "background:transparent;color:var(--ink5);border:1px solid var(--bd2);padding:8px 16px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;";
  } else {
    nb.style.cssText = "background:var(--ink);color:var(--bg2);border:1px solid var(--ink);padding:8px 16px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;";
  }
  startTimer();
  runSceneAnim();
}

function startTimer() {
  const bar = document.getElementById("timerBar");
  bar.style.animation = "none";
  bar.offsetHeight; // reflow
  if (DURS[sc] > 0) {
    bar.style.animation = "timerW " + DURS[sc] + "ms linear forwards";
    if (timer) clearTimeout(timer);
    timer = setTimeout(advance, DURS[sc]);
  } else {
    bar.style.width = "0%";
  }
}

function goTo(i)   { sc = i; clearSceneTimers(); updateUI(); }
function advance() { if (sc < TOTAL-1) { sc++; clearSceneTimers(); updateUI(); } }
function goBack()  { if (sc > 0)       { sc--; clearSceneTimers(); updateUI(); } }
function clearSceneTimers() { sceneTimers.forEach(t => clearTimeout(t)); sceneTimers = []; }

/* ── Helpers ───────────────────────────────────────────────── */
function makeInfoRow(k, v, c, st) {
  const row = document.createElement("div");
  row.className = "info-row";
  row.innerHTML = `<span class="info-row-key">${k}</span>
    <span class="info-row-val" style="color:${c};${st?"text-decoration:line-through":""}">${v}</span>`;
  return row;
}

function animCounter(el, to, suf, dur) {
  let start = null;
  const step = ts => {
    if (!start) start = ts;
    const p = Math.min((ts - start) / dur, 1);
    el.textContent = Math.round((1 - Math.pow(1-p, 3)) * to) + suf;
    el.style.color = to > 0 ? "var(--ink)" : "var(--ink3)";
    if (p < 1) requestAnimationFrame(step);
  };
  requestAnimationFrame(step);
}

/* ── Scene Animations ──────────────────────────────────────── */
function runSceneAnim() {
  if (sc === 1) buildPipeline();
  if (sc === 2) buildStealth();
  if (sc === 3) buildPerf();
  if (sc === 4) buildComps();
  if (sc === 5) buildPricing();
}

function buildPipeline() {
  const g = document.getElementById("pipeGrid");
  g.innerHTML = "";
  PIPE.forEach((s, i) => {
    const d = document.createElement("div");
    d.id = "pipe" + i;
    d.style.cssText = "background:var(--bg3);padding:18px 14px;position:relative;border-top:2px solid var(--bd);transition:all .4s";
    d.innerHTML = `
      <div id="pipeDot${i}" style="position:absolute;top:-5px;left:14px;width:8px;height:8px;border-radius:50%;background:var(--bg3);border:1px solid var(--bd2);transition:all .4s"></div>
      <div id="pipeLabel${i}" style="font-family:var(--mono);font-size:8px;letter-spacing:.18em;color:var(--ink5);margin-bottom:8px;text-transform:uppercase;transition:color .3s">${s.num} · ${s.phase}</div>
      <div id="pipeName${i}"  style="font-family:var(--disp);font-weight:800;font-size:13px;color:var(--ink4);margin-bottom:5px;transition:color .3s">${s.name}</div>
      <div id="pipeDesc${i}"  style="font-family:var(--sans);font-size:10px;color:var(--ink5);line-height:1.6;font-weight:500;transition:color .3s">${s.desc}</div>`;
    g.appendChild(d);
  });

  const logs = document.getElementById("pipeLogs");
  logs.innerHTML = '<span class="log-waiting">Awaiting session<span style="animation:blink 1s infinite">_</span></span>';
  document.getElementById("pipeProgress").style.width = "0%";

  PIPE.forEach((_, i) => {
    sceneTimers.push(setTimeout(() => lightPipe(i), 400 + i * 600));
  });
  sceneTimers.push(setTimeout(() => lightPipe(99), 400 + PIPE.length * 600 + 400));
}

function lightPipe(idx) {
  PIPE.forEach((_, i) => {
    const on = idx === 99 || idx >= i;
    const green = i >= 5;
    document.getElementById("pipe"      + i).style.background    = on ? "var(--bg2)" : "var(--bg3)";
    document.getElementById("pipe"      + i).style.borderTopColor= on ? (green ? "var(--green)" : "var(--ink)") : "var(--bd)";
    document.getElementById("pipeDot"   + i).style.background    = on ? (green ? "var(--green)" : "var(--ink)") : "var(--bg3)";
    document.getElementById("pipeDot"   + i).style.borderColor   = on ? (green ? "var(--green)" : "var(--ink)") : "var(--bd2)";
    document.getElementById("pipeLabel" + i).style.color         = on ? (green ? "var(--green)" : "var(--ink3)") : "var(--ink5)";
    document.getElementById("pipeName"  + i).style.color         = on ? "var(--ink)"  : "var(--ink4)";
    document.getElementById("pipeDesc"  + i).style.color         = on ? "var(--ink3)" : "var(--ink5)";
  });
  const pct = idx === 99 ? 100 : idx < 0 ? 0 : (idx + 1) / PIPE.length * 100;
  document.getElementById("pipeProgress").style.width = pct + "%";
  if (idx >= 0 && idx !== 99 && idx < PIPE.length) {
    const s = PIPE[idx];
    const logs = document.getElementById("pipeLogs");
    if (idx === 0) logs.innerHTML = "";
    const green = idx >= 5;
    logs.innerHTML += `<div class="log-line">
      <span style="color:rgba(255,255,255,.28);min-width:20px">${s.num}</span>
      <span style="color:${green?"var(--greenhl)":"rgba(255,255,255,.5)"};min-width:58px;text-transform:uppercase;letter-spacing:.08em">[${s.phase}]</span>
      <span style="color:rgba(255,255,255,.55)">${s.name} — ${s.desc.slice(0,55)}</span>
    </div>`;
  }
}

function buildStealth() {
  const sr = document.getElementById("stealthRows");
  const cr = document.getElementById("costRows");
  sr.innerHTML = ""; cr.innerHTML = "";

  STEALTH.forEach((r, i) => {
    const row = makeInfoRow(r.k, r.v, r.c, false);
    sr.appendChild(row);
    sceneTimers.push(setTimeout(() => { row.style.opacity = 1; row.style.transform = "translateY(0)"; }, 250 + i * 100));
  });
  COST.forEach((r, i) => {
    const row = makeInfoRow(r.k, r.v, r.c, r.st);
    cr.appendChild(row);
    sceneTimers.push(setTimeout(() => { row.style.opacity = 1; row.style.transform = "translateY(0)"; }, 800 + i * 100));
  });
}

function buildPerf() {
  animCounter(document.getElementById("stat0"), 85, "%", 1200);
  animCounter(document.getElementById("stat1"), 75, "",  1200);
  const pl = document.getElementById("perfLogs");
  pl.innerHTML = '<span class="log-waiting">Awaiting session<span style="animation:blink 1s infinite">_</span></span>';
  let count = 0;
  LOGS.forEach((l, i) => {
    sceneTimers.push(setTimeout(() => {
      if (i === 0) pl.innerHTML = "";
      count++;
      document.getElementById("perfCount").textContent = count + "/" + LOGS.length + " events";
      pl.innerHTML += `<div class="log-line">
        <span style="color:rgba(255,255,255,.25);min-width:52px;flex-shrink:0">${l.ts}</span>
        <span style="color:${l.col};flex-shrink:0;min-width:50px;text-transform:uppercase;letter-spacing:.08em">[${l.tag}]</span>
        <span style="color:rgba(255,255,255,.55)">${l.msg}</span>
      </div>`;
    }, 400 + i * 520));
  });
}

function buildComps() {
  const cr = document.getElementById("compRows");
  cr.innerHTML = "";
  const cols = "1.8fr 1fr 1.2fr 1.2fr .8fr .8fr";
  const tick = (v, us) =>
    v === "✓" ? `<span style="color:var(--green);font-weight:700">✓</span>` :
    v === ""   ? `<span style="color:rgba(185,28,28,.5)">✗</span>` :
    `<span style="font-family:var(--mono);font-size:9.5px;color:${us?"var(--ink)":"var(--amber)"};font-weight:600">${v}</span>`;

  COMPS.forEach((c, i) => {
    const row = document.createElement("div");
    row.style.cssText = `display:grid;grid-template-columns:${cols};background:${c.us?"rgba(10,122,62,.04)":(i%2===0?"var(--bg2)":"var(--bg3)")};border-bottom:1px solid var(--bd);opacity:0;transition:opacity .3s;border-left:${c.us?"3px solid var(--green)":"3px solid transparent"}`;
    row.innerHTML = `
      <div style="padding:10px 14px;display:flex;align-items:center;gap:7px;border-right:1px solid var(--bd)">
        ${c.us?'<span style="width:5px;height:5px;border-radius:50%;background:var(--green);display:inline-block;flex-shrink:0"></span>':""}
        <span style="font-family:var(--sans);font-size:12.5px;color:${c.us?"var(--ink)":"var(--ink2)"};font-weight:${c.us?700:500}">${c.nm}</span>
      </div>
      <div style="padding:10px 14px;text-align:center;border-right:1px solid var(--bd)">
        <span style="font-family:var(--mono);font-size:11px;color:${c.us?"var(--green)":"var(--ink3)"};font-weight:${c.us?700:500}">${c.pr}</span>
      </div>
      <div style="padding:10px 14px;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--bd)">${tick(c.ai,c.us)}</div>
      <div style="padding:10px 14px;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--bd)">${tick(c.au,c.us)}</div>
      <div style="padding:10px 14px;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--bd)">${tick(c.st,c.us)}</div>
      <div style="padding:10px 14px;display:flex;align-items:center;justify-content:center">${tick(c.ot,c.us)}</div>`;
    cr.appendChild(row);
    sceneTimers.push(setTimeout(() => row.style.opacity = 1, 80 + i * 80));
  });
}

function buildPricing() {
  const g = document.getElementById("pricingGrid");
  g.innerHTML = "";
  const plans = [
    { nm:"Lifetime", pr:"$199", sub:"one-time",            acc:"var(--ink)", note:"BEST VALUE",        feats:["All 3 pipeline modes","Multi-account isolation","Lifetime updates (opt-in)","Community & docs"] },
    { nm:"Flex",     pr:"$5",   sub:"per month",            acc:"var(--amber)",note:"BUDGET-FRIENDLY",  feats:["Full feature parity","Cancel anytime","~40 mo to own","No lock-in"] },
    { nm:"Pro+",     pr:"$199", sub:"+ $29/mo maintenance", acc:"var(--green)",note:"BEST SUPPORT",     feats:["Lifetime license","Priority bug fixes","Model upgrades","Dedicated channel"] }
  ];

  plans.forEach((p, i) => {
    const d = document.createElement("div");
    d.className = "plan-card";
    d.style.borderTopColor = p.acc;
    d.innerHTML = `
      <div class="plan-note" style="color:${p.acc}">${p.note}</div>
      <div class="plan-name">${p.nm}</div>
      <div class="plan-price" style="color:${p.acc}">${p.pr}</div>
      <div class="plan-sub">${p.sub}</div>
      <div class="plan-divider"></div>
      <div class="plan-feats">${p.feats.map(f => `
        <div class="plan-feat">
          <span class="plan-feat-check" style="color:${p.acc}">✓</span>
          <span class="plan-feat-text">${f}</span>
        </div>`).join("")}
      </div>`;
    g.appendChild(d);
    sceneTimers.push(setTimeout(() => { d.style.opacity = 1; d.style.transform = "translateY(0)"; }, 120 + i * 85));
  });

  // Revenue panel
  const rv = document.createElement("div");
  rv.style.cssText = "background:var(--bg3);border:1px solid var(--bd2);padding:20px 18px;opacity:0;transition:all .4s .35s";
  const biz = [
    {l:"Break-even (10 clients)",   v:"$1,990"},
    {l:"Revenue at 100 clients",    v:"$19,900"},
    {l:"Flex MRR at 100 clients",   v:"$500/mo"},
    {l:"Cost to serve / client",    v:"~$5/mo"}
  ];
  const sav = [
    {l:"vs Sprout Social (1yr)",   v:"+$2,789"},
    {l:"vs Hypefury (1yr)",        v:"+$389"},
    {l:"vs Tweet Hunter (1yr)",    v:"+$389"},
    {l:"vs avg competitor (1yr)",  v:"+$1,200"}
  ];
  rv.innerHTML = `
    <div style="font-family:var(--mono);font-size:9px;letter-spacing:.16em;color:var(--green);text-transform:uppercase;margin-bottom:12px;font-weight:700">YOUR REVENUE</div>
    ${biz.map((m,i) => `<div id="biz${i}" style="display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--bd);opacity:0;transition:opacity .3s">
      <span style="font-family:var(--sans);font-size:10.5px;color:var(--ink3);font-weight:500">${m.l}</span>
      <span style="font-family:var(--mono);font-size:11px;color:var(--green);font-weight:700">${m.v}</span>
    </div>`).join("")}
    <div style="font-family:var(--mono);font-size:9px;letter-spacing:.16em;color:var(--ink3);text-transform:uppercase;margin:12px 0 8px;font-weight:700">CUSTOMER SAVINGS</div>
    ${sav.map((s,i) => `<div id="sav${i}" style="display:flex;justify-content:space-between;align-items:center;padding:4px 0;opacity:0;transition:opacity .3s">
      <span style="font-family:var(--sans);font-size:10.5px;color:var(--ink3);font-weight:500">${s.l}</span>
      <span style="font-family:var(--mono);font-size:11px;color:var(--ink);font-weight:700">${s.v}</span>
    </div>`).join("")}`;
  g.appendChild(rv);

  sceneTimers.push(setTimeout(() => rv.style.opacity = 1, 400));
  biz.forEach((_, i) => sceneTimers.push(setTimeout(() => document.getElementById("biz"+i).style.opacity = 1, 500 + i * 85)));
  sav.forEach((_, i) => sceneTimers.push(setTimeout(() => document.getElementById("sav"+i).style.opacity = 1, 900 + i * 65)));
  sceneTimers.push(setTimeout(() => document.getElementById("verdict").style.opacity = 1, 1400));
}

/* ── Clock ─────────────────────────────────────────────────── */
setInterval(() => {
  secs++;
  const mm = String(Math.floor(secs / 60)).padStart(2, "0");
  const ss = String(secs % 60).padStart(2, "0");
  document.getElementById("clock").textContent = mm + ":" + ss;
}, 1000);

/* ── Keyboard ──────────────────────────────────────────────── */
document.addEventListener("keydown", e => {
  if (e.key === "ArrowRight" || e.key === " ") { e.preventDefault(); advance(); }
  if (e.key === "ArrowLeft")                    { e.preventDefault(); goBack(); }
});

/* ── Init ──────────────────────────────────────────────────── */
initDots();
updateUI();
</script>
</body>
</html>