-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathterms.html
More file actions
262 lines (235 loc) · 26.5 KB
/
Copy pathterms.html
File metadata and controls
262 lines (235 loc) · 26.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Terms of Service: The Anchorflight Check for Synthetic Users</title>
<meta name="description" content="The Anchorflight Check for Synthetic Users helps product teams know when synthetic users help and when they'll fool you.">
<meta property="og:title" content="The Anchorflight Check for Synthetic Users">
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://unpkg.com/lucide@latest"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700&family=Geist+Mono:wght@400;500;600&display=swap');
:root {
--pf-dark:#0F2124; --pf-bg:#f5f4f0; --pf-alt:#eeecea; --pf-card:#fafaf9;
--pf-accent:#3a3aff; --pf-accent-hover:#2d2de0; --pf-accent-dark:#8080ff;
--pf-text:#0d0d0d; --pf-text2:#6b6860;
--pf-success:#16a34a; --pf-danger:#dc2626; --pf-amber:#f59e0b;
--pf-border:rgba(13,13,13,0.10); --pf-border-dark:rgba(255,255,255,0.10);
}
body { font-family:'Geist', system-ui, sans-serif !important; background:var(--pf-bg); color:var(--pf-text); }
.pf-mono { font-family:'Geist Mono', ui-monospace, monospace; }
.pf-display { font-weight:300; letter-spacing:-0.025em; line-height:1.05; }
.pf-card { background:var(--pf-card); border:1px solid var(--pf-border); border-radius:1rem; }
.pf-dark { background:var(--pf-dark); color:rgba(255,255,255,0.92); }
.pf-btn { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; border-radius:9999px; font-size:.875rem; font-weight:500; padding:.75rem 1.5rem; transition:all .18s ease; cursor:pointer; }
.pf-btn-primary { background:var(--pf-accent); color:#fff; }
.pf-btn-primary:hover { background:var(--pf-accent-hover); }
.pf-pill { display:inline-flex; align-items:center; gap:.4rem; font-family:'Geist Mono', monospace; border-radius:9999px; font-size:.72rem; border:1px solid var(--pf-border); color:var(--pf-text2); padding:.35rem .85rem; }
.pf-accent { color:var(--pf-accent); }
/* ---- Global reskin layer: map legacy Tailwind neutrals to the palette.
Leave semantic emerald/amber/rose/indigo/violet alone. ---- */
.bg-white { background-color:var(--pf-card) !important; }
.bg-slate-50, .bg-slate-100, .bg-slate-950, .bg-slate-900 { }
.bg-slate-50, .bg-slate-50\/50, .bg-slate-100 { background-color:var(--pf-alt) !important; }
.text-slate-900, .text-slate-800 { color:var(--pf-text) !important; }
.text-slate-700, .text-slate-600, .text-slate-500, .text-slate-400 { color:var(--pf-text2) !important; }
.border-slate-200, .border-slate-100 { border-color:var(--pf-border) !important; }
.bg-blue-600, .bg-blue-500 { background-color:var(--pf-accent) !important; }
.hover\:bg-blue-500:hover, .hover\:bg-blue-700:hover, .hover\:bg-blue-600:hover { background-color:var(--pf-accent-hover) !important; }
.text-blue-600, .text-blue-700, .text-blue-500 { color:var(--pf-accent) !important; }
.border-blue-500, .border-blue-600, .border-blue-200 { border-color:var(--pf-accent) !important; }
.shadow-sm, .shadow, .shadow-md, .shadow-lg, .shadow-xl { box-shadow:none !important; }
.prose h2 { font-size: 1.125rem; font-weight: 700; color: var(--pf-text); margin-top: 2rem; margin-bottom: 0.5rem; }
.prose h3 { font-size: 0.9375rem; font-weight: 600; color: var(--pf-text); margin-top: 1.25rem; margin-bottom: 0.375rem; }
.prose p { font-size: 0.875rem; color: var(--pf-text2); line-height: 1.75; margin-bottom: 0.75rem; }
.prose ul { font-size: 0.875rem; color: var(--pf-text2); line-height: 1.75; list-style: disc; padding-left: 1.5rem; margin-bottom: 0.75rem; }
.prose li { margin-bottom: 0.25rem; }
.prose a { color: var(--pf-accent); text-decoration: underline; text-underline-offset: 2px; }
</style>
</head>
<body class="bg-slate-50 text-slate-800 min-h-screen">
<!-- Header -->
<header class="bg-white border-b border-slate-200 sticky top-0 z-50 shadow-sm">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-4 flex items-center justify-between gap-4">
<div class="flex items-center gap-2.5">
<span class="w-5 h-5 rounded-md" style="background:var(--pf-accent)"></span><span class="pf-mono text-sm font-semibold tracking-[0.18em]" style="color:var(--pf-text)">ANCHORFLIGHT</span>
</div>
<a href="index.html" class="flex items-center gap-1.5 text-xs font-semibold text-slate-600 hover:text-slate-900 border border-slate-200 hover:border-slate-300 px-3 py-1.5 rounded-lg transition-all">
<i data-lucide="arrow-left" class="w-3.5 h-3.5"></i> Back to App
</a>
</div>
</header>
<main class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
<!-- Page Header -->
<div class="mb-10">
<div class="flex items-center gap-2 mb-3">
<span class="bg-blue-100 text-blue-800 text-xs font-bold px-3 py-1 rounded-full border border-blue-200 uppercase tracking-wider">Legal</span>
</div>
<h1 class="text-3xl font-extrabold text-slate-900 tracking-tight">Terms of Service</h1>
<p class="text-slate-500 text-sm mt-2">Effective date: <strong class="text-slate-700">June 17, 2026</strong> • Last updated: <strong class="text-slate-700">June 24, 2026</strong></p>
<p class="text-slate-500 text-sm mt-1">Issued by: <strong class="text-slate-700">PRIME ISO Services, LLC</strong>, owned and operated by Terry M Patterson</p>
</div>
<div class="bg-amber-50 border border-amber-200 rounded-xl p-4 mb-8 flex gap-3 text-xs text-amber-900">
<i data-lucide="alert-triangle" class="w-5 h-5 text-amber-600 shrink-0 mt-0.5"></i>
<p>Please read these Terms of Service carefully before using The Anchorflight Check for Synthetic Users. By accessing or using the application, you agree to be bound by these terms.</p>
</div>
<div class="bg-white border border-slate-200 rounded-2xl p-8 shadow-sm prose">
<h2>1. Parties and Acceptance</h2>
<p>These Terms of Service ("Terms") constitute a legally binding agreement between you ("User," "you," or "your") and <strong>PRIME ISO Services, LLC</strong> ("PRIME ISO," "we," "us," or "our"), a limited liability company owned and operated by Terry M Patterson, governing your use of The Anchorflight Check for Synthetic Users and all associated tools, features, and content (collectively, the "Service"). These Terms address conduct obligations, AI output liability, API key responsibilities, and the limitation of liability framework. Rights to use, reproduce, modify, and distribute the Service are separately and independently governed by the Apache License, Version 2.0 described in §2.</p>
<p>By accessing or using the Service in any manner, you represent that you have read, understood, and agree to be bound by these Terms and our <a href="privacy.html">Privacy Policy</a>. If you do not agree, you must immediately discontinue use of the Service.</p>
<h2>2. Open Source License</h2>
<p>The source code of the Service is made available under the <strong>Apache License, Version 2.0</strong> ("Apache-2.0"), a copy of which is included in the repository at <a href="https://github.com/vivistar/synth/blob/main/LICENSE" target="_blank">github.com/vivistar/synth</a> and the full text of which is available at <a href="https://www.apache.org/licenses/LICENSE-2.0" target="_blank">apache.org/licenses/LICENSE-2.0</a>. The Apache-2.0 license is a separate, independent grant that exists alongside and is not superseded by these Terms.</p>
<p>Under Apache-2.0, you are free to:</p>
<ul>
<li><strong>Reproduce and distribute</strong> copies of the Service in Source or Object form;</li>
<li><strong>Prepare Derivative Works</strong>: modify, transform, and build upon the Service for any purpose, including commercially;</li>
<li><strong>Sublicense</strong> your modifications under terms of your choosing, provided you comply with the Apache-2.0 conditions;</li>
</ul>
<p>provided that you: (a) include a copy of the Apache-2.0 license in any distribution; (b) cause any modified files to carry prominent notices stating that you changed them; (c) retain all copyright, patent, trademark, and attribution notices from the Source form; and (d) include the contents of the NOTICE file in any distribution. These Terms govern your <em>conduct obligations</em>: how you may behave while using the Service, your AI output responsibilities, your API key obligations, and the liability framework between you and PRIME ISO. They do not restrict the rights granted by Apache-2.0.</p>
<p>In the event of any conflict between these Terms and the Apache-2.0 license with respect to the scope of rights to reproduce, modify, or distribute the Service, the Apache-2.0 license shall control.</p>
<h2>3. Description of the Service</h2>
<p>The Anchorflight Check for Synthetic Users was designed to help product managers evaluate the appropriateness and reliability of synthetic user research within their product development and operations workflows. The Service includes:</p>
<ul>
<li>An 8-step governance flowchart and interactive map;</li>
<li>A step-by-step wizard for evaluating product decision checkpoints;</li>
<li>An AI Sandbox and Prompt Architect for generating synthetic user personas;</li>
<li>A Usability Tester for AI-assisted interface evaluation using synthetic user perspectives, including support for image-based (screenshot) analysis;</li>
<li>A "How to Build Synthetic Users" guide with copy-paste prompt templates for product managers;</li>
<li>A Lifecycle Rationale view for strategic research positioning.</li>
</ul>
<p>The Service integrates with the <strong>OpenRouter API</strong> (openrouter.ai) to route AI requests to supported large language models. By default, the Service uses <code>openai/gpt-4o-mini</code>. Users may optionally supply a custom OpenRouter API key to route requests through their own billing account. PRIME ISO does not operate or control the underlying AI models.</p>
<h2>4. Eligibility</h2>
<p>You must be at least 18 years of age and have the legal authority to enter into these Terms on behalf of yourself or the organization you represent. By using the Service, you represent and warrant that you meet these requirements.</p>
<h2>5. Permitted Use</h2>
<p>Your rights to reproduce, modify, and distribute the Service are governed by Apache-2.0 (see §2). These Terms impose no additional restrictions on those rights. You agree to exercise those rights only for lawful purposes and in a manner that does not infringe the rights of others. Examples of permitted use include:</p>
<ul>
<li>Evaluating whether synthetic user research is appropriate for a given product decision;</li>
<li>Generating AI-assisted governance reports for internal or external review;</li>
<li>Educating product teams on the risks and appropriate applications of synthetic users;</li>
<li>Adapting, forking, or redistributing the Service, commercially or otherwise, in compliance with Apache-2.0 conditions;</li>
<li>Embedding the Service within other tools or workflows, provided Apache-2.0 attribution notices are retained.</li>
</ul>
<h2>6. Prohibited Conduct</h2>
<p>The following restrictions apply to your <em>conduct</em> while using the Service, regardless of the rights granted by Apache-2.0. You may not:</p>
<ul>
<li>Replace, misrepresent, or fraudulently substitute AI-generated outputs for verified human research data without appropriate disclosure to affected parties;</li>
<li>Produce or distribute synthetic data intended to deceive regulators, investors, customers, or other stakeholders;</li>
<li>Violate any applicable law, regulation, or third-party right in connection with your use of the Service;</li>
<li>Transmit malicious code or interfere with the integrity or operation of any deployment of the Service;</li>
<li>Remove or obscure the Apache-2.0 copyright and attribution notices required by the license;</li>
<li>Use the Service in any manner that creates a legal or regulatory obligation on PRIME ISO without prior written agreement.</li>
</ul>
<h2>7. API Keys and Third-Party Services</h2>
<p>The Service integrates with the <strong>OpenRouter API</strong> (openrouter.ai) to provide AI-generated analysis, persona simulation, and usability evaluation. When deployed on PRIME ISO's canonical Vercel hosting, AI requests are routed through a server-side proxy that uses a PRIME ISO-managed OpenRouter API key, so your browser sends no key of its own to OpenRouter. You may optionally provide your own OpenRouter API key ("Custom Key") to route calls directly from your browser through your own billing account. By providing a Custom Key, you acknowledge and agree that:</p>
<ul>
<li>Your Custom Key is stored only in your browser session and is never transmitted to PRIME ISO servers;</li>
<li>You are solely responsible for the security, management, and compliance obligations associated with your Custom Key;</li>
<li>Your use of the OpenRouter API via your Custom Key is subject to OpenRouter's Terms of Service and the terms of any underlying model provider;</li>
<li>PRIME ISO is not responsible for any charges, data exposure, or service disruptions arising from your use or misuse of a Custom Key.</li>
</ul>
<p>If no Custom Key is provided and PRIME ISO's server-side proxy key is unavailable or unset, AI-dependent features will not function. Self-hosted deployments and forks distributed under Apache-2.0 must supply their own API credentials.</p>
<h2>8. AI-Generated Content Disclaimer</h2>
<p>The Service uses artificial intelligence to generate governance assessments, persona prompts, simulated user interactions, and analytical reports. You expressly acknowledge that:</p>
<ul>
<li>AI-generated outputs are probabilistic and may contain errors, hallucinations, or outdated information;</li>
<li>No output from the Service constitutes professional legal, financial, compliance, or business advice;</li>
<li>All AI-generated content must be reviewed by qualified human professionals before being used in consequential product decisions;</li>
<li>PRIME ISO makes no warranty that AI outputs will accurately reflect real user behavior, market conditions, or regulatory requirements.</li>
</ul>
<h2>9. Intellectual Property</h2>
<p>The Service and its underlying governance methodology, design, and content are copyright <strong>2026 Terry M. Patterson</strong>. The Service is made available under the Apache License, Version 2.0 (see §2), which grants you broad rights to reproduce, modify, and distribute the work without requiring further permission, subject to the conditions of that license.</p>
<p>These Terms do not grant you any trademark rights in the PRIME ISO Services, LLC name, logo, or brand, nor in the name of Terry M. Patterson. You may not use either name to imply endorsement of a derivative work without explicit written permission.</p>
<p>AI-generated outputs produced through your use of the Service ("Output Content") are owned by you, subject to any restrictions imposed by the underlying AI provider's terms. PRIME ISO retains no rights to Output Content and does not store it.</p>
<h2>10. Privacy</h2>
<p>Your use of the Service is governed by our <a href="privacy.html">Privacy Policy</a>, which is incorporated into these Terms by reference. Because the Service is a client-side application, PRIME ISO does not collect, store, or process personal data entered into the tool. Please review the Privacy Policy for full details.</p>
<h2>11. Disclaimers of Warranty</h2>
<p>THE SERVICE IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED. TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, PRIME ISO DISCLAIMS ALL WARRANTIES, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, ACCURACY, AND NON-INFRINGEMENT. PRIME ISO DOES NOT WARRANT THAT THE SERVICE WILL BE UNINTERRUPTED, ERROR-FREE, OR FREE OF HARMFUL COMPONENTS.</p>
<h2>12. Limitation of Liability</h2>
<p>TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL PRIME ISO SERVICES, LLC, ITS MEMBERS, OFFICERS, EMPLOYEES, OR AGENTS BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES, INCLUDING BUT NOT LIMITED TO LOSS OF PROFITS, DATA, GOODWILL, OR BUSINESS OPPORTUNITIES, ARISING OUT OF OR IN CONNECTION WITH YOUR USE OF THE SERVICE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
<p>IN NO EVENT SHALL PRIME ISO'S TOTAL CUMULATIVE LIABILITY TO YOU EXCEED ONE HUNDRED UNITED STATES DOLLARS (USD $100.00).</p>
<h2>13. Indemnification</h2>
<p>You agree to indemnify, defend, and hold harmless PRIME ISO Services, LLC and its members, officers, employees, and agents from and against any claims, damages, losses, liabilities, costs, and expenses (including reasonable attorneys' fees) arising out of or relating to: (a) your use of the Service; (b) your violation of these Terms; (c) your violation of any applicable law or third-party right; or (d) any AI-generated output you use in a product or business context.</p>
<h2>14. Modifications to the Service and Terms</h2>
<p>PRIME ISO may update or discontinue any hosted or canonical version of the Service at any time without notice. We may also update these Terms from time to time. The "Last Updated" date at the top of this page indicates when the most recent revision was made. Continued use of PRIME ISO's distribution of the Service after a revision constitutes acceptance of the updated Terms.</p>
<p>Importantly, the Apache-2.0 license is <strong>perpetual and irrevocable</strong> (except as provided in Section 3 of that license for patent litigation). Once a version of the Service has been published under Apache-2.0, the copyright holder cannot rescind those license rights with respect to that version, even if these Terms are later revised or the Service is discontinued. Any version you have already obtained under Apache-2.0 remains licensed under those terms.</p>
<h2>15. Governing Law and Dispute Resolution</h2>
<p>These Terms shall be governed by and construed in accordance with the laws of the State of Delaware, United States, without regard to its conflict of law provisions. Any dispute arising under these Terms shall be resolved by binding arbitration administered under the rules of the American Arbitration Association, with proceedings conducted in English. Nothing in this section prevents either party from seeking injunctive relief in a court of competent jurisdiction.</p>
<h2>16. Severability and Entire Agreement</h2>
<p>If any provision of these Terms is found to be unenforceable, it shall be modified to the minimum extent necessary to make it enforceable, and all remaining provisions shall remain in full force and effect. These Terms, together with the <a href="privacy.html">Privacy Policy</a>, constitute the entire agreement between you and PRIME ISO regarding your <em>conduct obligations</em> in connection with the Service. They do not supersede, modify, or limit the rights independently granted to you by the Apache License, Version 2.0, which operates as a separate and parallel legal instrument.</p>
<h2>17. Attribution</h2>
<p>The Anchorflight Check for Synthetic Users was designed and authored by <strong>Terry M. Patterson</strong>, founder of PRIME ISO Services, LLC. The tool's governance methodology, feature design, and content are the result of Terry M. Patterson's original research into responsible AI use in product management. Attribution requirements under Apache-2.0 (§2) are satisfied by retaining the copyright notice, the NOTICE file, and a link to <a href="https://github.com/vivistar/synth" target="_blank">github.com/vivistar/synth</a> in any distribution.</p>
<h2>18. Contact</h2>
<p>If you have questions about these Terms, please contact PRIME ISO Services, LLC at:</p>
<div class="bg-slate-50 border border-slate-100 rounded-xl p-4 mt-2 text-xs text-slate-700 not-prose space-y-1">
<p class="font-bold text-slate-900">PRIME ISO Services, LLC</p>
<p>Legal & Compliance Department</p>
<p>The Anchorflight Check for Synthetic Users: Terms Inquiry</p>
</div>
</div>
<!-- Page nav -->
<div class="mt-8 flex flex-wrap gap-3 justify-center text-xs">
<a href="privacy.html" class="flex items-center gap-1.5 border border-slate-200 hover:border-slate-300 bg-white px-4 py-2 rounded-lg text-slate-600 hover:text-slate-900 transition-all font-semibold">
<i data-lucide="lock" class="w-3.5 h-3.5"></i> Privacy Policy
</a>
<a href="trust.html" class="flex items-center gap-1.5 border border-slate-200 hover:border-slate-300 bg-white px-4 py-2 rounded-lg text-slate-600 hover:text-slate-900 transition-all font-semibold">
<i data-lucide="shield" class="w-3.5 h-3.5"></i> Trust Center
</a>
<a href="index.html" class="flex items-center gap-1.5 bg-slate-900 hover:bg-slate-800 text-white px-4 py-2 rounded-lg transition-all font-semibold">
<i data-lucide="arrow-left" class="w-3.5 h-3.5"></i> Return to App
</a>
</div>
</main>
<footer class="pf-dark mt-16">
<div class="max-w-6xl mx-auto px-6 md:px-10 py-14">
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-12 gap-10">
<div class="lg:col-span-5">
<div class="flex items-center gap-2.5">
<span class="w-5 h-5 rounded-md" style="background:var(--pf-accent)"></span>
<span class="pf-mono text-sm font-semibold tracking-[0.18em] text-white">ANCHORFLIGHT</span>
</div>
<p class="text-sm text-white/50 mt-4 max-w-xs leading-relaxed">The Anchorflight Check for Synthetic Users: know when to trust AI, and when to send in the humans.</p>
</div>
<div class="lg:col-span-3">
<p class="pf-mono text-[11px] tracking-widest text-white/40">PAGES</p>
<div class="mt-5 flex flex-col gap-3 items-start">
<a href="index.html" class="text-sm text-white/80 hover:text-white transition-colors">Home</a>
<a href="index.html#checkpoint" class="text-sm text-white/80 hover:text-white transition-colors">Active Checkpoint</a>
<a href="index.html#wizard" class="text-sm text-white/80 hover:text-white transition-colors">Cohort Due Diligence</a>
<a href="index.html#map" class="text-sm text-white/80 hover:text-white transition-colors">The 8 Gate Anchorflight Framework</a>
</div>
</div>
<div class="lg:col-span-4">
<p class="pf-mono text-[11px] tracking-widest text-white/40">RESOURCES</p>
<div class="mt-5 flex flex-col gap-3 items-start">
<a href="index.html#sandbox" class="text-sm text-white/80 hover:text-white transition-colors">Synthetic Persona Prompt Architect</a>
<a href="index.html#usability" class="text-sm text-white/80 hover:text-white transition-colors">Usability Tester</a>
<a href="index.html#rationale" class="text-sm text-white/80 hover:text-white transition-colors">Lifecycle Rationale</a>
<a href="index.html" class="text-sm text-white/80 hover:text-white transition-colors">How to Build Synthetic Users</a>
<a href="index.html" class="text-sm text-white/80 hover:text-white transition-colors">Usability Evaluation Guide</a>
</div>
</div>
</div>
<p class="text-center text-white/50 text-sm mt-16 max-w-2xl mx-auto leading-relaxed">Always align synthetic persona configurations with physical customer telemetry, support tickets, and direct feedback channels.</p>
<div class="flex flex-wrap items-center justify-center gap-x-3 gap-y-2 mt-6 text-xs text-white/50">
<a href="references.html" class="hover:text-white underline underline-offset-2 transition-colors">References</a>
<span class="text-white/20">·</span>
<a href="https://www.apache.org/licenses/LICENSE-2.0" target="_blank" class="hover:text-white underline underline-offset-2 transition-colors">Apache-2.0</a>
<span class="text-white/20">·</span>
<a href="https://github.com/vivistar/synth" target="_blank" class="hover:text-white underline underline-offset-2 transition-colors">github.com/vivistar/synth</a>
<span class="text-white/20">·</span>
<a href="https://github.com/vivistar/synth/discussions" target="_blank" class="hover:text-white underline underline-offset-2 transition-colors">Feedback</a>
</div>
<div class="mt-10 pt-6 flex flex-col sm:flex-row items-center justify-between gap-3" style="border-top:1px solid var(--pf-border-dark)">
<p class="pf-mono text-[11px] text-white/40">Anchorflight · Powered by OpenRouter · <span id="footer-year"></span></p>
<p class="text-xs text-white/40">© <span class="pf-year"></span> Terry M. Patterson · Licensed under Apache-2.0</p>
<p class="pf-mono text-[11px] text-white/40 flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full" style="background:var(--pf-success)"></span> All systems nominal</p>
</div>
</div>
</footer>
<script>
lucide.createIcons();
document.querySelectorAll('#footer-year, .pf-year').forEach(function(el){ el.textContent = new Date().getFullYear(); });
</script>
</body>
</html>