vab / index.html
bardd's picture
Update index.html
bb38a38 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>HitSafe.ai — Founder Decision Memo</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Instrument+Serif:ital@0;1&family=JetBrains+Mono:wght@300;400;500;700&family=Manrope:wght@300;400;500;600;700;800&display=swap" rel="stylesheet" />
<style>
:root {
--green: #007A3D;
--green-light: #00A855;
--green-bg: #E8F7EE;
--green-border: rgba(0,122,61,0.18);
--amber: #C47A00;
--amber-bg: #FFF5E0;
--amber-border: rgba(196,122,0,0.22);
--red: #C42B2B;
--red-bg: #FDEAEA;
--red-border: rgba(196,43,43,0.2);
--blue: #1A56A0;
--blue-bg: #EBF2FB;
--blue-border: rgba(26,86,160,0.18);
--page: #F7F7F9;
--surface: #FFFFFF;
--surface-2: #F0F0F4;
--surface-3: #E8E8EE;
--border: rgba(0,0,0,0.08);
--border-mid: rgba(0,0,0,0.14);
--text-main: rgba(0,0,0,0.88);
--text-mid: rgba(0,0,0,0.56);
--text-muted: rgba(0,0,0,0.36);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
background-color: var(--page);
color: var(--text-main);
font-family: 'Manrope', sans-serif;
font-size: 15px;
line-height: 1.7;
overflow-x: hidden;
}
body::before {
content: '';
position: fixed;
inset: 0;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");
opacity: 0.02;
pointer-events: none;
z-index: 9999;
}
.font-bebas { font-family: 'Bebas Neue', sans-serif; letter-spacing: 0.04em; }
.font-mono { font-family: 'JetBrains Mono', monospace; }
@keyframes fadeUp {
from { opacity: 0; transform: translateY(24px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes ticker {
0% { transform: translateX(0); }
100% { transform: translateX(-50%); }
}
@keyframes glow-pulse {
0%, 100% { opacity: 0.5; }
50% { opacity: 1; }
}
@keyframes slideInRight {
from { opacity: 0; transform: translateX(40px); }
to { opacity: 1; transform: translateX(0); }
}
@keyframes slideOutRight {
from { opacity: 1; transform: translateX(0); }
to { opacity: 0; transform: translateX(40px); }
}
.animate-fade-up { animation: fadeUp 0.7s cubic-bezier(0.22,1,0.36,1) forwards; }
.delay-1 { animation-delay: 0.1s; opacity: 0; }
.delay-2 { animation-delay: 0.25s; opacity: 0; }
.delay-3 { animation-delay: 0.4s; opacity: 0; }
.delay-4 { animation-delay: 0.55s; opacity: 0; }
/* ── VIEWS ── */
#view-memo { display: block; }
#view-workflow { display: none; }
#view-workflow.active {
display: block;
animation: slideInRight 0.45s cubic-bezier(0.22,1,0.36,1) forwards;
}
/* ── PILLS ── */
.pill {
display: inline-flex; align-items: center; gap: 6px;
padding: 4px 12px; border-radius: 999px;
font-family: 'JetBrains Mono', monospace;
font-size: 10px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase;
}
.pill-green { background: var(--green-bg); color: var(--green); border: 1px solid var(--green-border); }
.pill-amber { background: var(--amber-bg); color: var(--amber); border: 1px solid var(--amber-border); }
.pill-red { background: var(--red-bg); color: var(--red); border: 1px solid var(--red-border); }
.pill-blue { background: var(--blue-bg); color: var(--blue); border: 1px solid var(--blue-border); }
.pill-neutral { background: var(--surface-2); color: var(--text-mid); border: 1px solid var(--border); }
.dot { width: 6px; height: 6px; border-radius: 50%; display: inline-block; }
.dot-green { background: var(--green-light); animation: glow-pulse 2s infinite; }
.dot-amber { background: var(--amber); }
.dot-red { background: var(--red); }
.dot-blue { background: var(--blue); }
/* ── CARDS ── */
.card {
background: var(--surface);
border: 1px solid var(--border);
border-radius: 16px;
padding: 28px 32px;
box-shadow: 0 1px 4px rgba(0,0,0,0.05);
}
.card-accent {
background: linear-gradient(135deg, var(--green-bg) 0%, rgba(232,247,238,0.3) 100%);
border: 1px solid var(--green-border);
border-radius: 16px;
padding: 28px 32px;
}
.card-blue {
background: linear-gradient(135deg, var(--blue-bg) 0%, rgba(235,242,251,0.3) 100%);
border: 1px solid var(--blue-border);
border-radius: 16px;
padding: 28px 32px;
}
/* ── STAT ── */
.stat-number {
font-family: 'Bebas Neue', sans-serif;
font-size: clamp(48px, 6vw, 80px);
letter-spacing: 0.02em;
line-height: 1;
color: var(--green);
}
/* ── SECTION LABEL ── */
.section-label {
font-family: 'JetBrains Mono', monospace;
font-size: 10px; font-weight: 500;
letter-spacing: 0.2em; text-transform: uppercase;
color: var(--text-muted);
}
/* ── HERO ── */
.hero-bg {
background:
radial-gradient(ellipse 80% 60% at 50% -10%, rgba(0,168,85,0.06) 0%, transparent 70%),
radial-gradient(ellipse 50% 40% at 85% 110%, rgba(0,122,61,0.03) 0%, transparent 60%),
var(--surface);
}
.grid-bg {
background-image:
linear-gradient(rgba(0,0,0,0.035) 1px, transparent 1px),
linear-gradient(90deg, rgba(0,0,0,0.035) 1px, transparent 1px);
background-size: 60px 60px;
}
/* ── TICKER ── */
.ticker-track { animation: ticker 28s linear infinite; white-space: nowrap; display: flex; }
/* ── FUNNEL (memo) ── */
.funnel-step {
position: relative;
display: flex; align-items: flex-start; gap: 20px;
padding: 20px 0;
}
.funnel-step:not(:last-child)::after {
content: '';
position: absolute;
left: 17px; top: 52px;
width: 2px; height: calc(100% - 20px);
background: linear-gradient(to bottom, var(--green-light), transparent);
}
.funnel-num {
width: 36px; height: 36px; border-radius: 50%; flex-shrink: 0;
display: flex; align-items: center; justify-content: center;
background: var(--surface-2); border: 1px solid var(--green-border);
font-family: 'JetBrains Mono', monospace; font-size: 12px;
color: var(--green); font-weight: 700; z-index: 1;
}
/* ── COMP TABLE ── */
.comp-row:hover { background: var(--surface-2); }
/* ── BUTTONS ── */
.btn-primary {
background: var(--green); color: #fff;
font-family: 'Manrope', sans-serif;
font-weight: 800; font-size: 13px;
letter-spacing: 0.05em; text-transform: uppercase;
padding: 14px 32px; border-radius: 8px;
border: none; cursor: pointer;
transition: all 0.2s ease;
display: inline-block; text-decoration: none;
}
.btn-primary:hover { background: #005a2b; transform: translateY(-2px); box-shadow: 0 8px 28px rgba(0,122,61,0.22); }
.btn-secondary {
background: transparent; color: var(--text-main);
font-family: 'Manrope', sans-serif;
font-weight: 700; font-size: 13px;
letter-spacing: 0.05em; text-transform: uppercase;
padding: 13px 28px; border-radius: 8px;
border: 1px solid var(--border-mid); cursor: pointer;
transition: all 0.2s ease;
display: inline-block;
}
.btn-secondary:hover { border-color: rgba(0,0,0,0.28); background: var(--surface-2); }
.btn-workflow {
background: var(--surface); color: var(--green);
font-family: 'Manrope', sans-serif;
font-weight: 700; font-size: 13px;
letter-spacing: 0.04em;
padding: 13px 28px; border-radius: 8px;
border: 1.5px solid var(--green); cursor: pointer;
transition: all 0.2s ease;
display: inline-flex; align-items: center; gap: 8px;
text-decoration: none;
}
.btn-workflow:hover { background: var(--green-bg); transform: translateY(-1px); box-shadow: 0 4px 16px rgba(0,122,61,0.12); }
.btn-back {
background: transparent; color: var(--text-mid);
font-family: 'JetBrains Mono', monospace;
font-weight: 500; font-size: 11px;
letter-spacing: 0.12em; text-transform: uppercase;
padding: 10px 20px; border-radius: 6px;
border: 1px solid var(--border); cursor: pointer;
transition: all 0.18s ease;
display: inline-flex; align-items: center; gap: 8px;
}
.btn-back:hover { border-color: var(--border-mid); color: var(--text-main); background: var(--surface-2); }
/* ── WORKFLOW DIAGRAM BLOCKS ── */
.wf-node {
background: var(--surface);
border: 1px solid var(--border);
border-radius: 10px;
padding: 12px 18px;
font-size: 13px; font-weight: 600;
color: var(--text-main);
text-align: center;
box-shadow: 0 1px 4px rgba(0,0,0,0.05);
position: relative;
}
.wf-node-green {
background: var(--green-bg);
border-color: var(--green-border);
color: var(--green);
}
.wf-node-amber {
background: var(--amber-bg);
border-color: var(--amber-border);
color: var(--amber);
}
.wf-node-blue {
background: var(--blue-bg);
border-color: var(--blue-border);
color: var(--blue);
}
.wf-node-muted {
background: var(--surface-2);
border-color: var(--border);
color: var(--text-mid);
font-weight: 500;
}
.wf-arrow {
display: flex; align-items: center; justify-content: center;
color: var(--text-muted); font-size: 18px;
height: 24px; flex-shrink: 0;
}
.wf-arrow-right {
display: flex; align-items: center;
color: var(--text-muted); font-size: 18px;
padding: 0 4px; flex-shrink: 0;
}
.wf-lane {
background: var(--surface);
border: 1px solid var(--border);
border-radius: 14px;
padding: 20px 22px;
}
.wf-lane-label {
font-family: 'JetBrains Mono', monospace;
font-size: 9px; font-weight: 700;
letter-spacing: 0.18em; text-transform: uppercase;
margin-bottom: 14px; padding-bottom: 10px;
border-bottom: 1px solid var(--border);
}
.wf-decision {
background: var(--amber-bg);
border: 1.5px dashed var(--amber-border);
border-radius: 8px;
padding: 12px 18px;
font-size: 13px; font-weight: 600;
color: var(--amber);
text-align: center;
}
/* ── WORKFLOW SECTION BLOCKS ── */
.wf-section {
margin-bottom: 60px;
}
.wf-section-title {
font-family: 'Bebas Neue', sans-serif;
font-size: 28px; letter-spacing: 0.04em;
color: var(--text-main);
margin-bottom: 8px;
}
.wf-section-sub {
font-size: 14px; color: var(--text-mid);
max-width: 680px; margin-bottom: 28px;
line-height: 1.65;
}
.wf-caption {
font-family: 'JetBrains Mono', monospace;
font-size: 10px; letter-spacing: 0.1em;
color: var(--text-muted); text-transform: uppercase;
margin-top: 12px;
}
/* ── CALLOUT ── */
.callout {
border-radius: 10px; padding: 16px 20px;
font-size: 13px; line-height: 1.65;
}
.callout-green { background: var(--green-bg); border: 1px solid var(--green-border); color: var(--text-mid); }
.callout-amber { background: var(--amber-bg); border: 1px solid var(--amber-border); color: var(--text-mid); }
.callout-blue { background: var(--blue-bg); border: 1px solid var(--blue-border); color: var(--text-mid); }
.callout strong { color: var(--text-main); }
/* ── SCROLLBAR ── */
::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: var(--page); }
::-webkit-scrollbar-thumb { background: var(--surface-3); border-radius: 4px; }
@media (max-width: 768px) {
.stat-number { font-size: 56px; }
.hide-mobile { display: none !important; }
}
</style>
</head>
<body>
<!-- ═══════════════════════════════════════════════════════════ -->
<!-- VIEW 1: THE MEMO -->
<!-- ═══════════════════════════════════════════════════════════ -->
<div id="view-memo">
<!-- TICKER -->
<div style="background: var(--surface); border-bottom: 1px solid var(--border); overflow: hidden; height: 36px; display: flex; align-items: center;">
<div style="background: var(--green); color: #fff; padding: 0 16px; height: 100%; display: flex; align-items: center; font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.15em; white-space: nowrap; flex-shrink: 0;">CONFIDENTIAL</div>
<div style="overflow: hidden; flex: 1;">
<div class="ticker-track" style="color: var(--text-muted); font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: 0.1em;">
<span style="padding: 0 40px;">HITSAFE.AI &mdash; FOUNDER DECISION MEMO &nbsp;&#8212;&nbsp; CLASSIFICATION: INTERNAL &nbsp;&#8212;&nbsp; STATUS: AWAITING SIGN-OFF &nbsp;&#8212;&nbsp; RUNWAY: 30 DAYS &nbsp;&#8212;&nbsp; UNIT TESTS: 32/32 PASSED &nbsp;&#8212;&nbsp; STRESS TESTS: 13/13 PASSED &nbsp;&#8212;&nbsp; COST PER USER: £0.02 &nbsp;&#8212;&nbsp; FREE CAPACITY: 375 USERS/DAY &nbsp;&#8212;&nbsp;</span>
<span style="padding: 0 40px;">HITSAFE.AI &mdash; FOUNDER DECISION MEMO &nbsp;&#8212;&nbsp; CLASSIFICATION: INTERNAL &nbsp;&#8212;&nbsp; STATUS: AWAITING SIGN-OFF &nbsp;&#8212;&nbsp; RUNWAY: 30 DAYS &nbsp;&#8212;&nbsp; UNIT TESTS: 32/32 PASSED &nbsp;&#8212;&nbsp; STRESS TESTS: 13/13 PASSED &nbsp;&#8212;&nbsp; COST PER USER: £0.02 &nbsp;&#8212;&nbsp; FREE CAPACITY: 375 USERS/DAY &nbsp;&#8212;&nbsp;</span>
</div>
</div>
</div>
<!-- HERO -->
<section class="hero-bg grid-bg" style="padding: 100px 5% 80px; position: relative; overflow: hidden;">
<div style="position: absolute; top: -120px; right: -80px; width: 500px; height: 500px; border-radius: 50%; background: radial-gradient(circle, rgba(0,168,85,0.05) 0%, transparent 70%); pointer-events: none;"></div>
<div style="max-width: 1100px; margin: 0 auto;">
<div class="animate-fade-up delay-1" style="display: flex; align-items: center; gap: 12px; margin-bottom: 32px; flex-wrap: wrap;">
<span class="pill pill-green"><span class="dot dot-green"></span>Live Decision Memo</span>
<span class="pill pill-neutral">For Founding Partner Eyes Only</span>
<span class="pill pill-amber"><span class="dot dot-amber"></span>Action Required</span>
</div>
<h1 class="font-bebas animate-fade-up delay-2" style="font-size: clamp(56px, 9vw, 130px); line-height: 0.95; letter-spacing: 0.02em; margin-bottom: 28px; color: var(--text-main);">
We built it.<br/><span style="color: var(--green);">It works.</span><br/>Let's launch.
</h1>
<p class="animate-fade-up delay-3" style="font-size: 18px; max-width: 620px; color: var(--text-mid); line-height: 1.65; margin-bottom: 32px;">
This memo makes the case — in hard numbers, tested code, and market facts — for why <strong style="color: var(--text-main);">HitSafe.ai</strong> goes public today. Two asks. One decision. Read this in 7 minutes.
</p>
<div class="animate-fade-up delay-4" style="display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 40px;">
<button class="btn-workflow" onclick="showWorkflow()">
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" style="flex-shrink:0"><rect x="1" y="1" width="4" height="4" rx="1" stroke="currentColor" stroke-width="1.5"/><rect x="9" y="1" width="4" height="4" rx="1" stroke="currentColor" stroke-width="1.5"/><rect x="5" y="9" width="4" height="4" rx="1" stroke="currentColor" stroke-width="1.5"/><path d="M3 5v2.5a1.5 1.5 0 001.5 1.5H7m4-4v2.5A1.5 1.5 0 019.5 9H7" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>
How HitSafe.ai Reaches a Result
</button>
</div>
<div style="display: flex; gap: 32px; flex-wrap: wrap;">
<div>
<div class="section-label" style="margin-bottom: 4px;">Prepared By</div>
<div style="font-weight: 600; font-size: 14px;">Co-Founder, HitSafe.ai</div>
</div>
<div style="border-left: 1px solid var(--border); padding-left: 32px;">
<div class="section-label" style="margin-bottom: 4px;">Addressed To</div>
<div style="font-weight: 600; font-size: 14px;">Co-Founder &amp; Legal Partner</div>
</div>
<div style="border-left: 1px solid var(--border); padding-left: 32px;">
<div class="section-label" style="margin-bottom: 4px;">Stage</div>
<div style="font-weight: 600; font-size: 14px;">Pre-Launch / Sign-Off</div>
</div>
</div>
</div>
</section>
<!-- METRICS BAR -->
<div style="background: var(--surface); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 0 5%;">
<div style="max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr);">
<div style="padding: 28px 24px; border-right: 1px solid var(--border);">
<div class="section-label" style="margin-bottom: 8px;">Cost per Full User Flow</div>
<div class="stat-number" style="font-size: 52px;">$0.025</div>
<div style="font-size: 12px; color: var(--text-muted); margin-top: 4px;">tokens via Gemini 3 Flash</div>
</div>
<div style="padding: 28px 24px; border-right: 1px solid var(--border);">
<div class="section-label" style="margin-bottom: 8px;">Free Daily User Capacity</div>
<div class="stat-number" style="font-size: 52px;">375</div>
<div style="font-size: 12px; color: var(--text-muted); margin-top: 4px;">users/day on free tier</div>
</div>
<div style="padding: 28px 24px; border-right: 1px solid var(--border);">
<div class="section-label" style="margin-bottom: 8px;">Free Runway (Pilot)</div>
<div class="stat-number" style="font-size: 52px;">30</div>
<div style="font-size: 12px; color: var(--text-muted); margin-top: 4px;">days on $300 cloud credit</div>
</div>
<div style="padding: 28px 24px;">
<div class="section-label" style="margin-bottom: 8px;">SaaS Profit Margin</div>
<div class="stat-number" style="font-size: 52px;">~100%</div>
<div style="font-size: 12px; color: var(--text-muted); margin-top: 4px;">on £99/mo tier at scale</div>
</div>
</div>
</div>
<!-- MAIN CONTENT -->
<main style="max-width: 1100px; margin: 0 auto; padding: 80px 5%;">
<!-- 01 THE TECH -->
<div style="margin-bottom: 100px;">
<div style="display: flex; align-items: center; gap: 16px; margin-bottom: 48px;">
<span class="section-label" style="font-size: 11px;">01</span>
<span style="font-family: 'Bebas Neue', sans-serif; font-size: 36px; letter-spacing: 0.04em;">The Product Is Ready</span>
<span class="pill pill-green" style="margin-left: auto;"><span class="dot dot-green"></span>Verified</span>
</div>
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 28px;">
<div class="card-accent">
<div style="font-size: 11px; font-family: 'JetBrains Mono', monospace; color: var(--green); letter-spacing: 0.15em; text-transform: uppercase; margin-bottom: 16px;">Unit Tests</div>
<div style="display: flex; align-items: flex-end; gap: 12px; margin-bottom: 16px;">
<div class="stat-number">32</div>
<div style="font-size: 24px; font-family: 'Bebas Neue'; color: var(--text-muted); padding-bottom: 8px;">/ 32</div>
</div>
<div style="background: rgba(0,168,85,0.15); border-radius: 4px; height: 4px; margin-bottom: 12px;">
<div style="width: 100%; height: 100%; background: var(--green); border-radius: 4px;"></div>
</div>
<div style="font-size: 13px; color: var(--text-mid);">All core logic paths verified. Zero regressions. Every compliance rule, rewrite path, and API integration confirmed clean.</div>
</div>
<div class="card-accent">
<div style="font-size: 11px; font-family: 'JetBrains Mono', monospace; color: var(--green); letter-spacing: 0.15em; text-transform: uppercase; margin-bottom: 16px;">Historical Stress Tests</div>
<div style="display: flex; align-items: flex-end; gap: 12px; margin-bottom: 16px;">
<div class="stat-number">13</div>
<div style="font-size: 24px; font-family: 'Bebas Neue'; color: var(--text-muted); padding-bottom: 8px;">/ 13</div>
</div>
<div style="background: rgba(0,168,85,0.15); border-radius: 4px; height: 4px; margin-bottom: 12px;">
<div style="width: 100%; height: 100%; background: var(--green); border-radius: 4px;"></div>
</div>
<div style="font-size: 13px; color: var(--text-mid);">Real-world FCA breach scenarios from the past 5 years. Every single one flagged correctly. This is our legal defensibility baseline.</div>
</div>
</div>
<div style="background: var(--amber-bg); border: 1px solid var(--amber-border); border-radius: 16px; padding: 28px 32px; display: flex; gap: 24px; align-items: flex-start;">
<div style="flex-shrink: 0; width: 44px; height: 44px; border-radius: 10px; background: rgba(196,122,0,0.1); display: flex; align-items: center; justify-content: center; font-size: 20px;">🛡️</div>
<div>
<div style="display: flex; align-items: center; gap: 10px; margin-bottom: 8px; flex-wrap: wrap;">
<span style="font-weight: 800; font-size: 15px;">Native v3 Suite — 2/4 Failures Caught Pre-Launch</span>
<span class="pill pill-amber"><span class="dot dot-amber"></span>This is a win</span>
</div>
<p style="color: var(--text-mid); font-size: 14px; line-height: 1.65;">Two edge cases surfaced in our new v3 test suite before a single external user touched the product. This is not a red flag — <strong style="color: var(--text-main);">it is exactly how serious safety infrastructure is supposed to work.</strong> Our conservative risk-flagging logic caught corner cases in a pre-production environment. We are not papering over complexity; we are stress-testing against it. Compare that to every competitor who shipped without this level of rigour. We fix, we ship clean.</p>
</div>
</div>
</div>
<!-- 02 THE ECONOMICS -->
<div style="margin-bottom: 100px;">
<div style="display: flex; align-items: center; gap: 16px; margin-bottom: 48px;">
<span class="section-label" style="font-size: 11px;">02</span>
<span style="font-family: 'Bebas Neue', sans-serif; font-size: 36px; letter-spacing: 0.04em;">The Economics Are Absurd (In Our Favour)</span>
</div>
<div style="display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 20px; margin-bottom: 32px;">
<div class="card" style="text-align: center;">
<div class="section-label" style="margin-bottom: 12px;">Token Cost</div>
<div style="font-family: 'Bebas Neue'; font-size: 56px; color: var(--green); line-height: 1;">$0.025</div>
<p style="font-size: 12px; color: var(--text-muted); margin-top: 8px;">Per full interaction — initial check + full copy rewrite via Gemini 3 Flash. <em style="color: var(--text-mid);">This is pennies.</em></p>
</div>
<div class="card" style="text-align: center;">
<div class="section-label" style="margin-bottom: 12px;">Free Daily Searches</div>
<div style="font-family: 'Bebas Neue'; font-size: 56px; color: var(--green); line-height: 1;">1,500</div>
<p style="font-size: 12px; color: var(--text-muted); margin-top: 8px;">Google gives us 1,500 free searches/day. At 4 per user, that covers <strong style="color: var(--text-main);">375 users entirely free.</strong></p>
</div>
<div class="card" style="text-align: center;">
<div class="section-label" style="margin-bottom: 12px;">Pilot Runway</div>
<div style="font-family: 'Bebas Neue'; font-size: 56px; color: var(--green); line-height: 1;">12,000</div>
<p style="font-size: 12px; color: var(--text-muted); margin-top: 8px;">Full user flows on the $300 GCP credit — roughly <strong style="color: var(--text-main);">30 days of pilot at zero cost.</strong></p>
</div>
</div>
<div class="card" style="margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 24px; flex-wrap: wrap; gap: 12px;">
<div>
<div class="section-label" style="margin-bottom: 6px;">Runway Consumption Model</div>
<div style="font-size: 16px; font-weight: 700;">$300 Credit — Three Scenarios</div>
</div>
<span class="pill pill-green">30-Day Horizon</span>
</div>
<div style="display: flex; flex-direction: column; gap: 16px;">
<div>
<div style="display: flex; justify-content: space-between; font-size: 12px; margin-bottom: 6px;">
<span style="color: var(--text-mid);">≤375 users/day &mdash; <em>Sweet Spot</em></span>
<span style="color: var(--green); font-family: 'JetBrains Mono'; font-weight: 600;">$0 out-of-pocket · 30 days</span>
</div>
<div style="height: 8px; background: var(--surface-2); border-radius: 4px;"><div style="width: 100%; height: 100%; background: var(--green); border-radius: 4px;"></div></div>
</div>
<div>
<div style="display: flex; justify-content: space-between; font-size: 12px; margin-bottom: 6px;">
<span style="color: var(--text-mid);">~700 users/day &mdash; <em>Gaining traction</em></span>
<span style="color: var(--amber); font-family: 'JetBrains Mono'; font-weight: 600;">~$40/day · 7–8 days</span>
</div>
<div style="height: 8px; background: var(--surface-2); border-radius: 4px;"><div style="width: 28%; height: 100%; background: var(--amber); border-radius: 4px;"></div></div>
</div>
<div>
<div style="display: flex; justify-content: space-between; font-size: 12px; margin-bottom: 6px;">
<span style="color: var(--text-mid);">1,000+ users/day &mdash; <em>Monetisation trigger</em></span>
<span style="color: var(--red); font-family: 'JetBrains Mono'; font-weight: 600;">Credit burns in 5 days → flip the switch</span>
</div>
<div style="height: 8px; background: var(--surface-2); border-radius: 4px;"><div style="width: 18%; height: 100%; background: var(--red); border-radius: 4px;"></div></div>
</div>
</div>
<div style="margin-top: 20px; padding: 14px 16px; background: var(--surface-2); border-radius: 8px; border: 1px solid var(--border);">
<p style="font-size: 12px; color: var(--text-mid);"><strong style="color: var(--text-main);">Read that third scenario correctly:</strong> if we're burning through $300 of cloud credit in 5 days, it means over 1,000 users are hitting the product daily. That is not a crisis — that is a green light to enable payments. The "problem" is viral growth.</p>
</div>
</div>
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 20px;">
<div class="card-accent" style="position: relative; overflow: hidden;">
<div style="position: absolute; top: -20px; right: -20px; font-size: 80px; opacity: 0.07; color: var(--green);">£</div>
<div class="section-label" style="margin-bottom: 12px;">Upside #1 — SaaS Margins</div>
<div style="font-size: 22px; font-weight: 800; line-height: 1.3; margin-bottom: 12px;">The £99/mo tier operates at near <span style="color: var(--green);">100% profit margin.</span></div>
<p style="font-size: 13px; color: var(--text-mid); line-height: 1.65;">When your base compute cost is £0.02 per user interaction and your monthly subscription is £99, the economics are essentially pure margin. No COGS. No inventory. No fulfilment. Software economics at their absolute best.</p>
</div>
<div class="card-accent" style="position: relative; overflow: hidden;">
<div style="position: absolute; top: -20px; right: -20px; font-size: 80px; opacity: 0.07; color: var(--green);"></div>
<div class="section-label" style="margin-bottom: 12px;">Upside #2 — Zero CAC Agency Pipeline</div>
<div style="font-size: 22px; font-weight: 800; line-height: 1.3; margin-bottom: 12px;">High-ticket leads flowing to your agency at <span style="color: var(--green);">virtually zero cost.</span></div>
<p style="font-size: 13px; color: var(--text-mid); line-height: 1.65;">Every user who signs up for a compliance check is a financial services marketing buyer who needs FCA-compliant content. That is your agency's exact client profile. HitSafe.ai is a self-filling lead pipeline — one that also charges them £99/mo for the privilege of entering your funnel.</p>
</div>
</div>
</div>
<!-- 03 THE MARKET -->
<div style="margin-bottom: 100px;">
<div style="display: flex; align-items: center; gap: 16px; margin-bottom: 48px;">
<span class="section-label" style="font-size: 11px;">03</span>
<span style="font-family: 'Bebas Neue', sans-serif; font-size: 36px; letter-spacing: 0.04em;">The Market Is Proven. Move Now.</span>
</div>
<div style="display: grid; grid-template-columns: 5fr 3fr; gap: 32px;">
<div>
<table style="width: 100%; border-collapse: collapse;">
<thead>
<tr style="border-bottom: 1px solid var(--border);">
<th style="text-align: left; padding: 10px 16px; font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--text-muted); font-weight: 400;">Competitor</th>
<th style="text-align: left; padding: 10px 16px; font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--text-muted); font-weight: 400;">Category</th>
<th style="text-align: left; padding: 10px 16px; font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--text-muted); font-weight: 400;">Their Gap</th>
<th style="text-align: center; padding: 10px 16px; font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--text-muted); font-weight: 400;">Monetising?</th>
</tr>
</thead>
<tbody>
<tr class="comp-row" style="transition: background 0.15s;"><td style="padding: 14px 16px; border-bottom: 1px solid var(--border); font-weight: 700;">RuleGuard</td><td style="padding: 14px 16px; border-bottom: 1px solid var(--border); color: var(--text-muted); font-size: 13px;">Regulatory Tech SaaS</td><td style="padding: 14px 16px; border-bottom: 1px solid var(--border); color: var(--text-muted); font-size: 13px;">Enterprise-only. No consumer/SMB tier. High friction onboarding.</td><td style="padding: 14px 16px; border-bottom: 1px solid var(--border); text-align: center;"><span class="pill pill-green" style="font-size: 9px;">Yes</span></td></tr>
<tr class="comp-row" style="transition: background 0.15s;"><td style="padding: 14px 16px; border-bottom: 1px solid var(--border); font-weight: 700;">Sedric.ai</td><td style="padding: 14px 16px; border-bottom: 1px solid var(--border); color: var(--text-muted); font-size: 13px;">Compliance AI Platform</td><td style="padding: 14px 16px; border-bottom: 1px solid var(--border); color: var(--text-muted); font-size: 13px;">Conversation monitoring only. No marketing copy checks. Niche use-case.</td><td style="padding: 14px 16px; border-bottom: 1px solid var(--border); text-align: center;"><span class="pill pill-green" style="font-size: 9px;">Yes</span></td></tr>
<tr class="comp-row" style="transition: background 0.15s;"><td style="padding: 14px 16px; border-bottom: 1px solid var(--border); font-weight: 700;">Absolute Digital</td><td style="padding: 14px 16px; border-bottom: 1px solid var(--border); color: var(--text-muted); font-size: 13px;">Agency (Compliance Services)</td><td style="padding: 14px 16px; border-bottom: 1px solid var(--border); color: var(--text-muted); font-size: 13px;">Human review, not AI. Slow, expensive, unscalable. We are 10–100× cheaper.</td><td style="padding: 14px 16px; border-bottom: 1px solid var(--border); text-align: center;"><span class="pill pill-green" style="font-size: 9px;">Yes</span></td></tr>
<tr class="comp-row" style="transition: background 0.15s;"><td style="padding: 14px 16px; border-bottom: 1px solid var(--border); font-weight: 700;">Lever Digital</td><td style="padding: 14px 16px; border-bottom: 1px solid var(--border); color: var(--text-muted); font-size: 13px;">FinTech Marketing Agency</td><td style="padding: 14px 16px; border-bottom: 1px solid var(--border); color: var(--text-muted); font-size: 13px;">Sells compliance as a service — no SaaS product. Can't compete on margin or velocity.</td><td style="padding: 14px 16px; border-bottom: 1px solid var(--border); text-align: center;"><span class="pill pill-green" style="font-size: 9px;">Yes</span></td></tr>
</tbody>
</table>
</div>
<div>
<div class="card" style="height: 100%; display: flex; flex-direction: column; justify-content: space-between;">
<div>
<div class="section-label" style="margin-bottom: 16px;">The Verdict</div>
<p style="font-size: 15px; line-height: 1.75; font-weight: 500; color: var(--text-main); margin-bottom: 20px;">Every competitor in this table is <strong style="color: var(--green);">already making money</strong> from the same demand signal we've built for.</p>
<p style="font-size: 14px; color: var(--text-mid); line-height: 1.7;">The market is proven. The demand is validated. The funnel is tested. We have better economics, a lower barrier to entry, and an AI-native product none of them can replicate quickly.</p>
</div>
<div style="margin-top: 24px; padding: 16px; border-radius: 10px; background: var(--green-bg); border: 1px solid var(--green-border);">
<p style="font-size: 13px; font-weight: 800; color: var(--green); text-transform: uppercase; letter-spacing: 0.06em;">Every day we wait is market share gifted to a competitor who is already there.</p>
</div>
</div>
</div>
</div>
</div>
<!-- 04 THE FUNNEL -->
<div style="margin-bottom: 100px;">
<div style="display: flex; align-items: center; gap: 16px; margin-bottom: 48px;">
<span class="section-label" style="font-size: 11px;">04</span>
<span style="font-family: 'Bebas Neue', sans-serif; font-size: 36px; letter-spacing: 0.04em;">The Conversion Engine</span>
</div>
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start;">
<div>
<div class="section-label" style="margin-bottom: 24px;">Frictionless User Journey</div>
<div class="funnel-step"><div class="funnel-num">01</div><div><div style="font-weight: 800; font-size: 15px; margin-bottom: 4px;">Free Compliance Check</div><p style="font-size: 13px; color: var(--text-muted); line-height: 1.6;">Zero barrier entry. Paste your marketing copy, get an instant FCA compliance verdict. No account needed. Builds trust, drives SEO, creates habit.</p></div></div>
<div class="funnel-step"><div class="funnel-num">02</div><div><div style="font-weight: 800; font-size: 15px; margin-bottom: 4px;">Email Signup → 10 Free Daily Checks + Rewrites Unlocked</div><p style="font-size: 13px; color: var(--text-muted); line-height: 1.6;">Once they see the tool works, the value exchange is obvious. Email unlocks the full rewrite feature. This is where we capture intent and start warming.</p></div></div>
<div class="funnel-step"><div class="funnel-num">03</div><div><div style="font-weight: 800; font-size: 15px; margin-bottom: 4px;">£99/month SaaS — Unlimited Checks</div><p style="font-size: 13px; color: var(--text-muted); line-height: 1.6;">For any active financial services marketer, this is a rounding error on their COGS. Unlimited checks, priority processing, compliance history. Near-100% margin product.</p></div></div>
<div class="funnel-step" style="padding-bottom: 0;"><div class="funnel-num" style="background: var(--green-bg); border-color: var(--green);">04</div><div><div style="font-weight: 800; font-size: 15px; margin-bottom: 4px; color: var(--green);">The Agency Upsell — High-Ticket Lead Handoff</div><p style="font-size: 13px; color: var(--text-muted); line-height: 1.6;">The paying SaaS user who regularly needs FCA-compliant copy is the perfect brief for your agency. Zero CAC. Pre-qualified. Already trusting your brand. This is the crown jewel.</p></div></div>
</div>
<div style="display: flex; flex-direction: column; gap: 20px;">
<div class="card">
<div class="section-label" style="margin-bottom: 12px;">Why No Phone Number Gate?</div>
<p style="font-size: 14px; color: var(--text-mid); line-height: 1.65;">We are optimising for <strong style="color: var(--text-main);">conversion velocity</strong>, not lead qualification friction. Phone gates kill top-of-funnel growth. They add compliance complexity. We collect intent data via usage behaviour, then qualify on the backend. Let the funnel breathe.</p>
</div>
<div class="card-accent">
<div class="section-label" style="margin-bottom: 8px;">Dual Revenue Architecture</div>
<div style="font-size: 16px; font-weight: 700; margin-bottom: 8px;">HitSafe.ai is two businesses in one.</div>
<div style="display: flex; flex-direction: column; gap: 8px; margin-top: 12px;">
<div style="display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: var(--text-mid);"><span style="color: var(--green); font-weight: 700; margin-top: 1px;"></span><span><strong style="color: var(--text-main);">Standalone SaaS:</strong> recurring, near-infinite margin, self-serve growth.</span></div>
<div style="display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: var(--text-mid);"><span style="color: var(--green); font-weight: 700; margin-top: 1px;"></span><span><strong style="color: var(--text-main);">Agency Lead Engine:</strong> pre-qualified, high-ticket clients, delivered to your desk at zero acquisition cost.</span></div>
</div>
</div>
<!-- Workflow teaser card -->
<div style="background: var(--surface-2); border: 1px solid var(--border); border-radius: 16px; padding: 24px 28px; display: flex; flex-direction: column; gap: 12px;">
<div class="section-label">Want to understand how it actually works?</div>
<p style="font-size: 13px; color: var(--text-mid); line-height: 1.6;">See the full step-by-step workflow — from ad submission through to result — written for a non-technical reader.</p>
<button class="btn-workflow" style="align-self: flex-start; font-size: 12px; padding: 10px 20px;" onclick="showWorkflow()">
<svg width="12" height="12" viewBox="0 0 14 14" fill="none"><rect x="1" y="1" width="4" height="4" rx="1" stroke="currentColor" stroke-width="1.5"/><rect x="9" y="1" width="4" height="4" rx="1" stroke="currentColor" stroke-width="1.5"/><rect x="5" y="9" width="4" height="4" rx="1" stroke="currentColor" stroke-width="1.5"/><path d="M3 5v2.5a1.5 1.5 0 001.5 1.5H7m4-4v2.5A1.5 1.5 0 019.5 9H7" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>
View System Workflow
</button>
</div>
</div>
</div>
</div>
<!-- 05 THE ASK -->
<div style="margin-bottom: 0;">
<div style="display: flex; align-items: center; gap: 16px; margin-bottom: 48px;">
<span class="section-label" style="font-size: 11px;">05</span>
<span style="font-family: 'Bebas Neue', sans-serif; font-size: 36px; letter-spacing: 0.04em;">Two Asks. One Decision.</span>
<span class="pill pill-red" style="margin-left: auto;"><span class="dot dot-red"></span>Action Required</span>
</div>
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 48px;">
<div style="background: linear-gradient(135deg, var(--green-bg) 0%, rgba(232,247,238,0.5) 100%); border: 1.5px solid var(--green); border-radius: 20px; padding: 36px 32px; position: relative; overflow: hidden;">
<div style="position: absolute; top: -30px; right: -30px; font-family: 'Bebas Neue'; font-size: 140px; color: var(--green); opacity: 0.06; line-height: 1; pointer-events: none;">01</div>
<div class="section-label" style="color: var(--green); margin-bottom: 16px;">Ask #1 — The Green Light</div>
<h3 style="font-family: 'Bebas Neue'; font-size: 34px; letter-spacing: 0.03em; line-height: 1.1; margin-bottom: 20px;">Authorise Public Launch of the Free Version Today</h3>
<p style="font-size: 14px; color: var(--text-mid); line-height: 1.7; margin-bottom: 24px;">The product is tested, the economics are contained, and the runway is funded. We have 375 free user slots per day before a single penny leaves our account. The only thing standing between us and market validation is your sign-off.</p>
<div style="padding: 14px 16px; background: rgba(0,122,61,0.07); border-radius: 8px; border: 1px solid var(--green-border);">
<p style="font-size: 13px; color: var(--green); font-weight: 700;">What "yes" looks like: a go-ahead to push the product live, begin organic seeding, and monitor the first 500 users under the free tier.</p>
</div>
</div>
<div style="background: linear-gradient(135deg, var(--amber-bg) 0%, rgba(255,245,224,0.5) 100%); border: 1.5px solid var(--amber); border-radius: 20px; padding: 36px 32px; position: relative; overflow: hidden;">
<div style="position: absolute; top: -30px; right: -30px; font-family: 'Bebas Neue'; font-size: 140px; color: var(--amber); opacity: 0.07; line-height: 1; pointer-events: none;">02</div>
<div class="section-label" style="color: var(--amber); margin-bottom: 16px;">Ask #2 — Your Legal Expertise</div>
<h3 style="font-family: 'Bebas Neue'; font-size: 34px; letter-spacing: 0.03em; line-height: 1.1; margin-bottom: 20px;">Draft Terms of Service That Classify HitSafe.ai as a Utility</h3>
<p style="font-size: 14px; color: var(--text-mid); line-height: 1.7; margin-bottom: 24px;">This is where your corporate law expertise is irreplaceable. We need a ToS that unambiguously positions HitSafe.ai as a <strong style="color: var(--text-main);">software utility</strong> — not a legal or financial advice service — creating a clean, documented liability shield between the product and the agency. This is not optional. It is the legal architecture that makes everything else safe to scale.</p>
<div style="padding: 14px 16px; background: rgba(196,122,0,0.07); border-radius: 8px; border: 1px solid var(--amber-border);">
<p style="font-size: 13px; color: var(--amber); font-weight: 700;">What "yes" looks like: a complete ToS draft — utility classification, liability waiver, data use clause, and disclaimer language — before or concurrent with launch.</p>
</div>
</div>
</div>
<!-- Final CTA -->
<div style="background: var(--surface); border: 1px solid var(--border); border-radius: 24px; padding: 60px 48px; text-align: center; position: relative; overflow: hidden; box-shadow: 0 2px 20px rgba(0,0,0,0.06);">
<div style="position: absolute; inset: 0; background: radial-gradient(ellipse 60% 50% at 50% 110%, rgba(0,168,85,0.05) 0%, transparent 70%); pointer-events: none;"></div>
<div class="section-label" style="margin-bottom: 20px;">The Bottom Line</div>
<h2 class="font-bebas" style="font-size: clamp(44px, 6vw, 80px); line-height: 1; margin-bottom: 24px; color: var(--text-main);">
The risk is<br/><span style="color: var(--green);">staying still.</span>
</h2>
<p style="font-size: 17px; color: var(--text-mid); max-width: 560px; margin: 0 auto 40px; line-height: 1.7;">
We have a working product, a proven market, and the most favourable unit economics I have ever seen at pre-launch stage. The window is open. It does not stay open.
</p>
<div style="display: flex; gap: 16px; justify-content: center; flex-wrap: wrap;">
<div class="btn-primary">✓ Green Light — Let's Launch</div>
<div class="btn-secondary">Draft the ToS →</div>
</div>
<p style="margin-top: 32px; font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--text-muted); letter-spacing: 0.08em;">HITSAFE.AI · CONFIDENTIAL FOUNDER MEMO · FOR INTERNAL USE ONLY</p>
</div>
</div>
</main>
<!-- FOOTER -->
<footer style="border-top: 1px solid var(--border); padding: 32px 5%; margin-top: 60px; background: var(--surface);">
<div style="max-width: 1100px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px;">
<div style="display: flex; align-items: center; gap: 12px;">
<div style="width: 28px; height: 28px; border-radius: 6px; background: var(--green); display: flex; align-items: center; justify-content: center;">
<span style="color: #fff; font-family: 'Bebas Neue'; font-size: 14px; letter-spacing: 0.02em;">H</span>
</div>
<span style="font-family: 'Bebas Neue'; font-size: 18px; letter-spacing: 0.08em; color: var(--text-main);">HitSafe<span style="color: var(--green);">.ai</span></span>
</div>
<div style="font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--text-muted); letter-spacing: 0.1em; text-align: center;">CONFIDENTIAL &mdash; FOUNDER DECISION MEMO &mdash; ALL FIGURES INTERNAL ESTIMATES</div>
<div><span class="pill pill-green"><span class="dot dot-green"></span>Awaiting Sign-Off</span></div>
</div>
</footer>
</div><!-- /view-memo -->
<!-- ═══════════════════════════════════════════════════════════ -->
<!-- VIEW 2: SYSTEM WORKFLOW -->
<!-- ═══════════════════════════════════════════════════════════ -->
<div id="view-workflow">
<!-- WORKFLOW TOPBAR -->
<div style="background: var(--surface); border-bottom: 1px solid var(--border); padding: 0 5%; position: sticky; top: 0; z-index: 100;">
<div style="max-width: 1100px; margin: 0 auto; height: 56px; display: flex; align-items: center; justify-content: space-between; gap: 16px;">
<div style="display: flex; align-items: center; gap: 16px;">
<div style="display: flex; align-items: center; gap: 8px;">
<div style="width: 24px; height: 24px; border-radius: 5px; background: var(--green); display: flex; align-items: center; justify-content: center;"><span style="color: #fff; font-family: 'Bebas Neue'; font-size: 12px;">H</span></div>
<span style="font-family: 'Bebas Neue'; font-size: 15px; letter-spacing: 0.08em; color: var(--text-main);">HitSafe<span style="color: var(--green);">.ai</span></span>
</div>
<span style="color: var(--border-mid); font-size: 14px;">·</span>
<span style="font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-muted);">System Workflow</span>
</div>
<button class="btn-back" onclick="showMemo()">
← Back to Memo
</button>
</div>
</div>
<!-- WORKFLOW HERO -->
<div style="background: var(--surface); border-bottom: 1px solid var(--border); padding: 64px 5% 56px;">
<div style="max-width: 860px; margin: 0 auto;">
<div style="display: flex; gap: 10px; margin-bottom: 24px; flex-wrap: wrap;">
<span class="pill pill-blue"><span class="dot dot-blue"></span>Technical Overview</span>
<span class="pill pill-neutral">For Legal &amp; Commercial Review</span>
</div>
<h1 class="font-bebas" style="font-size: clamp(40px, 6vw, 72px); line-height: 1; letter-spacing: 0.03em; margin-bottom: 20px; color: var(--text-main);">
How HitSafe.ai<br/><span style="color: var(--green);">Reaches a Result</span>
</h1>
<p style="font-size: 17px; color: var(--text-mid); line-height: 1.7; max-width: 640px;">
A plain-English explanation of how the system reviews a promotion, reaches a result, and keeps the legal boundary clear. Written for legal and commercial readers — no technical background required.
</p>
</div>
</div>
<!-- WORKFLOW BODY -->
<div style="max-width: 860px; margin: 0 auto; padding: 72px 5%;">
<!-- ── DIAGRAM 1: END-TO-END WORKFLOW ── -->
<div class="wf-section">
<div style="display: flex; align-items: center; gap: 12px; margin-bottom: 8px;">
<span class="pill pill-blue" style="font-size: 9px;">Diagram 1 of 5</span>
</div>
<div class="wf-section-title">The End-to-End Workflow</div>
<p class="wf-section-sub">From the moment a user submits a promotion, to the moment a result is returned — and what happens if they want a safer draft.</p>
<div style="background: var(--surface); border: 1px solid var(--border); border-radius: 16px; padding: 36px 40px; box-shadow: 0 1px 8px rgba(0,0,0,0.04);">
<!-- Flow -->
<div style="display: flex; flex-direction: column; align-items: center; gap: 0;">
<div class="wf-node wf-node-blue" style="width: 100%; max-width: 420px;">User submits ad copy &amp; optional creative image</div>
<div class="wf-arrow"></div>
<div class="wf-node" style="width: 100%; max-width: 420px;">First review — evidence gathered from official sources</div>
<div class="wf-arrow"></div>
<div class="wf-node" style="width: 100%; max-width: 420px;">Structured record created &mdash; issues, facts, regulator lanes</div>
<div class="wf-arrow"></div>
<div class="wf-node wf-node-green" style="width: 100%; max-width: 420px; font-weight: 700;">Code-based rule layer applies fixed logic → Result produced</div>
<div class="wf-arrow"></div>
<!-- Decision branch -->
<div class="wf-decision" style="width: 100%; max-width: 420px;">Does the user want a safer draft?</div>
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 20px; width: 100%; max-width: 460px; margin-top: 8px;">
<div style="display: flex; flex-direction: column; align-items: center; gap: 6px;">
<div style="font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--text-muted); letter-spacing: 0.1em;">NO</div>
<div class="wf-node wf-node-muted" style="width: 100%; font-size: 12px;">Process ends</div>
</div>
<div style="display: flex; flex-direction: column; align-items: center; gap: 6px;">
<div style="font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--text-muted); letter-spacing: 0.1em;">YES</div>
<div class="wf-node wf-node-amber" style="width: 100%; font-size: 12px;">Second review runs ↓</div>
</div>
</div>
<div style="width: 50%; display: flex; justify-content: flex-end; padding-right: 0;">
<div style="width: 50%;">
<div class="wf-arrow"></div>
<div class="wf-node wf-node-amber" style="width: 100%; font-size: 12px;">Safer draft produced</div>
<div class="wf-arrow"></div>
<div class="wf-node wf-node-green" style="width: 100%; font-size: 12px; font-weight: 700;">Draft checked again by the same engine → Rewrite result shown</div>
</div>
</div>
</div>
</div>
<p class="wf-caption">End-to-end flow — from user submission to result and optional rewrite</p>
<div class="callout callout-green" style="margin-top: 20px;">
<strong>In plain terms:</strong> the tool receives a promotion, gathers evidence from official sources, organises that evidence into a clear structure, then applies a fixed set of rules to produce a result. If a rewrite is requested, it runs as a completely separate step and is checked again before being shown.
</div>
</div>
<!-- ── DIAGRAM 2: AI vs RULE LAYER ── -->
<div class="wf-section">
<div style="display: flex; align-items: center; gap: 12px; margin-bottom: 8px;">
<span class="pill pill-blue" style="font-size: 9px;">Diagram 2 of 5</span>
</div>
<div class="wf-section-title">What the System Does vs What the AI Does</div>
<p class="wf-section-sub">The AI does not make the final decision on its own. There are two distinct stages with clearly separated responsibilities.</p>
<div style="display: grid; grid-template-columns: 1fr auto 1fr; gap: 0; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; overflow: hidden; box-shadow: 0 1px 8px rgba(0,0,0,0.04);">
<!-- Left: AI Stage -->
<div style="padding: 28px 28px 32px;">
<div style="font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--blue); margin-bottom: 20px; padding-bottom: 12px; border-bottom: 1px solid var(--border);">Stage 1 — First Review (AI)</div>
<div style="display: flex; flex-direction: column; gap: 10px;">
<div style="display: flex; gap: 10px; align-items: flex-start;">
<div style="width: 20px; height: 20px; border-radius: 4px; background: var(--blue-bg); border: 1px solid var(--blue-border); display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 2px;"><span style="font-family: 'JetBrains Mono', monospace; font-size: 9px; color: var(--blue); font-weight: 700;">1</span></div>
<div style="font-size: 13px; color: var(--text-main); font-weight: 600;">Reads the ad copy and any uploaded image</div>
</div>
<div style="display: flex; gap: 10px; align-items: flex-start;">
<div style="width: 20px; height: 20px; border-radius: 4px; background: var(--blue-bg); border: 1px solid var(--blue-border); display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 2px;"><span style="font-family: 'JetBrains Mono', monospace; font-size: 9px; color: var(--blue); font-weight: 700;">2</span></div>
<div style="font-size: 13px; color: var(--text-main); font-weight: 600;">Searches official regulatory sources where needed</div>
</div>
<div style="display: flex; gap: 10px; align-items: flex-start;">
<div style="width: 20px; height: 20px; border-radius: 4px; background: var(--blue-bg); border: 1px solid var(--blue-border); display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 2px;"><span style="font-family: 'JetBrains Mono', monospace; font-size: 9px; color: var(--blue); font-weight: 700;">3</span></div>
<div style="font-size: 13px; color: var(--text-main); font-weight: 600;">Builds a structured evidence record with issues and facts</div>
</div>
</div>
<div style="margin-top: 20px; padding: 12px 14px; background: var(--blue-bg); border: 1px solid var(--blue-border); border-radius: 8px; font-size: 12px; color: var(--blue); font-weight: 600;">
The AI gathers and organises. It does not decide.
</div>
</div>
<!-- Divider -->
<div style="display: flex; align-items: center; padding: 0 16px;">
<div style="display: flex; flex-direction: column; align-items: center; gap: 6px;">
<div style="width: 1px; height: 40px; background: var(--border);"></div>
<div style="width: 28px; height: 28px; border-radius: 50%; background: var(--green-bg); border: 1px solid var(--green-border); display: flex; align-items: center; justify-content: center;">
<span style="font-size: 12px; color: var(--green); font-weight: 700;"></span>
</div>
<div style="width: 1px; height: 40px; background: var(--border);"></div>
</div>
</div>
<!-- Right: Rule Layer -->
<div style="padding: 28px 28px 32px; background: linear-gradient(135deg, var(--green-bg) 0%, rgba(232,247,238,0.2) 100%);">
<div style="font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--green); margin-bottom: 20px; padding-bottom: 12px; border-bottom: 1px solid var(--green-border);">Stage 2 — Rule Layer (Code)</div>
<div style="display: flex; flex-direction: column; gap: 10px;">
<div style="display: flex; gap: 10px; align-items: flex-start;">
<div style="width: 20px; height: 20px; border-radius: 4px; background: var(--green-bg); border: 1px solid var(--green-border); display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 2px;"><span style="font-family: 'JetBrains Mono', monospace; font-size: 9px; color: var(--green); font-weight: 700;">1</span></div>
<div style="font-size: 13px; color: var(--text-main); font-weight: 600;">Cleans and filters the structured material</div>
</div>
<div style="display: flex; gap: 10px; align-items: flex-start;">
<div style="width: 20px; height: 20px; border-radius: 4px; background: var(--green-bg); border: 1px solid var(--green-border); display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 2px;"><span style="font-family: 'JetBrains Mono', monospace; font-size: 9px; color: var(--green); font-weight: 700;">2</span></div>
<div style="font-size: 13px; color: var(--text-main); font-weight: 600;">Applies fixed policy rules — written in code, not opinion</div>
</div>
<div style="display: flex; gap: 10px; align-items: flex-start;">
<div style="width: 20px; height: 20px; border-radius: 4px; background: var(--green-bg); border: 1px solid var(--green-border); display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 2px;"><span style="font-family: 'JetBrains Mono', monospace; font-size: 9px; color: var(--green); font-weight: 700;">3</span></div>
<div style="font-size: 13px; color: var(--text-main); font-weight: 600;">Produces the final result for the user</div>
</div>
</div>
<div style="margin-top: 20px; padding: 12px 14px; background: rgba(0,122,61,0.08); border: 1px solid var(--green-border); border-radius: 8px; font-size: 12px; color: var(--green); font-weight: 600;">
The rule layer decides. It is deterministic, not probabilistic.
</div>
</div>
</div>
<p class="wf-caption">Separation of responsibilities — AI gathers, code decides</p>
<div class="callout callout-blue" style="margin-top: 20px;">
<strong>Why this matters:</strong> unlike a system that simply asks an AI "is this compliant?", HitSafe.ai separates evidence gathering from decision-making. The final result is produced by fixed, auditable rules — not the model's interpretation on a given day.
</div>
</div>
<!-- ── DIAGRAM 3: STRUCTURED RECORD ── -->
<div class="wf-section">
<div style="display: flex; align-items: center; gap: 12px; margin-bottom: 8px;">
<span class="pill pill-blue" style="font-size: 9px;">Diagram 3 of 5</span>
</div>
<div class="wf-section-title">How One Submission Becomes a Structured Record</div>
<p class="wf-section-sub">Rather than returning a single vague answer, the first review organises each submission into three distinct parts — keeping everything reviewable and traceable.</p>
<div style="background: var(--surface); border: 1px solid var(--border); border-radius: 16px; padding: 32px 36px; box-shadow: 0 1px 8px rgba(0,0,0,0.04);">
<div style="text-align: center; margin-bottom: 24px;">
<div class="wf-node wf-node-blue" style="display: inline-block; padding: 14px 32px; font-size: 14px;">Single ad or promotion submitted</div>
</div>
<!-- Three branches -->
<div style="display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px;">
<div style="display: flex; flex-direction: column; align-items: center; gap: 0;">
<div class="wf-arrow" style="height: 20px;"></div>
<div class="wf-lane" style="width: 100%;">
<div class="wf-lane-label" style="color: var(--blue);">Evidence Pack</div>
<div style="display: flex; flex-direction: column; gap: 8px;">
<div class="wf-node wf-node-muted" style="font-size: 11px; padding: 8px 12px;">Summary of findings</div>
<div class="wf-node wf-node-muted" style="font-size: 11px; padding: 8px 12px;">Official source citations</div>
<div class="wf-node wf-node-muted" style="font-size: 11px; padding: 8px 12px;">Search history log</div>
</div>
</div>
</div>
<div style="display: flex; flex-direction: column; align-items: center; gap: 0;">
<div class="wf-arrow" style="height: 20px;"></div>
<div class="wf-lane" style="width: 100%;">
<div class="wf-lane-label" style="color: var(--green);">Fact Ledger</div>
<div style="display: flex; flex-direction: column; gap: 8px;">
<div class="wf-node wf-node-muted" style="font-size: 11px; padding: 8px 12px;">Approval status</div>
<div class="wf-node wf-node-muted" style="font-size: 11px; padding: 8px 12px;">Audience &amp; gating</div>
<div class="wf-node wf-node-muted" style="font-size: 11px; padding: 8px 12px;">Product &amp; claim features</div>
</div>
</div>
</div>
<div style="display: flex; flex-direction: column; align-items: center; gap: 0;">
<div class="wf-arrow" style="height: 20px;"></div>
<div class="wf-lane" style="width: 100%;">
<div class="wf-lane-label" style="color: var(--amber);">Regulator Lanes</div>
<div style="display: flex; flex-direction: column; gap: 8px;">
<div class="wf-node wf-node-muted" style="font-size: 11px; padding: 8px 12px;">FCA issues</div>
<div class="wf-node wf-node-muted" style="font-size: 11px; padding: 8px 12px;">CMA issues</div>
<div class="wf-node wf-node-muted" style="font-size: 11px; padding: 8px 12px;">PRA issues</div>
</div>
</div>
</div>
</div>
</div>
<p class="wf-caption">Structured record — every submission is broken into evidence, facts, and regulator-specific issues</p>
<div class="callout callout-green" style="margin-top: 20px;">
<strong>Why this matters:</strong> separating FCA, CMA, and PRA issues into distinct lanes means the output is clear, traceable, and easy for a legal reviewer to interrogate. It avoids a single blended answer that mixes different regulatory concerns together.
</div>
</div>
<!-- ── DIAGRAM 4: REWRITE SAFEGUARD ── -->
<div class="wf-section">
<div style="display: flex; align-items: center; gap: 12px; margin-bottom: 8px;">
<span class="pill pill-amber" style="font-size: 9px;">Diagram 4 of 5</span>
</div>
<div class="wf-section-title">The Rewrite Safeguard Loop</div>
<p class="wf-section-sub">A rewrite is not automatically trusted. It is generated in a separate step and then checked again by the same engine before being shown to the user.</p>
<div style="background: var(--surface); border: 1px solid var(--border); border-radius: 16px; padding: 32px 40px; box-shadow: 0 1px 8px rgba(0,0,0,0.04);">
<div style="display: flex; flex-direction: column; align-items: center; gap: 0;">
<div class="wf-node" style="width: 100%; max-width: 420px; background: var(--surface-2);">Initial result flags issues in the original copy</div>
<div class="wf-arrow"></div>
<div class="wf-node wf-node-amber" style="width: 100%; max-width: 420px;">User requests: "Draft a safer version"</div>
<div class="wf-arrow"></div>
<div class="wf-node" style="width: 100%; max-width: 420px;">Second review uses the first result as context — it already knows the issues</div>
<div class="wf-arrow"></div>
<div class="wf-node" style="width: 100%; max-width: 420px;">Safer draft is created</div>
<div class="wf-arrow"></div>
<div class="wf-node wf-node-blue" style="width: 100%; max-width: 420px; font-weight: 700;">Draft is checked again by the same engine</div>
<div class="wf-arrow"></div>
<!-- Three outcomes -->
<div style="display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; width: 100%; max-width: 480px;">
<div style="display: flex; flex-direction: column; align-items: center; gap: 6px;">
<div class="wf-node wf-node-green" style="width: 100%; font-size: 11px; padding: 10px 8px;">Ready to use under current assumptions</div>
</div>
<div style="display: flex; flex-direction: column; align-items: center; gap: 6px;">
<div class="wf-node wf-node-amber" style="width: 100%; font-size: 11px; padding: 10px 8px;">Safer, but review still recommended</div>
</div>
<div style="display: flex; flex-direction: column; align-items: center; gap: 6px;">
<div class="wf-node" style="width: 100%; font-size: 11px; padding: 10px 8px; background: var(--red-bg); border: 1px solid var(--red-border); color: var(--red);">No safe public version available</div>
</div>
</div>
</div>
</div>
<p class="wf-caption">Rewrite safeguard — the draft is generated and then checked before being presented</p>
<div class="callout callout-amber" style="margin-top: 20px;">
<strong>Important:</strong> HitSafe.ai does not present a rewrite as automatically compliant. The output is labelled with one of three statuses — ready under current assumptions, safer but still requiring review, or no safe public version available. The user is never left with false confidence.
</div>
</div>
<!-- ── DIAGRAM 5: AUDIT TRAIL ── -->
<div class="wf-section">
<div style="display: flex; align-items: center; gap: 12px; margin-bottom: 8px;">
<span class="pill pill-blue" style="font-size: 9px;">Diagram 5 of 5</span>
</div>
<div class="wf-section-title">Audit Trail &amp; Monitoring</div>
<p class="wf-section-sub">Every run is recorded. This is not technical detail for its own sake — it is the foundation for reliability, accountability, and future quality control.</p>
<div style="background: var(--surface); border: 1px solid var(--border); border-radius: 16px; padding: 32px 36px; box-shadow: 0 1px 8px rgba(0,0,0,0.04);">
<div style="display: grid; grid-template-columns: auto 1fr; gap: 0; align-items: stretch;">
<!-- Left side: request -->
<div style="display: flex; flex-direction: column; align-items: center; padding-right: 24px; padding-top: 4px;">
<div class="wf-node wf-node-blue" style="writing-mode: horizontal-tb; font-size: 12px; padding: 12px 16px;">User Request</div>
<div style="width: 2px; flex: 1; background: linear-gradient(to bottom, var(--blue-border), var(--green-border)); margin: 8px 0;"></div>
<div class="wf-node wf-node-green" style="font-size: 12px; padding: 12px 16px;">Result</div>
</div>
<!-- Right side: what's recorded -->
<div style="border-left: 1px solid var(--border); padding-left: 28px; padding-top: 4px; display: flex; flex-direction: column; gap: 12px; justify-content: center;">
<div style="font-family: 'JetBrains Mono', monospace; font-size: 9px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 4px;">Recorded for every run</div>
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 10px;">
<div style="display: flex; gap: 10px; align-items: center; padding: 10px 14px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 8px; font-size: 13px; font-weight: 600;">
<span style="font-size: 16px;">📊</span> Token usage
</div>
<div style="display: flex; gap: 10px; align-items: center; padding: 10px 14px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 8px; font-size: 13px; font-weight: 600;">
<span style="font-size: 16px;">🔍</span> Search activity
</div>
<div style="display: flex; gap: 10px; align-items: center; padding: 10px 14px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 8px; font-size: 13px; font-weight: 600;">
<span style="font-size: 16px;"></span> Cache activity
</div>
<div style="display: flex; gap: 10px; align-items: center; padding: 10px 14px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 8px; font-size: 13px; font-weight: 600;">
<span style="font-size: 16px;">📋</span> Request traces &amp; outputs
</div>
</div>
</div>
</div>
</div>
<p class="wf-caption">Audit trail — every run is traceable and reviewable</p>
<div class="callout callout-blue" style="margin-top: 20px;">
<strong>What this gives you:</strong> a complete operational record of every check run through the system. This supports reliability monitoring, dispute resolution, and quality assurance — and provides a defensible trail if questions are ever raised about a specific result.
</div>
</div>
<!-- ── LEGAL BOUNDARY ── -->
<div class="wf-section" style="margin-bottom: 48px;">
<div class="wf-section-title">The Legal Boundary</div>
<p class="wf-section-sub">This section is the most important one for your review. It defines precisely what HitSafe.ai is — and what it is not.</p>
<div style="background: var(--surface); border: 1px solid var(--border); border-radius: 16px; padding: 36px 40px; box-shadow: 0 1px 8px rgba(0,0,0,0.04); margin-bottom: 24px;">
<div style="display: flex; flex-direction: column; align-items: center; gap: 0;">
<div class="wf-node wf-node-green" style="width: 100%; max-width: 420px; font-size: 14px; padding: 16px 20px;">
HitSafe.ai — Software Screening Utility
</div>
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 20px; width: 100%; max-width: 460px; margin-top: 8px;">
<div style="display: flex; flex-direction: column; align-items: center; gap: 6px;">
<div class="wf-arrow" style="height: 20px;"></div>
<div class="wf-node" style="width: 100%; font-size: 12px; background: var(--surface-2);">Flags likely issues</div>
</div>
<div style="display: flex; flex-direction: column; align-items: center; gap: 6px;">
<div class="wf-arrow" style="height: 20px;"></div>
<div class="wf-node" style="width: 100%; font-size: 12px; background: var(--surface-2);">Produces safer draft</div>
</div>
</div>
<div class="wf-arrow" style="margin-top: 4px;"></div>
<div class="wf-node wf-node-amber" style="width: 100%; max-width: 420px; font-size: 13px; padding: 14px 20px;">
Client's legal or compliance team reviews the output
</div>
<div class="wf-arrow"></div>
<div class="wf-node wf-node-blue" style="width: 100%; max-width: 420px; font-size: 13px; padding: 14px 20px; font-weight: 700;">
Final publication decision remains with the client
</div>
</div>
</div>
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 16px;">
<div style="padding: 20px 22px; background: var(--green-bg); border: 1px solid var(--green-border); border-radius: 12px;">
<div style="font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--green); margin-bottom: 12px;">✓ What HitSafe.ai is</div>
<ul style="list-style: none; display: flex; flex-direction: column; gap: 8px;">
<li style="font-size: 13px; color: var(--text-mid); display: flex; gap: 8px;"><span style="color: var(--green); font-weight: 700; flex-shrink: 0;"></span>A software screening tool</li>
<li style="font-size: 13px; color: var(--text-mid); display: flex; gap: 8px;"><span style="color: var(--green); font-weight: 700; flex-shrink: 0;"></span>A drafting utility for safer copy</li>
<li style="font-size: 13px; color: var(--text-mid); display: flex; gap: 8px;"><span style="color: var(--green); font-weight: 700; flex-shrink: 0;"></span>An evidence-gathering aid</li>
<li style="font-size: 13px; color: var(--text-mid); display: flex; gap: 8px;"><span style="color: var(--green); font-weight: 700; flex-shrink: 0;"></span>A tool that helps teams move faster toward a safer draft</li>
</ul>
</div>
<div style="padding: 20px 22px; background: var(--red-bg); border: 1px solid var(--red-border); border-radius: 12px;">
<div style="font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--red); margin-bottom: 12px;">✗ What HitSafe.ai is not</div>
<ul style="list-style: none; display: flex; flex-direction: column; gap: 8px;">
<li style="font-size: 13px; color: var(--text-mid); display: flex; gap: 8px;"><span style="color: var(--red); font-weight: 700; flex-shrink: 0;">×</span>A regulated legal advice service</li>
<li style="font-size: 13px; color: var(--text-mid); display: flex; gap: 8px;"><span style="color: var(--red); font-weight: 700; flex-shrink: 0;">×</span>A substitute for a compliance review</li>
<li style="font-size: 13px; color: var(--text-mid); display: flex; gap: 8px;"><span style="color: var(--red); font-weight: 700; flex-shrink: 0;">×</span>A guarantee of FCA approval</li>
<li style="font-size: 13px; color: var(--text-mid); display: flex; gap: 8px;"><span style="color: var(--red); font-weight: 700; flex-shrink: 0;">×</span>The final word on publication suitability</li>
</ul>
</div>
</div>
</div>
<!-- ── FINAL TAKEAWAY ── -->
<div style="background: var(--surface); border: 1.5px solid var(--green); border-radius: 20px; padding: 44px 48px; text-align: center; position: relative; overflow: hidden; box-shadow: 0 2px 20px rgba(0,0,0,0.05);">
<div style="position: absolute; inset: 0; background: radial-gradient(ellipse 70% 60% at 50% 100%, rgba(0,168,85,0.04) 0%, transparent 70%); pointer-events: none;"></div>
<div class="section-label" style="margin-bottom: 16px;">System Summary</div>
<p style="font-size: 20px; font-weight: 700; line-height: 1.55; color: var(--text-main); max-width: 600px; margin: 0 auto 28px;">
In practical terms, the system is designed to be <span style="color: var(--green);">explainable</span>, <span style="color: var(--green);">reviewable</span>, and safer than a black-box AI answer.
</p>
<p style="font-size: 14px; color: var(--text-mid); max-width: 560px; margin: 0 auto 32px; line-height: 1.7;">
The first review gathers evidence. The rule layer produces a deterministic result. Rewrites are separately generated and separately checked. Every run leaves an audit trail. And final publication responsibility always remains with the client.
</p>
<button class="btn-back" onclick="showMemo()" style="font-size: 12px; padding: 12px 28px; border-radius: 8px;">← Return to the Decision Memo</button>
</div>
</div><!-- /workflow body -->
<!-- WORKFLOW FOOTER -->
<footer style="border-top: 1px solid var(--border); padding: 28px 5%; margin-top: 60px; background: var(--surface);">
<div style="max-width: 860px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px;">
<div style="font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--text-muted); letter-spacing: 0.1em;">HITSAFE.AI · SYSTEM WORKFLOW OVERVIEW · INTERNAL DOCUMENT</div>
<button class="btn-back" onclick="showMemo()">← Back to Memo</button>
</div>
</footer>
</div><!-- /view-workflow -->
<script>
function showWorkflow() {
document.getElementById('view-memo').style.display = 'none';
const wf = document.getElementById('view-workflow');
wf.style.display = 'block';
wf.classList.add('active');
window.scrollTo({ top: 0, behavior: 'smooth' });
}
function showMemo() {
document.getElementById('view-workflow').style.display = 'none';
document.getElementById('view-workflow').classList.remove('active');
document.getElementById('view-memo').style.display = 'block';
window.scrollTo({ top: 0, behavior: 'smooth' });
}
</script>
</body>
</html>