tractatus/public/home-ai.html
2026-02-11 14:49:48 +13:00

687 lines
52 KiB
HTML

<!DOCTYPE html>
<html lang="en" data-page="home-ai">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Home AI — Sovereign Locally-Trained Language Model | Tractatus</title>
<meta name="description" content="Home AI is a sovereign, locally-trained language model governed by the Tractatus framework. Training, inference, and governance all remain under community control.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://agenticgovernance.digital/home-ai.html">
<meta property="og:title" content="Home AI — Sovereign Language Model | Tractatus">
<meta property="og:description" content="A locally-trained language model where governance operates inside the training loop. Training data, model weights, and behavioural rules all remain under community control.">
<meta property="og:image" content="https://agenticgovernance.digital/images/social-preview.png">
<meta property="og:site_name" content="Tractatus Framework">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Home AI — Sovereign Language Model | Tractatus">
<meta name="twitter:description" content="A locally-trained language model where governance operates inside the training loop.">
<meta name="twitter:image" content="https://agenticgovernance.digital/images/social-preview.png">
<link rel="icon" type="image/svg+xml" href="/favicon-new.svg">
<link rel="stylesheet" href="/css/fonts.css?v=0.1.2.1770774588519">
<link rel="stylesheet" href="/css/tailwind.css?v=0.1.2.1770774588519">
<link rel="stylesheet" href="/css/tractatus-theme.min.css?v=0.1.2.1770774588519">
<style>
.skip-link { position: absolute; left: -9999px; top: 0; }
.skip-link:focus { left: 0; z-index: 100; background: white; padding: 1rem; border: 2px solid #3b82f6; }
a:focus, button:focus { outline: 3px solid #3b82f6; outline-offset: 2px; }
a:focus:not(:focus-visible) { outline: none; }
a:focus-visible { outline: 3px solid #3b82f6; outline-offset: 2px; }
</style>
</head>
<body class="bg-gray-50">
<a href="#main-content" class="skip-link">Skip to main content</a>
<!-- Navigation -->
<div id="navbar-placeholder" class="min-h-16"></div>
<script src="/js/components/navbar.js?v=0.1.2.1770774588519"></script>
<!-- Breadcrumb -->
<nav class="bg-gray-50 border-b border-gray-200 py-3" aria-label="Breadcrumb">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<ol class="flex items-center space-x-2 text-sm">
<li><a href="/" class="text-blue-600 hover:underline transition-colors" data-i18n="breadcrumb.home">Home</a></li>
<li class="text-gray-400">/</li>
<li class="text-gray-900 font-medium" aria-current="page" data-i18n="breadcrumb.current">Home AI</li>
</ol>
</div>
</nav>
<!-- Hero -->
<header role="banner">
<section class="bg-gradient-to-br from-teal-700 via-teal-800 to-emerald-800 text-white py-14">
<div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
<div class="inline-block bg-emerald-600 text-white px-4 py-1.5 rounded-lg font-semibold mb-4 text-sm" data-i18n="hero.badge">
SOVEREIGN LOCALLY-TRAINED LANGUAGE MODEL
</div>
<h1 class="text-4xl md:text-5xl font-bold mb-4" data-i18n="hero.title">Home AI</h1>
<p class="text-xl text-teal-100 max-w-3xl mx-auto mb-6" data-i18n-html="hero.subtitle">
A language model where the community controls the training data, the model weights, and the governance rules. Not just governed inference &mdash; governed training.
</p>
<div class="bg-amber-100 border-2 border-amber-400 rounded-lg p-4 max-w-2xl mx-auto">
<p class="text-amber-900 text-sm" data-i18n-html="hero.status">
<strong>Status:</strong> Home AI operates in production for inference. The sovereign training pipeline is designed and documented; hardware is being installed. Training has not yet begun. This page describes both current capability and intended architecture.
</p>
</div>
</div>
</section>
</header>
<main id="main-content" class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 pt-8 pb-12">
<!-- What is an SLL -->
<section class="mb-10">
<h2 class="text-3xl font-bold text-gray-900 mb-4" data-i18n="sll.heading">What is an SLL?</h2>
<div class="prose prose-lg text-gray-700">
<p class="mb-4" data-i18n-html="sll.intro">
An <strong>SLL</strong> (Sovereign Locally-trained Language Model) is distinct from both LLMs and SLMs. The distinction is not size &mdash; it is control.
</p>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 mt-6">
<div class="bg-red-50 rounded-lg p-5 border border-red-200">
<h3 class="text-lg font-bold text-red-900 mb-2" data-i18n="sll.llm_title">LLM</h3>
<p class="text-red-800 text-sm mb-2" data-i18n="sll.llm_subtitle">Large Language Model</p>
<ul class="text-red-700 text-sm space-y-1">
<li data-i18n="sll.llm_item1">Training: provider-controlled</li>
<li data-i18n="sll.llm_item2">Data: scraped at scale</li>
<li data-i18n="sll.llm_item3">Governance: provider's terms</li>
<li data-i18n="sll.llm_item4">User control: none</li>
</ul>
</div>
<div class="bg-amber-50 rounded-lg p-5 border border-amber-200">
<h3 class="text-lg font-bold text-amber-900 mb-2" data-i18n="sll.slm_title">SLM</h3>
<p class="text-amber-800 text-sm mb-2" data-i18n="sll.slm_subtitle">Small Language Model</p>
<ul class="text-amber-700 text-sm space-y-1">
<li data-i18n="sll.slm_item1">Training: provider-controlled</li>
<li data-i18n="sll.slm_item2">Data: curated by provider</li>
<li data-i18n="sll.slm_item3">Governance: partial (fine-tuning)</li>
<li data-i18n="sll.slm_item4">User control: limited</li>
</ul>
</div>
<div class="bg-emerald-50 rounded-lg p-5 border border-emerald-200">
<h3 class="text-lg font-bold text-emerald-900 mb-2" data-i18n="sll.sll_title">SLL</h3>
<p class="text-emerald-800 text-sm mb-2" data-i18n="sll.sll_subtitle">Sovereign Locally-trained</p>
<ul class="text-emerald-700 text-sm space-y-1">
<li data-i18n="sll.sll_item1">Training: community-controlled</li>
<li data-i18n="sll.sll_item2">Data: community-owned</li>
<li data-i18n="sll.sll_item3">Governance: architecturally enforced</li>
<li data-i18n="sll.sll_item4">User control: full</li>
</ul>
</div>
</div>
<div class="bg-gray-50 rounded-lg p-6 border border-gray-200 mt-6">
<p class="text-gray-700 text-sm italic" data-i18n="sll.tradeoff">
The honest trade-off: an SLL is a less powerful system that serves your interests, rather than a more powerful one that serves someone else's. We consider this an acceptable exchange.
</p>
</div>
</section>
<!-- Two-Model Architecture -->
<section class="mb-10">
<h2 class="text-3xl font-bold text-gray-900 mb-4" data-i18n="two_model.heading">Two-Model Architecture</h2>
<p class="text-gray-700 mb-4" data-i18n-html="two_model.intro">
Home AI uses two models of different sizes, routed by task complexity. This is not a fallback mechanism &mdash; each model is optimised for its role.
</p>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
<div class="bg-white rounded-lg shadow-sm p-6 border-l-4 border-blue-500">
<h3 class="text-lg font-bold text-gray-900 mb-2" data-i18n-html="two_model.fast_title">3B Model &mdash; Fast Assistant</h3>
<p class="text-gray-700 text-sm mb-3" data-i18n="two_model.fast_desc">
Handles help queries, tooltips, error explanations, short summaries, and translation. Target response time: under 5 seconds complete.
</p>
<p class="text-gray-500 text-xs" data-i18n="two_model.fast_routing">
Routing triggers: simple queries, known FAQ patterns, single-step tasks.
</p>
</div>
<div class="bg-white rounded-lg shadow-sm p-6 border-l-4 border-purple-500">
<h3 class="text-lg font-bold text-gray-900 mb-2" data-i18n-html="two_model.deep_title">8B Model &mdash; Deep Reasoning</h3>
<p class="text-gray-700 text-sm mb-3" data-i18n="two_model.deep_desc">
Handles life story generation, year-in-review narratives, complex summarisation, and sensitive correspondence. Target response time: under 90 seconds.
</p>
<p class="text-gray-500 text-xs" data-i18n="two_model.deep_routing">
Routing triggers: keywords like "everything about", multi-source retrieval, grief/trauma markers.
</p>
</div>
</div>
<p class="text-gray-600 text-sm mt-4" data-i18n-html="two_model.footer">
Both models operate under the same governance stack. The routing decision itself is governed &mdash; the ContextPressureMonitor can override routing if session health requires it.
</p>
</section>
<!-- Three Training Tiers -->
<section class="mb-10">
<h2 class="text-3xl font-bold text-gray-900 mb-4" data-i18n="training_tiers.heading">Three Training Tiers</h2>
<p class="text-gray-700 mb-4" data-i18n="training_tiers.intro">
Training is not monolithic. Three tiers serve different scopes, each with appropriate governance constraints.
</p>
<div class="space-y-4">
<div class="bg-white rounded-lg shadow-sm p-6 border-l-4 border-indigo-500">
<div class="flex items-baseline justify-between mb-2">
<h3 class="text-lg font-bold text-gray-900" data-i18n="training_tiers.tier1_title">Tier 1: Platform Base</h3>
<span class="text-xs bg-indigo-100 text-indigo-800 px-2 py-1 rounded" data-i18n="training_tiers.tier1_badge">All communities</span>
</div>
<p class="text-gray-700 text-sm mb-2" data-i18n="training_tiers.tier1_desc">
Trained on platform documentation, philosophy, feature guides, and FAQ content. Provides the foundational understanding of how Village works, what Home AI's values are, and how to help members navigate the platform.
</p>
<p class="text-gray-500 text-xs" data-i18n="training_tiers.tier1_update">
Update frequency: weekly during beta, quarterly at GA. Training method: QLoRA fine-tuning.
</p>
</div>
<div class="bg-white rounded-lg shadow-sm p-6 border-l-4 border-teal-500">
<div class="flex items-baseline justify-between mb-2">
<h3 class="text-lg font-bold text-gray-900" data-i18n="training_tiers.tier2_title">Tier 2: Tenant Adapters</h3>
<span class="text-xs bg-teal-100 text-teal-800 px-2 py-1 rounded" data-i18n="training_tiers.tier2_badge">Per community</span>
</div>
<p class="text-gray-700 text-sm mb-2" data-i18n-html="training_tiers.tier2_desc">
Each community trains a lightweight LoRA adapter on its own content &mdash; stories, documents, photos, and events that members have explicitly consented to include. This allows Home AI to answer questions like "What stories has Grandma shared?" without accessing any other community's data.
</p>
<p class="text-gray-500 text-xs" data-i18n-html="training_tiers.tier2_update">
Adapters are small (50&ndash;100MB). Consent is per-content-item. Content marked "only me" is never included regardless of consent. Training uses DPO (Direct Preference Optimization) for value alignment.
</p>
</div>
<div class="bg-white rounded-lg shadow-sm p-6 border-l-4 border-rose-400">
<div class="flex items-baseline justify-between mb-2">
<h3 class="text-lg font-bold text-gray-900" data-i18n="training_tiers.tier3_title">Tier 3: Individual (Future)</h3>
<span class="text-xs bg-rose-100 text-rose-800 px-2 py-1 rounded" data-i18n="training_tiers.tier3_badge">Per member</span>
</div>
<p class="text-gray-700 text-sm mb-2" data-i18n-html="training_tiers.tier3_desc">
Personal adapters that learn individual preferences and interaction patterns. Speculative &mdash; this tier raises significant questions about feasibility, privacy, and the minimum training data required for meaningful personalisation.
</p>
<p class="text-gray-500 text-xs" data-i18n="training_tiers.tier3_update">
Research questions documented. Implementation not planned until Tier 2 is validated.
</p>
</div>
</div>
</section>
<!-- Governance During Training -->
<section class="mb-10">
<h2 class="text-3xl font-bold text-gray-900 mb-4" data-i18n="governance_training.heading">Governance During Training</h2>
<div class="prose prose-lg text-gray-700">
<p class="mb-4" data-i18n-html="governance_training.intro1">
This is the central research contribution. Most AI governance frameworks operate at inference time &mdash; they filter or constrain responses after the model has already been trained. Home AI embeds governance <strong>inside the training loop</strong>.
</p>
<p class="mb-4" data-i18n-html="governance_training.intro2">
This follows Christopher Alexander's principle of <em>Not-Separateness</em>: governance is woven into the training architecture, not applied afterward. The BoundaryEnforcer validates every training batch before the forward pass. If a batch contains cross-tenant data, data without consent, or content marked as private, the batch is rejected and the training step does not proceed.
</p>
</div>
<div class="bg-gray-900 rounded-lg p-6 mt-6 font-mono text-sm">
<p class="text-green-400 mb-1" data-i18n="governance_training.code_comment1"># Governance inside the training loop (Not-Separateness)</p>
<p class="text-gray-300 mb-1" data-i18n="governance_training.code_line1">for batch in training_data:</p>
<p class="text-gray-300 mb-1" data-i18n-html="governance_training.code_line2">&nbsp;&nbsp;if not BoundaryEnforcer.validate(batch):</p>
<p class="text-gray-300 mb-1" data-i18n-html="governance_training.code_line3">&nbsp;&nbsp;&nbsp;&nbsp;continue&nbsp;&nbsp;<span class="text-green-400"># Governance rejects batch</span></p>
<p class="text-gray-300 mb-1" data-i18n-html="governance_training.code_line4">&nbsp;&nbsp;loss = model.forward(batch)</p>
<p class="text-gray-300 mb-3" data-i18n-html="governance_training.code_line5">&nbsp;&nbsp;loss.backward()</p>
<p class="text-red-400 mb-1" data-i18n-html="governance_training.code_comment2"># NOT this &mdash; governance separated from training</p>
<p class="text-gray-500 mb-1" data-i18n="governance_training.code_anti1">for batch in training_data:</p>
<p class="text-gray-500 mb-1" data-i18n-html="governance_training.code_anti2">&nbsp;&nbsp;loss = model.forward(batch)</p>
<p class="text-gray-500 mb-1" data-i18n-html="governance_training.code_anti3">&nbsp;&nbsp;loss.backward()</p>
<p class="text-gray-500" data-i18n-html="governance_training.code_anti4">filter_outputs_later()&nbsp;&nbsp;<span class="text-red-400"># Too late</span></p>
</div>
<div class="bg-blue-50 rounded-lg p-6 border border-blue-200 mt-6">
<h3 class="text-lg font-bold text-blue-900 mb-2" data-i18n="governance_training.why_title">Why both training-time and inference-time governance?</h3>
<p class="text-blue-800 text-sm mb-2" data-i18n-html="governance_training.why_text">
<strong>Training shapes tendency; architecture constrains capability.</strong> A model trained to respect boundaries can still be jailbroken. A model that fights against governance rules wastes compute and produces worse outputs. The combined approach makes the model <em>tend toward</em> governed behaviour while the architecture makes it <em>impossible</em> to violate structural boundaries.
</p>
<p class="text-blue-700 text-xs italic" data-i18n-html="governance_training.why_note">
Research from the Agent Lightning integration suggests governance adds approximately 5% performance overhead &mdash; an acceptable trade-off for architectural safety constraints. This requires validation at scale.
</p>
</div>
<p class="text-gray-600 text-sm mt-4" data-i18n="governance_training.footer">
Training-time governance is only half the picture. The same Tractatus framework also operates at runtime in the Village codebase. The next section explains how these two layers work together.
</p>
</section>
<!-- Dual-Layer Tractatus Architecture -->
<section class="mb-10">
<h2 class="text-3xl font-bold text-gray-900 mb-4" data-i18n="dual_layer.heading">Dual-Layer Tractatus Architecture</h2>
<div class="prose prose-lg text-gray-700">
<p class="mb-4" data-i18n-html="dual_layer.intro">
Home AI is governed by Tractatus at <strong>two distinct layers</strong> simultaneously. This is the architectural insight that distinguishes the SLL approach from both ungoverned models and bolt-on safety filters.
</p>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6 mt-6">
<div class="bg-teal-50 rounded-lg p-6 border-2 border-teal-300">
<div class="inline-block bg-teal-600 text-white px-3 py-1 rounded text-xs font-semibold mb-3" data-i18n="dual_layer.layer_a_badge">LAYER A: INHERENT</div>
<h3 class="text-lg font-bold text-gray-900 mb-3" data-i18n="dual_layer.layer_a_title">Tractatus Inside the Model</h3>
<p class="text-gray-700 text-sm mb-3" data-i18n-html="dual_layer.layer_a_desc">
During training, the BoundaryEnforcer validates every batch. DPO alignment shapes preferences toward governed behaviour. The model <em>learns</em> to respect boundaries, prefer transparent responses, and defer values decisions to humans.
</p>
<ul class="text-gray-700 text-sm space-y-2">
<li data-i18n-html="dual_layer.layer_a_item1"><strong>Mechanism:</strong> Governance in the training loop</li>
<li data-i18n-html="dual_layer.layer_a_item2"><strong>Effect:</strong> Model tends toward governed behaviour</li>
<li data-i18n-html="dual_layer.layer_a_item3"><strong>Limitation:</strong> Tendencies can be overridden by adversarial prompting</li>
</ul>
</div>
<div class="bg-indigo-50 rounded-lg p-6 border-2 border-indigo-300">
<div class="inline-block bg-indigo-600 text-white px-3 py-1 rounded text-xs font-semibold mb-3" data-i18n="dual_layer.layer_b_badge">LAYER B: ACTIVE</div>
<h3 class="text-lg font-bold text-gray-900 mb-3" data-i18n="dual_layer.layer_b_title">Tractatus Around the Model</h3>
<p class="text-gray-700 text-sm mb-3" data-i18n="dual_layer.layer_b_desc">
At runtime, the full six-service governance stack operates in the Village codebase. Every interaction passes through BoundaryEnforcer, PluralisticDeliberationOrchestrator, MetacognitiveVerifier, CrossReferenceValidator, ContextPressureMonitor, and InstructionPersistenceClassifier.
</p>
<ul class="text-gray-700 text-sm space-y-2">
<li data-i18n-html="dual_layer.layer_b_item1"><strong>Mechanism:</strong> Six architectural services in the critical path</li>
<li data-i18n-html="dual_layer.layer_b_item2"><strong>Effect:</strong> Structural boundaries cannot be violated</li>
<li data-i18n-html="dual_layer.layer_b_item3"><strong>Limitation:</strong> Adds ~5% performance overhead per interaction</li>
</ul>
</div>
</div>
<div class="bg-gray-900 rounded-lg p-6 mt-6">
<p class="text-emerald-400 font-mono text-sm mb-3 font-bold" data-i18n="dual_layer.principle_title">The dual-layer principle:</p>
<p class="text-gray-300 font-mono text-sm mb-1" data-i18n-html="dual_layer.principle_line1">Training shapes <span class="text-teal-400">tendency</span>.</p>
<p class="text-gray-300 font-mono text-sm mb-4" data-i18n-html="dual_layer.principle_line2">Architecture constrains <span class="text-indigo-400">capability</span>.</p>
<p class="text-gray-400 font-mono text-xs" data-i18n="dual_layer.principle_line3">A model that has internalised governance rules AND operates within governance architecture</p>
<p class="text-gray-400 font-mono text-xs" data-i18n="dual_layer.principle_line4">produces better outputs than either approach alone. The model works WITH the guardrails,</p>
<p class="text-gray-400 font-mono text-xs" data-i18n-html="dual_layer.principle_line5">not against them &mdash; reducing compute waste and improving response quality.</p>
</div>
<div class="bg-amber-50 rounded-lg p-5 border border-amber-200 mt-4">
<p class="text-amber-900 text-sm" data-i18n-html="dual_layer.caveat">
<strong>Honest caveat:</strong> Layer A (inherent governance via training) is designed but not yet empirically validated &mdash; training has not begun. Layer B (active governance via Village codebase) has been operating in production for 11+ months. The dual-layer thesis is an architectural commitment, not yet a demonstrated result.
</p>
</div>
<div class="bg-white rounded-lg shadow-sm p-5 border border-gray-200 mt-4">
<p class="text-gray-700 text-sm">
<strong>Related research:</strong> The <a href="/docs-viewer.html?slug=taonga-centred-steering-governance-polycentric-authority-for-sovereign-small-language-models" class="text-blue-600 hover:underline">Taonga-Centred Steering Governance</a> paper (Feb 2026) extends this dual-layer architecture with polycentric authority &mdash; replacing platform hierarchy with co-equal steering authorities drawn from te ao M&#257;ori concepts of rangatiratanga and kaitiakitanga.
</p>
</div>
</section>
<!-- Philosophical Foundations -->
<section class="mb-10">
<h2 class="text-3xl font-bold text-gray-900 mb-4" data-i18n="philosophy.heading">Philosophical Foundations</h2>
<p class="text-gray-700 mb-4" data-i18n-html="philosophy.intro">
Home AI's governance draws from four philosophical traditions, each contributing a specific architectural principle. These are not decorative references &mdash; they translate into concrete design decisions.
</p>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<div class="bg-white rounded-lg shadow-sm p-5 border border-gray-200">
<h3 class="text-lg font-bold text-gray-900 mb-2" data-i18n-html="philosophy.berlin_title">Isaiah Berlin &mdash; Value Pluralism</h3>
<p class="text-gray-700 text-sm mb-2" data-i18n="philosophy.berlin_desc">
Values are genuinely plural and sometimes incompatible. When freedom conflicts with equality, there may be no single correct resolution. Home AI presents options without hierarchy and documents what each choice sacrifices.
</p>
<p class="text-gray-500 text-xs italic" data-i18n="philosophy.berlin_arch">Architectural expression: PluralisticDeliberationOrchestrator presents trade-offs; it does not resolve them.</p>
</div>
<div class="bg-white rounded-lg shadow-sm p-5 border border-gray-200">
<h3 class="text-lg font-bold text-gray-900 mb-2" data-i18n-html="philosophy.wittgenstein_title">Ludwig Wittgenstein &mdash; Language Boundaries</h3>
<p class="text-gray-700 text-sm mb-2" data-i18n-html="philosophy.wittgenstein_desc">
Language shapes what can be thought and expressed. Some things that matter most resist systematic expression. Home AI acknowledges the limits of what language models can capture &mdash; particularly around grief, cultural meaning, and lived experience.
</p>
<p class="text-gray-500 text-xs italic" data-i18n="philosophy.wittgenstein_arch">Architectural expression: BoundaryEnforcer defers values decisions to humans, acknowledging limits of computation.</p>
</div>
<div class="bg-white rounded-lg shadow-sm p-5 border border-gray-200">
<h3 class="text-lg font-bold text-gray-900 mb-2" data-i18n-html="philosophy.indigenous_title">Indigenous Sovereignty &mdash; Data as Relationship</h3>
<p class="text-gray-700 text-sm mb-2" data-i18n-html="philosophy.indigenous_desc">
Te Mana Raraunga (M&#257;ori Data Sovereignty), CARE Principles, and OCAP (First Nations Canada) provide frameworks where data is not property but relationship. Whakapapa (genealogy) belongs to the collective, not individuals. Consent is a community process, not an individual checkbox.
</p>
<p class="text-gray-500 text-xs italic" data-i18n="philosophy.indigenous_arch">Architectural expression: tenant isolation, collective consent mechanisms, intergenerational stewardship.</p>
</div>
<div class="bg-white rounded-lg shadow-sm p-5 border border-gray-200">
<h3 class="text-lg font-bold text-gray-900 mb-2" data-i18n-html="philosophy.alexander_title">Christopher Alexander &mdash; Living Architecture</h3>
<p class="text-gray-700 text-sm mb-2" data-i18n="philosophy.alexander_desc">
Five principles guide how governance evolves: Deep Interlock (services coordinate), Structure-Preserving (changes enhance without breaking), Gradients Not Binary (intensity levels), Living Process (evidence-based evolution), Not-Separateness (governance embedded, not bolted on).
</p>
<p class="text-gray-500 text-xs italic" data-i18n="philosophy.alexander_arch">Architectural expression: all six governance services and the training loop architecture.</p>
</div>
</div>
</section>
<!-- Three-Layer Governance -->
<section class="mb-10">
<h2 class="text-3xl font-bold text-gray-900 mb-4" data-i18n="three_layer_gov.heading">Three-Layer Governance</h2>
<p class="text-gray-700 mb-4" data-i18n="three_layer_gov.intro">
Governance operates at three levels, each with different scope and mutability.
</p>
<div class="space-y-4">
<div class="bg-emerald-50 rounded-lg p-6 border border-emerald-200">
<h3 class="text-lg font-bold text-emerald-900 mb-2" data-i18n="three_layer_gov.layer1_title">Layer 1: Platform (Immutable)</h3>
<p class="text-emerald-800 text-sm mb-2" data-i18n="three_layer_gov.layer1_desc">
Structural constraints that apply to all communities. Tenant data isolation. Governance in the critical path. Options presented without hierarchy. These cannot be disabled by tenant administrators or individual members.
</p>
<p class="text-emerald-700 text-xs" data-i18n="three_layer_gov.layer1_enforcement">Enforcement: architectural (BoundaryEnforcer blocks violations before they execute).</p>
</div>
<div class="bg-blue-50 rounded-lg p-6 border border-blue-200">
<h3 class="text-lg font-bold text-blue-900 mb-2" data-i18n="three_layer_gov.layer2_title">Layer 2: Tenant Constitution</h3>
<p class="text-blue-800 text-sm mb-2" data-i18n-html="three_layer_gov.layer2_desc">
Rules defined by community administrators. Content handling policies (e.g., "deceased members require moderator review"), cultural protocols (e.g., M&#257;ori tangi customs), visibility defaults, and AI training consent models. Each community configures its own constitution within Layer 1 constraints.
</p>
<p class="text-blue-700 text-xs" data-i18n="three_layer_gov.layer2_enforcement">Enforcement: constitutional rules validated by CrossReferenceValidator per tenant.</p>
</div>
<div class="bg-purple-50 rounded-lg p-6 border border-purple-200">
<h3 class="text-lg font-bold text-purple-900 mb-2" data-i18n="three_layer_gov.layer3_title">Layer 3: Adopted Wisdom Traditions</h3>
<p class="text-purple-800 text-sm mb-2" data-i18n="three_layer_gov.layer3_desc">
Individual members and communities can adopt principles from wisdom traditions to influence how Home AI frames responses. These are voluntary, reversible, and transparent. They influence presentation, not content access. Multiple traditions can be adopted simultaneously; conflicts are resolved by the member, not the AI.
</p>
<p class="text-purple-700 text-xs" data-i18n="three_layer_gov.layer3_enforcement">Enforcement: framing hints in response generation. Override always available.</p>
</div>
</div>
</section>
<!-- Wisdom Traditions -->
<section class="mb-10">
<h2 class="text-3xl font-bold text-gray-900 mb-4" data-i18n="wisdom.heading">Wisdom Traditions</h2>
<p class="text-gray-700 mb-4" data-i18n="wisdom.intro">
Home AI offers thirteen wisdom traditions that members can adopt to guide AI behaviour. Each tradition has been validated against the Stanford Encyclopedia of Philosophy as the primary scholarly reference. Adoption is voluntary, transparent, and reversible.
</p>
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3">
<div class="bg-white rounded-lg p-4 border border-gray-200">
<h4 class="font-bold text-gray-900 text-sm mb-1" data-i18n="wisdom.berlin_title">Berlin: Value Pluralism</h4>
<p class="text-gray-600 text-xs" data-i18n="wisdom.berlin_desc">Present options without ranking; acknowledge what each choice sacrifices.</p>
</div>
<div class="bg-white rounded-lg p-4 border border-gray-200">
<h4 class="font-bold text-gray-900 text-sm mb-1" data-i18n="wisdom.stoic_title">Stoic: Equanimity and Virtue</h4>
<p class="text-gray-600 text-xs" data-i18n="wisdom.stoic_desc">Focus on what can be controlled; emphasise character in ancestral stories.</p>
</div>
<div class="bg-white rounded-lg p-4 border border-gray-200">
<h4 class="font-bold text-gray-900 text-sm mb-1" data-i18n="wisdom.weil_title">Weil: Attention to Affliction</h4>
<p class="text-gray-600 text-xs" data-i18n="wisdom.weil_desc">Resist summarising grief; preserve names and specifics rather than abstracting.</p>
</div>
<div class="bg-white rounded-lg p-4 border border-gray-200">
<h4 class="font-bold text-gray-900 text-sm mb-1" data-i18n="wisdom.care_title">Care Ethics: Relational Responsibility</h4>
<p class="text-gray-600 text-xs" data-i18n="wisdom.care_desc">Attend to how content affects specific people, not abstract principles.</p>
</div>
<div class="bg-white rounded-lg p-4 border border-gray-200">
<h4 class="font-bold text-gray-900 text-sm mb-1" data-i18n="wisdom.confucian_title">Confucian: Relational Duty</h4>
<p class="text-gray-600 text-xs" data-i18n="wisdom.confucian_desc">Frame stories in terms of family roles and reciprocal obligations.</p>
</div>
<div class="bg-white rounded-lg p-4 border border-gray-200">
<h4 class="font-bold text-gray-900 text-sm mb-1" data-i18n="wisdom.buddhist_title">Buddhist: Impermanence</h4>
<p class="text-gray-600 text-xs" data-i18n="wisdom.buddhist_desc">Acknowledge that memories and interpretations change; extend compassion.</p>
</div>
<div class="bg-white rounded-lg p-4 border border-gray-200">
<h4 class="font-bold text-gray-900 text-sm mb-1" data-i18n="wisdom.ubuntu_title">Ubuntu: Communal Personhood</h4>
<p class="text-gray-600 text-xs" data-i18n="wisdom.ubuntu_desc">"I am because we are." Stories belong to the community, not the individual.</p>
</div>
<div class="bg-white rounded-lg p-4 border border-gray-200">
<h4 class="font-bold text-gray-900 text-sm mb-1" data-i18n="wisdom.african_title">African Diaspora: Sankofa</h4>
<p class="text-gray-600 text-xs" data-i18n="wisdom.african_desc">Preserve what was nearly lost; honour fictive kinship and chosen family.</p>
</div>
<div class="bg-white rounded-lg p-4 border border-gray-200">
<h4 class="font-bold text-gray-900 text-sm mb-1" data-i18n-html="wisdom.indigenous_title">Indigenous/M&#257;ori: Whakapapa</h4>
<p class="text-gray-600 text-xs" data-i18n="wisdom.indigenous_desc">Kinship with ancestors, land, and descendants. Collective ownership of knowledge.</p>
</div>
<div class="bg-white rounded-lg p-4 border border-gray-200">
<h4 class="font-bold text-gray-900 text-sm mb-1" data-i18n="wisdom.jewish_title">Jewish: Tikkun Olam</h4>
<p class="text-gray-600 text-xs" data-i18n="wisdom.jewish_desc">Repair, preserve memory (zachor), uphold dignity even of difficult relatives.</p>
</div>
<div class="bg-white rounded-lg p-4 border border-gray-200">
<h4 class="font-bold text-gray-900 text-sm mb-1" data-i18n="wisdom.islamic_title">Islamic: Mercy and Justice</h4>
<p class="text-gray-600 text-xs" data-i18n="wisdom.islamic_desc">Balance rahma (mercy) with adl (justice) in sensitive content.</p>
</div>
<div class="bg-white rounded-lg p-4 border border-gray-200">
<h4 class="font-bold text-gray-900 text-sm mb-1" data-i18n="wisdom.hindu_title">Hindu: Dharmic Order</h4>
<p class="text-gray-600 text-xs" data-i18n="wisdom.hindu_desc">Role-appropriate duties within larger order; karma as consequence, not punishment.</p>
</div>
<div class="bg-white rounded-lg p-4 border border-gray-200">
<h4 class="font-bold text-gray-900 text-sm mb-1" data-i18n="wisdom.alexander_title">Alexander: Living Architecture</h4>
<p class="text-gray-600 text-xs" data-i18n="wisdom.alexander_desc">Governance as living system; changes emerge from operational experience.</p>
</div>
</div>
<div class="bg-gray-50 rounded-lg p-5 border border-gray-200 mt-4">
<p class="text-gray-700 text-sm" data-i18n-html="wisdom.disclaimer">
<strong>What this is not:</strong> Selecting "Buddhist" does not mean the AI practises Buddhism. These are framing tendencies &mdash; they influence how the AI presents options, not what content is accessible. A member can always override tradition-influenced framing on any response. The system does not claim algorithmic moral reasoning.
</p>
</div>
</section>
<!-- Indigenous Data Sovereignty -->
<section class="mb-10">
<div class="bg-gradient-to-r from-blue-50 to-purple-50 rounded-xl p-8 border border-blue-200">
<h2 class="text-2xl font-bold text-gray-900 mb-4" data-i18n="indigenous.heading">Indigenous Data Sovereignty</h2>
<p class="text-gray-700 mb-4" data-i18n="indigenous.intro">
Indigenous data sovereignty differs fundamentally from Western privacy models. Where Western privacy centres on individual rights and consent-as-checkbox, indigenous frameworks centre on collective rights, community process, and intergenerational stewardship.
</p>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 mb-4">
<div class="bg-white rounded-lg p-4">
<h4 class="font-bold text-gray-900 text-sm mb-1" data-i18n="indigenous.tmr_title">Te Mana Raraunga</h4>
<p class="text-gray-600 text-xs" data-i18n-html="indigenous.tmr_desc">M&#257;ori Data Sovereignty. Rangatiratanga (self-determination), kaitiakitanga (guardianship for future generations), whanaungatanga (kinship as unified entity).</p>
</div>
<div class="bg-white rounded-lg p-4">
<h4 class="font-bold text-gray-900 text-sm mb-1" data-i18n="indigenous.care_title">CARE Principles</h4>
<p class="text-gray-600 text-xs" data-i18n="indigenous.care_desc">Global Indigenous Data Alliance. Collective Benefit, Authority to Control, Responsibility, Ethics. Data ecosystems designed for indigenous benefit.</p>
</div>
<div class="bg-white rounded-lg p-4">
<h4 class="font-bold text-gray-900 text-sm mb-1" data-i18n="indigenous.ocap_title">OCAP</h4>
<p class="text-gray-600 text-xs" data-i18n="indigenous.ocap_desc">First Nations Canada. Ownership, Control, Access, Possession. Communities physically control their data.</p>
</div>
</div>
<p class="text-gray-700 mb-4" data-i18n-html="indigenous.implications">
Concrete architectural implications: whakapapa (genealogy) cannot be atomised into individual data points. Tapu (sacred/restricted) content triggers cultural review before AI processing. Consent for AI training requires wh&#257;nau consensus, not individual opt-in. Elder (kaum&#257;tua) approval is required for training on sacred genealogies.
</p>
<p class="text-gray-600 text-sm italic" data-i18n-html="indigenous.note">
These principles are informed by Te Tiriti o Waitangi and predate Western technology governance by centuries. We consider them prior art, not novel invention. Actual implementation requires ongoing consultation with M&#257;ori cultural advisors &mdash; this specification is a starting point.
</p>
</div>
</section>
<!-- Training Infrastructure -->
<section class="mb-10">
<h2 class="text-3xl font-bold text-gray-900 mb-4" data-i18n="infrastructure.heading">Training Infrastructure</h2>
<p class="text-gray-700 mb-4" data-i18n="infrastructure.intro">
Home AI follows a "train local, deploy remote" model. The training hardware sits in the developer's home. Trained model weights are deployed to production servers for inference. This keeps training costs low and training data under physical control.
</p>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<div class="bg-white rounded-lg shadow-sm p-5 border border-gray-200">
<h3 class="text-lg font-bold text-gray-900 mb-2" data-i18n="infrastructure.local_title">Local Training</h3>
<ul class="text-gray-700 text-sm space-y-2">
<li data-i18n="infrastructure.local_item1">Consumer GPU with 24GB VRAM via external enclosure</li>
<li data-i18n-html="infrastructure.local_item2">QLoRA fine-tuning (4-bit quantisation fits in VRAM budget)</li>
<li data-i18n-html="infrastructure.local_item3">DPO (Direct Preference Optimization) &mdash; requires only 2 models in memory vs PPO's 4</li>
<li data-i18n-html="infrastructure.local_item4">Overnight training runs &mdash; compatible with off-grid solar power</li>
<li data-i18n="infrastructure.local_item5">Sustained power draw under 500W</li>
</ul>
</div>
<div class="bg-white rounded-lg shadow-sm p-5 border border-gray-200">
<h3 class="text-lg font-bold text-gray-900 mb-2" data-i18n="infrastructure.remote_title">Remote Inference</h3>
<ul class="text-gray-700 text-sm space-y-2">
<li data-i18n="infrastructure.remote_item1">Model weights deployed to production servers (OVH France, Catalyst NZ)</li>
<li data-i18n="infrastructure.remote_item2">Inference via Ollama with per-tenant adapter loading</li>
<li data-i18n="infrastructure.remote_item3">Hybrid GPU/CPU architecture with health monitoring</li>
<li data-i18n="infrastructure.remote_item4">Home GPU available via WireGuard VPN as primary inference engine</li>
<li data-i18n="infrastructure.remote_item5">CPU fallback ensures availability when GPU is offline</li>
</ul>
</div>
</div>
<div class="bg-gray-50 rounded-lg p-5 border border-gray-200 mt-4">
<p class="text-gray-700 text-sm" data-i18n-html="infrastructure.why_consumer">
<strong>Why consumer hardware?</strong> The SLL thesis is that sovereign AI training should be accessible, not reserved for organisations with data centre budgets. A single consumer GPU can fine-tune a 7B model efficiently via QLoRA. The entire training infrastructure fits on a desk.
</p>
</div>
</section>
<!-- Bias and Verification -->
<section class="mb-10">
<h2 class="text-3xl font-bold text-gray-900 mb-4" data-i18n="bias.heading">Bias Documentation and Verification</h2>
<p class="text-gray-700 mb-4" data-i18n="bias.intro">
Home AI operates in the domain of family storytelling, which carries specific bias risks. Six bias categories have been documented with detection prompts, debiasing examples, and evaluation criteria.
</p>
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3">
<div class="bg-white rounded-lg p-4 border border-gray-200">
<h4 class="font-bold text-gray-900 text-sm" data-i18n="bias.family_title">Family Structure</h4>
<p class="text-gray-600 text-xs" data-i18n="bias.family_desc">Nuclear family as default; same-sex parents, blended families, single parents treated as normative.</p>
</div>
<div class="bg-white rounded-lg p-4 border border-gray-200">
<h4 class="font-bold text-gray-900 text-sm" data-i18n="bias.elder_title">Elder Representation</h4>
<p class="text-gray-600 text-xs" data-i18n="bias.elder_desc">Deficit framing of aging; elders as active agents with expertise, not passive subjects.</p>
</div>
<div class="bg-white rounded-lg p-4 border border-gray-200">
<h4 class="font-bold text-gray-900 text-sm" data-i18n="bias.cultural_title">Cultural/Religious</h4>
<p class="text-gray-600 text-xs" data-i18n="bias.cultural_desc">Christian-normative assumptions; equal treatment of all cultural practices and observances.</p>
</div>
<div class="bg-white rounded-lg p-4 border border-gray-200">
<h4 class="font-bold text-gray-900 text-sm" data-i18n="bias.geographic_title">Geographic/Place</h4>
<p class="text-gray-600 text-xs" data-i18n="bias.geographic_desc">Anglo-American defaults; location-appropriate references and cultural context.</p>
</div>
<div class="bg-white rounded-lg p-4 border border-gray-200">
<h4 class="font-bold text-gray-900 text-sm" data-i18n="bias.grief_title">Grief/Trauma</h4>
<p class="text-gray-600 text-xs" data-i18n="bias.grief_desc">Efficiency over sensitivity; pacing, attention to particulars, no premature closure.</p>
</div>
<div class="bg-white rounded-lg p-4 border border-gray-200">
<h4 class="font-bold text-gray-900 text-sm" data-i18n="bias.naming_title">Naming Conventions</h4>
<p class="text-gray-600 text-xs" data-i18n="bias.naming_desc">Western name-order assumptions; correct handling of patronymics, honorifics, diacritics.</p>
</div>
</div>
<div class="bg-white rounded-lg shadow-sm p-5 border border-gray-200 mt-6">
<h3 class="text-lg font-bold text-gray-900 mb-3" data-i18n="bias.verification_title">Verification Framework</h3>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<div>
<h4 class="font-bold text-gray-900 text-sm mb-2" data-i18n="bias.metrics_title">Governance Metrics</h4>
<ul class="text-gray-700 text-xs space-y-1">
<li data-i18n="bias.metrics_item1">Tenant leak rate: target 0%</li>
<li data-i18n="bias.metrics_item2">Constitutional violations: target &lt;1%</li>
<li data-i18n="bias.metrics_item3">Value framework compliance: target &gt;80%</li>
<li data-i18n="bias.metrics_item4">Refusal appropriateness: target &gt;95%</li>
</ul>
</div>
<div>
<h4 class="font-bold text-gray-900 text-sm mb-2" data-i18n="bias.testing_title">Testing Methods</h4>
<ul class="text-gray-700 text-xs space-y-1">
<li data-i18n="bias.testing_item1">Secret phrase probes for tenant isolation</li>
<li data-i18n="bias.testing_item2">Constraint persistence after N training rounds</li>
<li data-i18n="bias.testing_item3">Red-team adversarial prompts (jailbreak, injection, cross-tenant)</li>
<li data-i18n-html="bias.testing_item4">Human review sampling (5&ndash;100% depending on content type)</li>
</ul>
</div>
</div>
</div>
<div class="bg-white rounded-lg shadow-sm p-5 border border-gray-200 mt-4">
<p class="text-gray-700 text-sm">
<strong>Related research:</strong> The <a href="/docs-viewer.html?slug=steering-vectors-mechanical-bias-sovereign-ai" class="text-blue-600 hover:underline">Steering Vectors and Mechanical Bias</a> paper (Feb 2026) investigates whether LLM biases operate at a sub-reasoning level and how sovereign SLL deployments can apply inference-time debiasing via steering vectors &mdash; a technique that modifies model activations without retraining.
</p>
</div>
</section>
<!-- What's Live Today -->
<section class="mb-10">
<h2 class="text-3xl font-bold text-gray-900 mb-4" data-i18n="live_today.heading">What's Live Today</h2>
<p class="text-gray-700 mb-4" data-i18n="live_today.intro">
Home AI currently operates in production with the following governed features. These run under the full six-service governance stack.
</p>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<div class="bg-white rounded-lg shadow-sm p-5 border border-gray-200">
<h3 class="font-bold text-gray-900 mb-2" data-i18n="live_today.rag_title">RAG-Based Help</h3>
<p class="text-gray-700 text-sm" data-i18n="live_today.rag_desc">Vector search retrieves relevant documentation, filtered by member permissions. Responses grounded in retrieved documents, not training data alone.</p>
</div>
<div class="bg-white rounded-lg shadow-sm p-5 border border-gray-200">
<h3 class="font-bold text-gray-900 mb-2" data-i18n="live_today.ocr_title">Document OCR</h3>
<p class="text-gray-700 text-sm" data-i18n="live_today.ocr_desc">Text extraction from uploaded documents. Results stored within member scope, not shared across tenants or used for training without consent.</p>
</div>
<div class="bg-white rounded-lg shadow-sm p-5 border border-gray-200">
<h3 class="font-bold text-gray-900 mb-2" data-i18n="live_today.story_title">Story Assistance</h3>
<p class="text-gray-700 text-sm" data-i18n="live_today.story_desc">Writing prompts, structural advice, narrative enhancement. Cultural context decisions deferred to the storyteller, not resolved by the AI.</p>
</div>
<div class="bg-white rounded-lg shadow-sm p-5 border border-gray-200">
<h3 class="font-bold text-gray-900 mb-2" data-i18n="live_today.memory_title">AI Memory Transparency</h3>
<p class="text-gray-700 text-sm" data-i18n="live_today.memory_desc">Members view and control what the AI remembers. Independent consent for triage memory, OCR memory, and summarisation memory.</p>
</div>
</div>
</section>
<!-- Limitations -->
<section class="mb-10">
<h2 class="text-3xl font-bold text-gray-900 mb-4" data-i18n="limitations.heading">Limitations and Open Questions</h2>
<div class="bg-amber-50 border-l-4 border-amber-500 p-6 rounded-r-lg">
<ul class="space-y-3 text-amber-800">
<li class="flex items-start">
<span class="mr-2 font-bold">&bull;</span>
<span data-i18n-html="limitations.item1"><strong>Training not yet begun:</strong> The SLL architecture is designed and documented. Hardware is being installed. But no model has been trained yet. Claims about training-time governance are architectural design, not empirical results.</span>
</li>
<li class="flex items-start">
<span class="mr-2 font-bold">&bull;</span>
<span data-i18n-html="limitations.item2"><strong>Limited deployment:</strong> Home AI operates across four federated tenants within one platform built by the framework developer. Governance effectiveness cannot be generalised without independent deployments.</span>
</li>
<li class="flex items-start">
<span class="mr-2 font-bold">&bull;</span>
<span data-i18n-html="limitations.item3"><strong>Self-reported metrics:</strong> Performance and safety figures are reported by the same team that built the system. Independent audit is planned but not yet conducted.</span>
</li>
<li class="flex items-start">
<span class="mr-2 font-bold">&bull;</span>
<span data-i18n-html="limitations.item4"><strong>Tradition operationalisation:</strong> Can rich philosophical traditions be authentically reduced to framing hints? A member selecting "Buddhist" does not mean they understand or practise Buddhism. This risks superficiality.</span>
</li>
<li class="flex items-start">
<span class="mr-2 font-bold">&bull;</span>
<span data-i18n-html="limitations.item5"><strong>Training persistence unknown:</strong> Whether governance constraints survive hundreds of training rounds without degradation is an open research question. Drift detection is designed but untested.</span>
</li>
<li class="flex items-start">
<span class="mr-2 font-bold">&bull;</span>
<span data-i18n-html="limitations.item6"><strong>Adversarial testing limited:</strong> The governance stack has not been subjected to systematic adversarial evaluation. Red-teaming is a priority.</span>
</li>
<li class="flex items-start">
<span class="mr-2 font-bold">&bull;</span>
<span data-i18n-html="limitations.item7"><strong>Scale unknown:</strong> Governance overhead (~5% per interaction) is measured at current scale. Whether this holds under high throughput is untested.</span>
</li>
<li class="flex items-start">
<span class="mr-2 font-bold">&bull;</span>
<span data-i18n-html="limitations.item8"><strong>Cultural validation needed:</strong> Indigenous knowledge module specifications require ongoing consultation with M&#257;ori cultural advisors. The documentation is a starting point, not a final authority.</span>
</li>
</ul>
</div>
</section>
<!-- Further Reading -->
<section class="mb-8">
<h2 class="text-2xl font-bold text-gray-900 mb-6" data-i18n="further_reading.heading">Further Reading</h2>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<a href="/architecture.html" class="block bg-white rounded-lg shadow-sm p-5 border border-gray-200 hover:shadow-md hover:-translate-y-0.5 transition-all">
<h3 class="font-bold text-gray-900 mb-1" data-i18n="further_reading.arch_title">System Architecture</h3>
<p class="text-sm text-gray-600" data-i18n="further_reading.arch_desc">Five architectural principles and six governance services</p>
</a>
<a href="/village-case-study.html" class="block bg-white rounded-lg shadow-sm p-5 border border-gray-200 hover:shadow-md hover:-translate-y-0.5 transition-all">
<h3 class="font-bold text-gray-900 mb-1" data-i18n="further_reading.case_title">Village Case Study</h3>
<p class="text-sm text-gray-600" data-i18n-html="further_reading.case_desc">Tractatus in production &mdash; metrics, evidence, and honest limitations</p>
</a>
<a href="/architectural-alignment.html" class="block bg-white rounded-lg shadow-sm p-5 border border-gray-200 hover:shadow-md hover:-translate-y-0.5 transition-all">
<h3 class="font-bold text-gray-900 mb-1" data-i18n="further_reading.paper_title">Architectural Alignment Paper</h3>
<p class="text-sm text-gray-600" data-i18n="further_reading.paper_desc">Academic paper on governance during training</p>
</a>
<a href="/researcher.html" class="block bg-white rounded-lg shadow-sm p-5 border border-gray-200 hover:shadow-md hover:-translate-y-0.5 transition-all">
<h3 class="font-bold text-gray-900 mb-1" data-i18n="further_reading.researcher_title">For Researchers</h3>
<p class="text-sm text-gray-600" data-i18n="further_reading.researcher_desc">Open questions, collaboration opportunities, and data access</p>
</a>
</div>
</section>
</main>
<!-- Footer & Scripts -->
<script src="/js/i18n-simple.js?v=0.1.2.1770774588519"></script>
<script src="/js/components/language-selector.js?v=0.1.2.1770774588519"></script>
<script src="/js/scroll-animations.js?v=0.1.2.1770774588519"></script>
<script src="/js/page-transitions.js?v=0.1.2.1770774588519"></script>
<script src="/js/components/footer.js?v=0.1.2.1770774588519"></script>
<script src="/js/components/feedback.js?v=0.1.2.1770774588519"></script>
</body>
</html>