// Viewer Seats, Unlimited
// Story arc: legacy CLM caps seats → invite EVERYONE on ContractControl → live engagement → audit captures everything → faster, accountable decisions

function ViewerSeatsAnim() {
  const STAGES = [
    "capped",     // 0  Legacy: 5 paid seats, request queue
    "switch",     // 1  Switch / unlock unlimited
    "invite",     // 2  Invite all 27 stakeholders
    "live",       // 3  Real-time engagement
    "audit",      // 4  Audit trail captures every view + comment
  ];
  const [stage, setStage] = React.useState(0);
  React.useEffect(() => {
    const t = setTimeout(() => setStage((stage + 1) % STAGES.length), 2700);
    return () => clearTimeout(t);
  }, [stage]);

  const eq = (s) => stage === STAGES.indexOf(s);
  const at = (s) => stage >= STAGES.indexOf(s);

  // Roster of people; 5 paid in legacy, all 27 invited in CC
  const roster = [
    { n: "AL", name: "Anna L.",   role: "Legal",       grad: "linear-gradient(135deg,#C7B4FF,#7C5CD3)" },
    { n: "JN", name: "Jonas N.",  role: "Legal",       grad: "linear-gradient(135deg,#C7B4FF,#7C5CD3)" },
    { n: "MK", name: "Mira K.",   role: "Sales AE",    grad: "linear-gradient(135deg,#FCD7C6,#B65532)" },
    { n: "SH", name: "Sofia H.",  role: "Sales AE",    grad: "linear-gradient(135deg,#FCD7C6,#B65532)" },
    { n: "TB", name: "Tomas B.",  role: "Finance",     grad: "linear-gradient(135deg,#B7E4C7,#1F8A4C)" },
    { n: "EW", name: "Erik W.",   role: "Procurement", grad: "linear-gradient(135deg,#FFE4A8,#C18B2C)" },
    { n: "LA", name: "Lina A.",   role: "Sales lead",  grad: "linear-gradient(135deg,#FCD7C6,#B65532)" },
    { n: "NK", name: "Noa K.",    role: "Ops",         grad: "linear-gradient(135deg,#C8DBFF,#3656B5)" },
    { n: "PE", name: "Petra E.",  role: "CFO",         grad: "linear-gradient(135deg,#B7E4C7,#1F8A4C)" },
    { n: "RD", name: "Ravi D.",   role: "Counsel",     grad: "linear-gradient(135deg,#C7B4FF,#7C5CD3)" },
    { n: "AS", name: "Astrid S.", role: "Exec",        grad: "linear-gradient(135deg,#E5D3FF,#5A3FA8)" },
    { n: "OK", name: "Olov K.",   role: "Sales eng",   grad: "linear-gradient(135deg,#FCD7C6,#B65532)" },
    { n: "VH", name: "Vera H.",   role: "Customer",    grad: "linear-gradient(135deg,#D9D9D9,#7A7A7A)" },
    { n: "HM", name: "Henrik M.", role: "Ops",         grad: "linear-gradient(135deg,#C8DBFF,#3656B5)" },
    { n: "IB", name: "Iben B.",   role: "Sales AE",    grad: "linear-gradient(135deg,#FCD7C6,#B65532)" },
    { n: "GO", name: "Gunnar O.", role: "Auditor",     grad: "linear-gradient(135deg,#D9D9D9,#7A7A7A)" },
  ];

  return (
    <div style={{
      width: "100%", maxWidth: 580, height: 560,
      background: "var(--bg-elevated)",
      border: "1px solid var(--line)",
      borderRadius: 20,
      boxShadow: "0 30px 60px -20px rgba(14,14,16,0.18), 0 8px 16px -8px rgba(14,14,16,0.05)",
      overflow: "hidden",
      position: "relative",
      display: "flex", flexDirection: "column",
    }}>
      {/* Top chrome */}
      <div style={{ display: "flex", alignItems: "center", gap: 10, padding: "12px 16px", borderBottom: "1px solid var(--line)", background: "var(--bg-soft)" }}>
        <span style={{ width: 30, height: 30, borderRadius: 8, background: "var(--accent-soft)", color: "var(--accent)", display: "grid", placeItems: "center" }}>
          <Icon name="review" size={14} />
        </span>
        <div style={{ flex: 1, fontSize: 13, fontWeight: 500 }}>
          MSA · Northwind × Brevia
          <div style={{ fontSize: 10.5, color: "var(--ink-4)", fontWeight: 400 }}>
            {eq("capped") ? "Legacy CLM · 5 paid seats" : "ContractControl · unlimited viewers"}
          </div>
        </div>
        <span style={{
          fontSize: 10.5, fontFamily: "var(--font-mono)",
          padding: "3px 9px", borderRadius: 999,
          background: eq("capped") ? "rgba(196,84,53,0.10)" : (at("audit") ? "rgba(31,138,76,0.10)" : "var(--accent-soft)"),
          color: eq("capped") ? "#C45435" : (at("audit") ? "var(--success)" : "var(--accent)"),
          border: "1px solid " + (eq("capped") ? "rgba(196,84,53,0.20)" : (at("audit") ? "rgba(31,138,76,0.20)" : "rgba(110,86,207,0.20)")),
          transition: "all 280ms ease",
        }}>
          {eq("capped") ? "Seat limit hit" : at("audit") ? "Auditable" : "Unlimited"}
        </span>
      </div>

      {/* Main canvas */}
      <div style={{ position: "relative", flex: 1, overflow: "hidden" }}>

        {/* === STAGE 0: capped === */}
        {eq("capped") && (
          <div style={{ position: "absolute", inset: 0, padding: 18, display: "flex", flexDirection: "column", gap: 14, animation: "stageIn 360ms cubic-bezier(0.2,0.8,0.2,1)" }}>
            <div style={{ background: "var(--bg-soft)", border: "1px solid var(--line)", borderRadius: 12, padding: 14 }}>
              <div style={{ display: "flex", alignItems: "center", justifyContent: "space-between", marginBottom: 12 }}>
                <div style={{ fontSize: 10, fontWeight: 500, letterSpacing: "0.14em", textTransform: "uppercase", color: "var(--ink-4)" }}>Paid seats · 5 of 5</div>
                <div style={{ fontSize: 10, fontFamily: "var(--font-mono)", color: "#C45435" }}>FULL</div>
              </div>
              <div style={{ display: "flex", gap: 8 }}>
                {roster.slice(0, 5).map((p) => (
                  <div key={p.n} style={{ display: "flex", flexDirection: "column", alignItems: "center", gap: 6 }}>
                    <span style={{ width: 36, height: 36, borderRadius: "50%", background: p.grad, color: "white", display: "grid", placeItems: "center", fontSize: 11, fontWeight: 500, fontFamily: "var(--font-mono)" }}>{p.n}</span>
                    <span style={{ fontSize: 9.5, color: "var(--ink-4)" }}>{p.role.split(" ")[0]}</span>
                  </div>
                ))}
              </div>
            </div>

            <div style={{ background: "var(--bg)", border: "1px solid var(--line)", borderRadius: 12, padding: 14, flex: 1, display: "flex", flexDirection: "column" }}>
              <div style={{ display: "flex", alignItems: "center", justifyContent: "space-between", marginBottom: 10 }}>
                <div style={{ fontSize: 10, fontWeight: 500, letterSpacing: "0.14em", textTransform: "uppercase", color: "var(--ink-4)" }}>Access requests · waiting</div>
                <div style={{ fontSize: 10, fontFamily: "var(--font-mono)", color: "var(--ink-4)" }}>22 PENDING</div>
              </div>
              <div style={{ display: "flex", flexDirection: "column", gap: 6, flex: 1, overflow: "hidden" }}>
                {[
                  { who: "Mira K. · Sales AE",   why: "Needs the redline before customer call",   age: "12m" },
                  { who: "Tomas B. · Finance",   why: "Reviewing payment terms",                  age: "1h"  },
                  { who: "Petra E. · CFO",       why: "Sign-off on cap on liability",             age: "2h"  },
                  { who: "Erik W. · Procurement",why: "Cross-checking against parent agreement",  age: "3h"  },
                  { who: "Astrid S. · Exec",     why: "Status update for board pre-read",         age: "4h"  },
                ].map((r, i) => (
                  <div key={i} style={{ display: "grid", gridTemplateColumns: "1fr auto auto", gap: 10, alignItems: "center", padding: "7px 10px", background: "var(--bg-soft)", border: "1px solid var(--line)", borderRadius: 6, fontSize: 11 }}>
                    <div>
                      <div style={{ fontWeight: 500, color: "var(--ink-1)" }}>{r.who}</div>
                      <div style={{ fontSize: 10, color: "var(--ink-4)", marginTop: 1 }}>{r.why}</div>
                    </div>
                    <span style={{ fontSize: 10, fontFamily: "var(--font-mono)", color: "var(--ink-4)" }}>{r.age}</span>
                    <span className="tag" style={{ height: 18, fontSize: 9, padding: "0 6px", background: "rgba(196,84,53,0.08)", borderColor: "rgba(196,84,53,0.20)", color: "#C45435" }}>SEAT?</span>
                  </div>
                ))}
              </div>
              <div style={{ marginTop: 10, paddingTop: 10, borderTop: "1px dashed var(--line)", display: "flex", justifyContent: "space-between", fontSize: 10.5, fontFamily: "var(--font-mono)", color: "#C45435", letterSpacing: "0.10em" }}>
                <span>EXTRA SEAT · €240 / MONTH</span>
                <span>OR · WAIT</span>
              </div>
            </div>
          </div>
        )}

        {/* === STAGE 1: switch, animated unlock === */}
        {eq("switch") && (
          <div style={{ position: "absolute", inset: 0, display: "grid", placeItems: "center", padding: 18, animation: "stageIn 360ms cubic-bezier(0.2,0.8,0.2,1)" }}>
            <div style={{ textAlign: "center", maxWidth: 360 }}>
              <div style={{ width: 56, height: 56, borderRadius: "50%", background: "var(--accent-soft)", color: "var(--accent)", display: "grid", placeItems: "center", margin: "0 auto 14px", animation: "pop 380ms cubic-bezier(0.2,0.8,0.2,1)" }}>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"><rect x="3" y="11" width="18" height="11" rx="2"/><path d="M7 11V8a5 5 0 0 1 9-3"/></svg>
              </div>
              <div style={{ fontSize: 18, fontWeight: 500, letterSpacing: "-0.01em", marginBottom: 8 }}>Seat limit removed.</div>
              <div style={{ fontSize: 13, color: "var(--ink-3)", lineHeight: 1.55 }}>
                Add every stakeholder, colleagues, customers, auditors, at <em style={{ fontFamily: "var(--font-serif)", color: "var(--accent)" }}>zero extra cost</em>.
              </div>
              <div style={{ marginTop: 20, padding: "10px 14px", background: "var(--bg-soft)", border: "1px solid var(--line)", borderRadius: 8, fontSize: 11, fontFamily: "var(--font-mono)", color: "var(--ink-4)", letterSpacing: "0.08em", display: "inline-flex", gap: 12 }}>
                <span style={{ color: "#C45435", textDecoration: "line-through" }}>5 / 5 SEATS</span>
                <span style={{ color: "var(--accent)" }}>→ ∞ VIEWERS</span>
              </div>
            </div>
          </div>
        )}

        {/* === STAGE 2: invite, avatars cascade in === */}
        {eq("invite") && (
          <div style={{ position: "absolute", inset: 0, padding: 18, display: "flex", flexDirection: "column", animation: "stageIn 360ms cubic-bezier(0.2,0.8,0.2,1)" }}>
            <div style={{ display: "flex", alignItems: "center", justifyContent: "space-between", marginBottom: 12 }}>
              <div style={{ fontSize: 10, fontWeight: 500, letterSpacing: "0.14em", textTransform: "uppercase", color: "var(--ink-4)" }}>Invite stakeholders</div>
              <div style={{ fontSize: 10, fontFamily: "var(--font-mono)", color: "var(--accent)" }}>+ 27 VIEWERS · €0</div>
            </div>
            <div style={{ flex: 1, background: "var(--bg-soft)", border: "1px solid var(--line)", borderRadius: 12, padding: 16, position: "relative", overflow: "hidden" }}>
              <div style={{ display: "grid", gridTemplateColumns: "repeat(8, 1fr)", gap: 8 }}>
                {roster.map((p, i) => (
                  <div key={p.n} style={{
                    display: "flex", flexDirection: "column", alignItems: "center", gap: 4,
                    animation: `popIn 420ms cubic-bezier(0.2,0.8,0.2,1) ${i * 55}ms backwards`,
                  }}>
                    <span style={{ width: 32, height: 32, borderRadius: "50%", background: p.grad, color: "white", display: "grid", placeItems: "center", fontSize: 10, fontWeight: 500, fontFamily: "var(--font-mono)", boxShadow: "0 2px 6px -2px rgba(14,14,16,0.20)" }}>{p.n}</span>
                  </div>
                ))}
                {/* +11 more bubble */}
                <div style={{ display: "flex", flexDirection: "column", alignItems: "center", gap: 4, animation: "popIn 420ms cubic-bezier(0.2,0.8,0.2,1) 900ms backwards" }}>
                  <span style={{ width: 32, height: 32, borderRadius: "50%", background: "var(--bg)", border: "1px dashed var(--line-strong)", color: "var(--ink-3)", display: "grid", placeItems: "center", fontSize: 9.5, fontWeight: 500, fontFamily: "var(--font-mono)" }}>+11</span>
                </div>
              </div>
              <div style={{ marginTop: 14, paddingTop: 14, borderTop: "1px solid var(--line)", display: "flex", flexDirection: "column", gap: 6, fontSize: 11 }}>
                {[
                  { l: "Internal", v: "16 colleagues · 6 teams" },
                  { l: "External", v: "8 customer counsel · 3 auditors" },
                  { l: "Cost",     v: "€0, included in plan", accent: true },
                ].map((r) => (
                  <div key={r.l} style={{ display: "flex", justifyContent: "space-between" }}>
                    <span style={{ color: "var(--ink-4)" }}>{r.l}</span>
                    <span style={{ color: r.accent ? "var(--accent)" : "var(--ink-1)", fontWeight: 500 }}>{r.v}</span>
                  </div>
                ))}
              </div>
            </div>
          </div>
        )}

        {/* === STAGE 3: live engagement === */}
        {eq("live") && (
          <div style={{ position: "absolute", inset: 0, padding: 18, display: "grid", gridTemplateColumns: "1.2fr 1fr", gap: 12, animation: "stageIn 360ms cubic-bezier(0.2,0.8,0.2,1)" }}>
            {/* Left: doc with comment pins */}
            <div style={{ background: "var(--bg)", border: "1px solid var(--line)", borderRadius: 12, padding: "14px 14px 12px", position: "relative", overflow: "hidden" }}>
              <div style={{ fontSize: 9.5, fontFamily: "var(--font-mono)", color: "var(--ink-4)", letterSpacing: "0.12em" }}>§4 · LIABILITY</div>
              <div style={{ fontSize: 12.5, fontWeight: 500, marginTop: 4, color: "var(--ink-1)" }}>Cap on indirect damages</div>
              <div style={{ marginTop: 12, display: "flex", flexDirection: "column", gap: 5 }}>
                {[100, 92, 96, 70, 88, 82, 100, 60, 90, 76, 86, 70, 92, 84].map((w, i) => (
                  <div key={i} style={{ height: 3, width: w + "%", background: "var(--line)", borderRadius: 2 }} />
                ))}
              </div>
              {/* Comment pins */}
              {[
                { top: 60,  left: 78, n: "MK", grad: "linear-gradient(135deg,#FCD7C6,#B65532)", label: "Mira · Sales", q: "Can we cap at 12-mo fees?" },
                { top: 110, left: 64, n: "PE", grad: "linear-gradient(135deg,#B7E4C7,#1F8A4C)", label: "Petra · CFO",  q: "OK if mutual." },
                { top: 156, left: 48, n: "RD", grad: "linear-gradient(135deg,#C7B4FF,#7C5CD3)", label: "Ravi · Counsel", q: "Aligned to playbook." },
              ].map((p, i) => (
                <div key={i} style={{
                  position: "absolute", top: p.top, left: p.left,
                  display: "flex", alignItems: "center", gap: 6,
                  animation: `popIn 420ms cubic-bezier(0.2,0.8,0.2,1) ${i * 380}ms backwards`,
                }}>
                  <span style={{ width: 22, height: 22, borderRadius: "50%", background: p.grad, color: "white", display: "grid", placeItems: "center", fontSize: 9, fontWeight: 500, fontFamily: "var(--font-mono)", border: "2px solid var(--bg-elevated)", boxShadow: "0 4px 8px -2px rgba(14,14,16,0.20)" }}>{p.n}</span>
                  <div style={{ background: "var(--ink-1)", color: "white", borderRadius: 6, padding: "4px 8px", fontSize: 9.5, whiteSpace: "nowrap", maxWidth: 140 }}>
                    <div style={{ fontFamily: "var(--font-mono)", fontSize: 8, opacity: 0.7, letterSpacing: "0.08em" }}>{p.label}</div>
                    <div style={{ marginTop: 1 }}>{p.q}</div>
                  </div>
                </div>
              ))}
            </div>

            {/* Right: live presence */}
            <div style={{ background: "var(--bg-soft)", border: "1px solid var(--line)", borderRadius: 12, padding: 14, display: "flex", flexDirection: "column" }}>
              <div style={{ display: "flex", alignItems: "center", gap: 6, marginBottom: 10 }}>
                <span style={{ width: 6, height: 6, borderRadius: "50%", background: "#7CC58A", animation: "pulse 1.4s ease-in-out infinite" }} />
                <div style={{ fontSize: 10, fontWeight: 500, letterSpacing: "0.14em", textTransform: "uppercase", color: "var(--ink-4)" }}>Live now · 9</div>
              </div>
              <div style={{ display: "flex", flexDirection: "column", gap: 6, fontSize: 10.5 }}>
                {[
                  { n: "MK", a: "commented on §4.2",   t: "now",  grad: "linear-gradient(135deg,#FCD7C6,#B65532)" },
                  { n: "PE", a: "approved §4.2",       t: "now",  grad: "linear-gradient(135deg,#B7E4C7,#1F8A4C)" },
                  { n: "TB", a: "viewing §6 payment",  t: "1m",   grad: "linear-gradient(135deg,#B7E4C7,#1F8A4C)" },
                  { n: "AS", a: "viewing summary",     t: "1m",   grad: "linear-gradient(135deg,#E5D3FF,#5A3FA8)" },
                  { n: "EW", a: "added a question",    t: "2m",   grad: "linear-gradient(135deg,#FFE4A8,#C18B2C)" },
                  { n: "RD", a: "approved §4",         t: "2m",   grad: "linear-gradient(135deg,#C7B4FF,#7C5CD3)" },
                ].map((r, i) => (
                  <div key={i} style={{ display: "grid", gridTemplateColumns: "20px 1fr auto", gap: 6, alignItems: "center", animation: `slideUp 320ms ease ${i * 60}ms backwards` }}>
                    <span style={{ width: 18, height: 18, borderRadius: "50%", background: r.grad, color: "white", display: "grid", placeItems: "center", fontSize: 8, fontWeight: 500, fontFamily: "var(--font-mono)" }}>{r.n}</span>
                    <span style={{ color: "var(--ink-2)" }}>{r.a}</span>
                    <span style={{ fontFamily: "var(--font-mono)", fontSize: 9, color: "var(--ink-4)" }}>{r.t}</span>
                  </div>
                ))}
              </div>
              <div style={{ marginTop: "auto", paddingTop: 12, borderTop: "1px dashed var(--line)", fontSize: 10, fontFamily: "var(--font-mono)", color: "var(--accent)", letterSpacing: "0.10em" }}>
                4× FASTER REVIEW
              </div>
            </div>
          </div>
        )}

        {/* === STAGE 4: audit === */}
        {eq("audit") && (
          <div style={{ position: "absolute", inset: 0, padding: 18, display: "flex", flexDirection: "column", gap: 12, animation: "stageIn 360ms cubic-bezier(0.2,0.8,0.2,1)" }}>
            <div style={{ background: "var(--ink-1)", color: "white", borderRadius: 12, padding: 14 }}>
              <div style={{ display: "flex", alignItems: "center", gap: 8, marginBottom: 10 }}>
                <span style={{ width: 6, height: 6, borderRadius: "50%", background: "#7CC58A" }} />
                <div style={{ fontSize: 10, letterSpacing: "0.14em", textTransform: "uppercase", color: "rgba(255,255,255,0.65)" }}>Audit log · MSA Northwind</div>
                <span style={{ marginLeft: "auto", fontSize: 10, fontFamily: "var(--font-mono)", color: "rgba(255,255,255,0.55)" }}>284 EVENTS</span>
              </div>
              {[
                { t: "14:42", who: "Petra E.",  what: "Approved §4.2 · cap on indirect damages", role: "CFO",     new: true },
                { t: "14:39", who: "Mira K.",   what: "Comment on §4.2",                         role: "Sales" },
                { t: "14:36", who: "Tomas B.",  what: "Viewed §6 · payment terms (4m)",          role: "Finance" },
                { t: "14:30", who: "Astrid S.", what: "Viewed deal summary",                     role: "Exec" },
                { t: "14:18", who: "Erik W.",   what: "Posted question on §11",                  role: "Procurement" },
              ].map((row, i) => (
                <div key={i} style={{
                  display: "grid", gridTemplateColumns: "44px 1fr auto", gap: 10, alignItems: "center",
                  padding: "5px 0", borderTop: i === 0 ? "none" : "1px solid rgba(255,255,255,0.08)",
                  fontSize: 10.5, color: "rgba(255,255,255,0.85)",
                  animation: row.new ? "slideUp 360ms ease" : "none",
                }}>
                  <span style={{ fontFamily: "var(--font-mono)", color: "rgba(255,255,255,0.55)" }}>{row.t}</span>
                  <span><strong style={{ color: "white", fontWeight: 500 }}>{row.who}</strong> · {row.what}</span>
                  <span style={{ fontSize: 9, color: row.new ? "#7CC58A" : "rgba(255,255,255,0.45)", fontFamily: "var(--font-mono)", letterSpacing: "0.08em" }}>{row.new ? "NEW" : row.role.toUpperCase()}</span>
                </div>
              ))}
            </div>

            <div style={{ display: "grid", gridTemplateColumns: "1fr 1fr 1fr", gap: 10 }}>
              {[
                { num: "27",   label: "viewers" },
                { num: "284",  label: "events captured" },
                { num: "€0",   label: "in seat fees", accent: true },
              ].map((s) => (
                <div key={s.label} style={{ background: "var(--bg-elevated)", border: "1px solid var(--line)", borderRadius: 10, padding: "12px 14px" }}>
                  <div style={{ fontFamily: "var(--font-serif)", fontStyle: "italic", fontWeight: 400, fontSize: 22, color: s.accent ? "var(--accent)" : "var(--ink-1)", letterSpacing: "-0.01em", lineHeight: 1 }}>{s.num}</div>
                  <div style={{ fontSize: 10.5, color: "var(--ink-4)", marginTop: 4 }}>{s.label}</div>
                </div>
              ))}
            </div>
          </div>
        )}
      </div>

      {/* Stepper */}
      <div style={{ borderTop: "1px solid var(--line)", padding: "12px 18px", display: "flex", alignItems: "center", justifyContent: "space-between", background: "var(--bg-soft)" }}>
        <div style={{ display: "flex", gap: 6 }}>
          {STAGES.map((s, i) => (
            <span key={s} style={{
              width: i === stage ? 28 : 8, height: 4, borderRadius: 2,
              background: i <= stage ? "var(--accent)" : "var(--line-strong)",
              transition: "all 320ms ease",
            }} />
          ))}
        </div>
        <div style={{ fontSize: 10.5, fontFamily: "var(--font-mono)", color: "var(--ink-4)", letterSpacing: "0.10em" }}>
          {[
            "01 · LEGACY · SEATS CAPPED",
            "02 · UNLOCK · UNLIMITED",
            "03 · INVITE EVERYONE",
            "04 · LIVE COLLABORATION",
            "05 · FULL AUDIT TRAIL",
          ][stage]}
        </div>
      </div>

      <style>{`
        @keyframes stageIn { from { opacity: 0; transform: translateY(6px) scale(0.98); } to { opacity: 1; transform: none; } }
        @keyframes slideUp { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
        @keyframes popIn { from { opacity: 0; transform: scale(0.6); } to { opacity: 1; transform: scale(1); } }
        @keyframes pop { 0% { transform: scale(0.4); opacity: 0; } 60% { transform: scale(1.08); opacity: 1; } 100% { transform: scale(1); } }
        @keyframes pulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.4); opacity: 0.5; } }
      `}</style>
    </div>
  );
}

function ViewerSeatsHero() {
  const viewers = [
    { initials: "AL", name: "Anna L.", role: "Legal", access: "Full read", grad: "linear-gradient(135deg,#C7B4FF,#7C5CD3)" },
    { initials: "TB", name: "Tomas B.", role: "Finance", access: "Scoped", grad: "linear-gradient(135deg,#B7E4C7,#1F8A4C)" },
    { initials: "MK", name: "Mira K.", role: "Sales AE", access: "Full read", grad: "linear-gradient(135deg,#FCD7C6,#B65532)" },
    { initials: "VH", name: "Vera H.", role: "Customer", access: "Contract only", grad: "linear-gradient(135deg,#D9D9D9,#7A7A7A)" },
    { initials: "GO", name: "Gunnar O.", role: "Auditor", access: "Read + export", grad: "linear-gradient(135deg,#D9D9D9,#7A7A7A)" },
  ];
  return (
    <section style={{ position: "relative", overflow: "hidden", padding: "96px 0 88px", background: "linear-gradient(160deg, #1A1625 0%, #0F0E14 50%, #13111C 100%)", color: "#F5F5F7" }}>
      <svg style={{ position: "absolute", inset: 0, width: "100%", height: "100%", opacity: 0.35, color: "rgba(255,255,255,0.05)", pointerEvents: "none" }} preserveAspectRatio="none">
        <defs><pattern id="gmhg-viewers" x="0" y="0" width="48" height="48" patternUnits="userSpaceOnUse"><path d="M 48 0 L 0 0 0 48" fill="none" stroke="currentColor" strokeWidth="1"/></pattern></defs>
        <rect width="100%" height="100%" fill="url(#gmhg-viewers)" />
      </svg>
      <div style={{ position: "absolute", left: -120, top: -180, width: 720, height: 720, background: "radial-gradient(closest-side, rgba(124,92,211,0.25), transparent 70%)", pointerEvents: "none" }} />
      <div className="container" style={{ position: "relative", zIndex: 2 }}>
        <div style={{ display: "flex", alignItems: "center", gap: 12, fontSize: 12.5, color: "rgba(255,255,255,0.45)", marginBottom: 20, flexWrap: "wrap" }}>
          <a href="/" style={{ color: "rgba(255,255,255,0.45)" }}>Home</a><span>›</span>
          <a href="/platform/power-modules" style={{ color: "rgba(255,255,255,0.45)" }}>Power Modules</a><span>›</span>
          <span className="tag tag-purple" style={{ margin: 0, padding: "2px 10px" }}>Unlimited Viewer Seats</span>
        </div>
        <div className="mob-stack no-border" style={{ display: "grid", gridTemplateColumns: "1.05fr 0.95fr", gap: 64, alignItems: "center", marginTop: 24 }}>
          <div>
            <h1 style={{ fontFamily: "var(--font-sans)", fontWeight: 500, fontSize: "clamp(40px, 5.4vw, 68px)", lineHeight: 1.04, letterSpacing: "-0.03em", margin: "0 0 22px" }}>
              Bring <span className="accent">everyone</span><br/>
              into the contract<br/>
              , for free.
            </h1>
            <div className="mob-show" style={{ width: "100%", justifyContent: "center", marginBottom: 24 }}>
              <div style={{ background: "white", border: "1px solid rgba(0,0,0,0.08)", borderRadius: 16, padding: 18, boxShadow: "0 10px 30px rgba(0,0,0,0.04), 0 1px 8px rgba(0,0,0,0.02)", width: "100%" }}>
                <div style={{ display: "flex", justifyContent: "space-between", alignItems: "center", marginBottom: 12 }}>
                  <span style={{ fontSize: 12, fontWeight: 500, letterSpacing: "0.12em", textTransform: "uppercase", color: "var(--ink-3)" }}>Velora MSA · Viewers</span>
                  <span style={{ fontSize: 11, color: "var(--success)", fontWeight: 600 }}>27 active</span>
                </div>
                {viewers.map((v, i) => (
                  <div key={i} style={{ display: "grid", gridTemplateColumns: "28px 1fr auto", gap: 10, alignItems: "center", padding: "8px 0", borderTop: i === 0 ? "none" : "1px solid rgba(0,0,0,0.05)" }}>
                    <span style={{ width: 28, height: 28, borderRadius: "50%", background: v.grad, display: "grid", placeItems: "center", fontSize: 10, fontWeight: 700, color: "white", flexShrink: 0 }}>{v.initials}</span>
                    <div>
                      <div style={{ fontSize: 12.5, color: "var(--ink-1)", fontWeight: 500 }}>{v.name}</div>
                      <div style={{ fontSize: 11, color: "var(--ink-3)" }}>{v.role}</div>
                    </div>
                    <span style={{ fontSize: 10.5, fontFamily: "var(--font-mono)", color: "var(--ink-4)" }}>{v.access}</span>
                  </div>
                ))}
                <div style={{ marginTop: 10, paddingTop: 10, borderTop: "1px solid rgba(0,0,0,0.06)", fontSize: 11.5, color: "var(--ink-3)", display: "flex", justifyContent: "space-between" }}>
                  <span>All views audited · 0 seat cost</span>
                  <span style={{ color: "var(--success)", fontWeight: 500 }}>● Live</span>
                </div>
              </div>
            </div>
            <p style={{ maxWidth: 520, fontSize: 16.5, lineHeight: 1.55, color: "rgba(255,255,255,0.65)", margin: 0 }}>
              Invite every reviewer, stakeholder, customer, and auditor for free. Unlimited read, comment, and approval seats, fully audited, scoped to exactly what they should see.
            </p>
            <div style={{ marginTop: 28, display: "flex", gap: 12, flexWrap: "wrap" }}>
              <a className="btn btn-accent btn-lg" href="/book-demo">Book demo <Icon name="arrow" size={14} /></a>
              <a className="btn btn-ghost btn-lg" href="/platform/power-modules">All modules</a>
            </div>
          </div>
          <div className="mob-hide" style={{ background: "white", border: "1px solid rgba(0,0,0,0.08)", borderRadius: 16, padding: 18, boxShadow: "0 10px 30px rgba(0,0,0,0.04), 0 1px 8px rgba(0,0,0,0.02)" }}>
            <div style={{ display: "flex", justifyContent: "space-between", alignItems: "center", marginBottom: 12 }}>
              <span style={{ fontSize: 12, fontWeight: 500, letterSpacing: "0.12em", textTransform: "uppercase", color: "var(--ink-3)" }}>Velora MSA · Viewers</span>
              <span style={{ fontSize: 11, color: "var(--success)", fontWeight: 600 }}>27 active</span>
            </div>
            {viewers.map((v, i) => (
              <div key={i} style={{ display: "grid", gridTemplateColumns: "28px 1fr auto", gap: 10, alignItems: "center", padding: "8px 0", borderTop: i === 0 ? "none" : "1px solid rgba(0,0,0,0.05)" }}>
                <span style={{ width: 28, height: 28, borderRadius: "50%", background: v.grad, display: "grid", placeItems: "center", fontSize: 10, fontWeight: 700, color: "white", flexShrink: 0 }}>{v.initials}</span>
                <div>
                  <div style={{ fontSize: 12.5, color: "var(--ink-1)", fontWeight: 500 }}>{v.name}</div>
                  <div style={{ fontSize: 11, color: "var(--ink-3)" }}>{v.role}</div>
                </div>
                <span style={{ fontSize: 10.5, fontFamily: "var(--font-mono)", color: "var(--ink-4)" }}>{v.access}</span>
              </div>
            ))}
            <div style={{ marginTop: 10, paddingTop: 10, borderTop: "1px solid rgba(0,0,0,0.06)", fontSize: 11.5, color: "var(--ink-3)", display: "flex", justifyContent: "space-between" }}>
              <span>All views audited · 0 seat cost</span>
              <span style={{ color: "var(--success)", fontWeight: 500 }}>● Live</span>
            </div>
          </div>
        </div>
      </div>
    </section>
  );
}

function ViewerSeatsValueProps() {
  const props = [
    { num: "∞", label: "free viewer seats", note: "Add every colleague, customer, partner, and auditor to a contract, no per-seat fee, ever. Pay only for editor seats." },
    { num: "4×", label: "faster review cycles", note: "Stakeholders see redlines and approve in real time. No more chasing screenshots, PDFs over email, or waiting on someone's seat to free up." },
    { num: "0", label: "shadow copies in inboxes", note: "Every comment, view, and approval lives in the contract, not in 14 different email threads. One source of truth, fully audited." },
  ];
  return (
    <section className="section">
      <div className="container">
        <div style={{ textAlign: "center", maxWidth: 720, margin: "0 auto 48px" }}>
          <span className="eyebrow">Why teams switch</span>
          <h2 className="h-section" style={{ marginTop: 18 }}>Stop <em>rationing</em> contract access.</h2>
          <p className="lede" style={{ margin: "16px auto 0", textAlign: "center" }}>
            Legacy CLMs charge per seat, so the people who should be in the contract end up on email instead. We took that tax off the table.
          </p>
        </div>
        <div className="tick-rule" />
        <div className="grid grid-3" style={{ gap: 0 }}>
          {props.map((p, i) => (
            <div key={i} style={{ borderRight: i < props.length - 1 ? "1px solid var(--line)" : "none", padding: "28px 24px" }}>
              <div style={{ fontFamily: "var(--font-sans)", fontSize: "clamp(40px, 4.6vw, 56px)", fontWeight: 500, letterSpacing: "-0.03em", lineHeight: 1, marginBottom: 10 }}>
                <em style={{ fontFamily: "var(--font-serif)", fontStyle: "italic", fontWeight: 400, color: "var(--accent)" }}>{p.num}</em>
              </div>
              <div style={{ fontSize: 14, fontWeight: 500, marginBottom: 8 }}>{p.label}</div>
              <div style={{ fontSize: 13, color: "var(--ink-4)", lineHeight: 1.55 }}>{p.note}</div>
            </div>
          ))}
        </div>
        <div className="tick-rule" />
      </div>
    </section>
  );
}

function ViewerSeatsCompare() {
  const rows = [
    { feature: "View & read documents, contracts, and document hubs", legacy: "Requires paid seat", cc: "Free · unlimited viewers", ccAccent: true },
    { feature: "Comment on documents and ongoing contracts",           legacy: "Requires paid seat", cc: "Free · included for all viewers" },
    { feature: "Be added as contract responsible",                     legacy: "Requires paid seat", cc: "Free · full accountability, no seat fee" },
    { feature: "Receive internal signatures & review requests",        legacy: "Requires paid seat or workaround", cc: "Free · workflows route to any viewer" },
    { feature: "Audit trail on viewer activity",                       legacy: "Often editor-only", cc: "Every view, comment, approval logged" },
  ];
  return (
    <section className="section" style={{ background: "var(--bg-soft)", borderTop: "1px solid var(--line)", borderBottom: "1px solid var(--line)" }}>
      <div className="container">
        <div style={{ textAlign: "center", maxWidth: 720, margin: "0 auto 40px" }}>
          <span className="eyebrow">Legacy vs. ContractControl</span>
          <h2 className="h-section" style={{ marginTop: 18 }}>The math <em>finally</em> makes sense.</h2>
        </div>
        <div style={{ background: "var(--bg-elevated)", border: "1px solid var(--line)", borderRadius: "var(--r-lg)", overflow: "hidden" }}>
          <div style={{ display: "grid", gridTemplateColumns: "1.3fr 1fr 1fr", padding: "14px 24px", borderBottom: "1px solid var(--line)", background: "var(--bg-soft)", fontSize: 11, fontWeight: 500, letterSpacing: "0.14em", textTransform: "uppercase", color: "var(--ink-4)" }}>
            <span>Capability</span>
            <span>Legacy CLM</span>
            <span>ContractControl</span>
          </div>
          {rows.map((r, i) => (
            <div key={i} style={{ display: "grid", gridTemplateColumns: "1.3fr 1fr 1fr", padding: "16px 24px", borderBottom: i < rows.length - 1 ? "1px solid var(--line)" : "none", fontSize: 13.5, alignItems: "center" }}>
              <span style={{ color: "var(--ink-1)", fontWeight: 500 }}>{r.feature}</span>
              <span style={{ color: "var(--ink-4)" }}>{r.legacy}</span>
              <span style={{ color: r.ccAccent ? "var(--accent)" : "var(--ink-1)", fontWeight: r.ccAccent ? 500 : 400, display: "inline-flex", alignItems: "center", gap: 6 }}>
                <span style={{ color: "var(--success)" }}>
                  <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5"><polyline points="20 6 9 17 4 12"/></svg>
                </span>
                {r.cc}
              </span>
            </div>
          ))}
        </div>
      </div>
    </section>
  );
}

function ViewerInviteMockup() {
  const people = [
    { name: "Lena Fischer", role: "Finance · CFO", status: "Viewing", color: "#16A34A" },
    { name: "Erik Wallin", role: "Procurement · Lead", status: "Commented", color: "#7B61FF" },
    { name: "Sara Björk", role: "External Counsel", status: "Approved", color: "#16A34A" },
    { name: "Tom Heid", role: "Customer · Counterparty", status: "Invited", color: "#B97A00" },
  ];
  return (
    <div className="mockup-frame" style={{ padding: 0, overflow: "hidden" }}>
      <div style={{ padding: "12px 18px", borderBottom: "1px solid var(--line)", display: "flex", alignItems: "center", justifyContent: "space-between" }}>
        <span style={{ fontSize: 12, fontWeight: 600, color: "var(--ink-1)" }}>MSA · Northwind × Brevia</span>
        <span style={{ fontSize: 11, padding: "3px 10px", borderRadius: 99, background: "rgba(22,163,74,0.08)", color: "#16A34A", fontWeight: 500 }}>Active</span>
      </div>
      <div style={{ padding: "10px 0" }}>
        <div style={{ fontSize: 10.5, fontWeight: 600, letterSpacing: "0.08em", textTransform: "uppercase", color: "var(--ink-4)", padding: "6px 18px 10px" }}>Access · 4 people</div>
        {people.map((p, i) => (
          <div key={i} style={{ display: "flex", alignItems: "center", gap: 12, padding: "10px 18px", borderTop: "1px solid var(--line)" }}>
            <span style={{ width: 30, height: 30, borderRadius: "50%", background: "linear-gradient(135deg, #C7D2FE, #7B61FF)", flexShrink: 0 }} />
            <div style={{ flex: 1, minWidth: 0 }}>
              <div style={{ fontSize: 13, fontWeight: 500, color: "var(--ink-1)" }}>{p.name}</div>
              <div style={{ fontSize: 11, color: "var(--ink-4)" }}>{p.role}</div>
            </div>
            <span style={{ fontSize: 11, fontWeight: 600, padding: "2px 9px", borderRadius: 99, background: p.status === "Approved" || p.status === "Viewing" ? "rgba(22,163,74,0.08)" : p.status === "Commented" ? "rgba(110,86,207,0.1)" : "rgba(185,122,0,0.09)", color: p.color }}>
              {p.status}
            </span>
            <span style={{ fontSize: 11, fontWeight: 500, color: "var(--accent)", padding: "2px 9px", borderRadius: 99, background: "var(--accent-soft)" }}>Free</span>
          </div>
        ))}
      </div>
      <div style={{ padding: "12px 18px", borderTop: "1px solid var(--line)" }}>
        <button style={{ width: "100%", padding: "9px 0", borderRadius: 8, border: "1px dashed var(--line)", background: "transparent", fontSize: 12.5, color: "var(--ink-4)", cursor: "pointer" }}>
          + Invite someone
        </button>
      </div>
    </div>
  );
}

function ViewerAuditMockup() {
  const events = [
    { who: "Sara Björk", action: "Approved clause 8.2", time: "2 min ago", icon: "✓", color: "#16A34A" },
    { who: "Erik Wallin", action: "Commented on §4, Liability cap", time: "14 min ago", icon: "💬", color: "#7B61FF" },
    { who: "Lena Fischer", action: "Viewed pages 1-6", time: "31 min ago", icon: "👁", color: "var(--ink-4)" },
    { who: "Tom Heid", action: "Opened document", time: "1 hr ago", icon: "📄", color: "var(--ink-4)" },
  ];
  return (
    <div className="mockup-frame" style={{ padding: 0, overflow: "hidden" }}>
      <div style={{ padding: "12px 18px", borderBottom: "1px solid var(--line)", display: "flex", alignItems: "center", gap: 8 }}>
        <span style={{ fontSize: 12, fontWeight: 600, color: "var(--ink-1)" }}>Activity log</span>
        <span style={{ fontSize: 10.5, padding: "2px 8px", borderRadius: 99, background: "var(--accent-soft)", color: "var(--accent)", fontWeight: 500 }}>4 events · last hour</span>
      </div>
      <div>
        {events.map((e, i) => (
          <div key={i} style={{ display: "flex", gap: 14, padding: "14px 18px", borderBottom: i < events.length - 1 ? "1px solid var(--line)" : "none", alignItems: "flex-start" }}>
            <span style={{ width: 30, height: 30, borderRadius: "50%", background: "var(--bg-soft)", display: "grid", placeItems: "center", fontSize: 13, flexShrink: 0 }}>{e.icon}</span>
            <div style={{ flex: 1 }}>
              <div style={{ fontSize: 13, color: "var(--ink-1)" }}>
                <span style={{ fontWeight: 600 }}>{e.who}</span>, {e.action}
              </div>
              <div style={{ fontSize: 11, color: "var(--ink-4)", marginTop: 3 }}>{e.time}</div>
            </div>
          </div>
        ))}
      </div>
      <div style={{ padding: "10px 18px", borderTop: "1px solid var(--line)", display: "flex", justifyContent: "flex-end" }}>
        <span style={{ fontSize: 12, color: "var(--ink-4)", fontWeight: 500 }}>Export as PDF →</span>
      </div>
    </div>
  );
}

function ViewerSeatsModules() {
  return (
    <>
      <section className="section">
        <div className="container">
          <div className="feat-grid">
            <div>
              <span className="eyebrow">Zero seat fees</span>
              <h2 className="h-section" style={{ marginTop: 16, marginBottom: 20 }}>Invite <em>everyone who needs to see</em>, not just the ones you can afford.</h2>
              <p className="lede" style={{ marginBottom: 24 }}>Finance, procurement, external counsel, even the customer counterparty. Anyone who needs visibility gets it, the moment you decide, without a procurement request or a budget approval.</p>
              <div style={{ display: "flex", flexDirection: "column", gap: 14 }}>
                {[
                  "Viewers can read documents, contracts, and document hubs",
                  "Comment on ongoing contracts and flag concerns in context",
                  "Be assigned as contract responsible without paying for a seat",
                  "Receive signature and review requests directly in their workflow",
                ].map((b, i) => (
                  <div key={i} style={{ display: "flex", gap: 12, alignItems: "flex-start" }}>
                    <span style={{ flex: "0 0 16px", marginTop: 3, color: "var(--accent)" }}>
                      <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5"><polyline points="20 6 9 17 4 12"/></svg>
                    </span>
                    <p style={{ fontSize: 14.5, color: "var(--ink-2)", lineHeight: 1.55, margin: 0 }}>{b}</p>
                  </div>
                ))}
              </div>
            </div>
            <div>
              <div className="showcase-panel-mockup" style={{ borderRadius: 16, border: "1px solid var(--line)" }}>
                <ViewerInviteMockup />
              </div>
            </div>
          </div>
        </div>
      </section>

      <section className="section" style={{ background: "var(--bg-soft)", borderTop: "1px solid var(--line)", borderBottom: "1px solid var(--line)" }}>
        <div className="container">
          <div className="feat-grid feat-grid--flip">
            <div>
              <span className="eyebrow">Full audit trail</span>
              <h2 className="h-section" style={{ marginTop: 16, marginBottom: 20 }}>Every view, comment, and approval, <em>logged and exportable</em>.</h2>
              <p className="lede" style={{ marginBottom: 24 }}>Unlimited doesn't mean ungoverned. Every action a viewer takes is captured, who opened it, what they read, what they commented, when they approved, and exportable as a counter-signed PDF for your deal file.</p>
              <div style={{ display: "flex", flexDirection: "column", gap: 14 }}>
                {[
                  "Timestamped log of every view, comment, download, and approval",
                  "Optional watermarks with name, IP, and timestamp on every page",
                  "Access auto-revokes on signing, on a date, or after inactivity",
                  "Export the full audit trail as a counter-signed PDF",
                ].map((b, i) => (
                  <div key={i} style={{ display: "flex", gap: 12, alignItems: "flex-start" }}>
                    <span style={{ flex: "0 0 16px", marginTop: 3, color: "var(--accent)" }}>
                      <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5"><polyline points="20 6 9 17 4 12"/></svg>
                    </span>
                    <p style={{ fontSize: 14.5, color: "var(--ink-2)", lineHeight: 1.55, margin: 0 }}>{b}</p>
                  </div>
                ))}
              </div>
            </div>
            <div>
              <div className="showcase-panel-mockup" style={{ borderRadius: 16, border: "1px solid var(--line)" }}>
                <ViewerAuditMockup />
              </div>
            </div>
          </div>
        </div>
      </section>
    </>
  );
}

function ViewerSeatsCapabilities() {
  const features = [
    { title: "Scoped, not blanket",        desc: "Grant access to a single contract, a folder, or a workspace. Viewers see only what you decide they need." },
    { title: "Comment & approve",          desc: "Viewers can leave comments, post questions, and tick off approvals, without needing an editor licence." },
    { title: "Time-boxed access",          desc: "Set expiry on signing, on a date, or after N days of inactivity. Access auto-revokes, you don't have to remember." },
    { title: "Watermarked previews",       desc: "Optional per-viewer watermarks (name · IP · timestamp) on every page they see. Discourages screenshots, supports auditing." },
    { title: "Full audit trail",           desc: "Every view, comment, download, and approval logged. Exportable as a counter-signed PDF for any deal file." },
    { title: "SSO + AD provisioning",      desc: "Provision viewers automatically from your IdP. Off-board the same way, when they leave the org, access leaves with them." },
  ];
  return (
    <section className="section">
      <div className="container">
        <div style={{ textAlign: "center", maxWidth: 720, margin: "0 auto 48px" }}>
          <span className="eyebrow">Capabilities</span>
          <h2 className="h-section" style={{ marginTop: 18 }}>Free, but <em>not loose</em>.</h2>
          <p className="lede" style={{ margin: "16px auto 0", textAlign: "center" }}>
            Unlimited doesn't mean ungoverned. Every viewer is scoped, audited, and revocable.
          </p>
        </div>
        <div className="grid grid-3" style={{ gap: 0, border: "1px solid var(--line)", borderRadius: "var(--r-lg)", overflow: "hidden", background: "var(--bg-elevated)" }}>
          {features.map((f, i) => (
            <div key={f.title} style={{
              padding: 28,
              borderRight: ((i + 1) % 3 !== 0) ? "1px solid var(--line)" : "none",
              borderBottom: i < features.length - 3 ? "1px solid var(--line)" : "none",
            }}>
              <span style={{ width: 32, height: 32, borderRadius: 8, background: "var(--bg-soft)", display: "grid", placeItems: "center", color: "var(--accent)", marginBottom: 16 }}>
                <Icon name="review" size={16} />
              </span>
              <h3 className="h-card" style={{ marginBottom: 8 }}>{f.title}</h3>
              <p style={{ fontSize: 13.5, color: "var(--ink-3)", lineHeight: 1.55, margin: 0 }}>{f.desc}</p>
            </div>
          ))}
        </div>
      </div>
    </section>
  );
}

function ViewerSeatsQuote() {
  return (
    <section className="section-tight">
      <div className="container" style={{ maxWidth: 880 }}>
        <div style={{ background: "linear-gradient(180deg, #F4EFFB, #FAFAF7)", border: "1px solid var(--line)", borderRadius: "var(--r-xl)", padding: "44px 48px" }}>
          <p style={{
            fontFamily: "var(--font-serif)", fontStyle: "italic", fontWeight: 400,
            fontSize: "clamp(22px, 2.4vw, 28px)", lineHeight: 1.35, letterSpacing: "-0.005em",
            margin: "0 0 24px", color: "var(--ink-1)",
          }}>"In our last CLM we paid €36k a year just so finance and procurement could read contracts. Here they're in the doc, on day one, no extra cost. Reviews moved from days to hours."</p>
          <div style={{ display: "flex", alignItems: "center", gap: 12 }}>
            <span style={{ width: 36, height: 36, borderRadius: "50%", background: "linear-gradient(135deg, #C7D2FE, #7B61FF)" }} />
            <div>
              <div style={{ fontSize: 14, fontWeight: 500 }}>Anders Lindqvist</div>
              <div style={{ fontSize: 12, color: "var(--ink-4)" }}>General Counsel · Klarna alumni · Series C SaaS</div>
            </div>
          </div>
        </div>
      </div>
    </section>
  );
}

function ViewerSeatsPage() {
  return (
    <div>
      <ViewerSeatsHero />
      <LogoStrip />
      <ViewerSeatsValueProps />
      <ViewerSeatsCompare />
      <ViewerSeatsModules />
      <ViewerSeatsCapabilities />
      <FinalCTA />
    </div>
  );
}

Object.assign(window, { ViewerSeatsPage });
