tractatus/docs/outreach/Tractatus-Landing-Logo.svg
TheFlow afde719ac9 fix(i18n): correct JSON syntax in German and French translations
Fixed JSON syntax errors in 8 translation files (German and French for
researcher, implementer, leader, about pages). Removed extra closing
braces that were breaking translation loading on production.

All translations now validated with json.tool and working correctly on
all audience pages.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 17:59:01 +13:00

134 lines
7 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<svg width="200" height="200" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
<defs>
<!-- Central core gradient (shared with Passport - cyan to blue) -->
<radialGradient id="tractatusCore">
<stop offset="0%" style="stop-color:#64ffda;stop-opacity:1" />
<stop offset="70%" style="stop-color:#448aff;stop-opacity:1" />
<stop offset="100%" style="stop-color:#0ea5e9;stop-opacity:1" />
</radialGradient>
<!-- Service-specific gradients (6 governance services) -->
<linearGradient id="serviceBoundary" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#10b981;stop-opacity:1" />
<stop offset="100%" style="stop-color:#059669;stop-opacity:1" />
</linearGradient>
<linearGradient id="serviceInstruction" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#6366f1;stop-opacity:1" />
<stop offset="100%" style="stop-color:#4f46e5;stop-opacity:1" />
</linearGradient>
<linearGradient id="serviceValidator" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#8b5cf6;stop-opacity:1" />
<stop offset="100%" style="stop-color:#7c3aed;stop-opacity:1" />
</linearGradient>
<linearGradient id="servicePressure" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#f59e0b;stop-opacity:1" />
<stop offset="100%" style="stop-color:#d97706;stop-opacity:1" />
</linearGradient>
<linearGradient id="serviceMetacognitive" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#ec4899;stop-opacity:1" />
<stop offset="100%" style="stop-color:#db2777;stop-opacity:1" />
</linearGradient>
<linearGradient id="serviceDeliberation" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#14b8a6;stop-opacity:1" />
<stop offset="100%" style="stop-color:#0d9488;stop-opacity:1" />
</linearGradient>
<linearGradient id="connectionGradient" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:#64ffda;stop-opacity:0.2" />
<stop offset="50%" style="stop-color:#64ffda;stop-opacity:0.5" />
<stop offset="100%" style="stop-color:#64ffda;stop-opacity:0.2" />
</linearGradient>
<filter id="dropShadow">
<feDropShadow dx="0" dy="2" stdDeviation="3" flood-opacity="0.3"/>
</filter>
</defs>
<!-- Subtle background -->
<circle cx="100" cy="100" r="95" fill="rgba(255,255,255,0.02)"/>
<!-- Orbital rings with subtle rotation animation -->
<circle cx="100" cy="100" r="85" stroke="#64ffda" stroke-width="1" opacity="0.15" fill="none">
<animate attributeName="opacity" values="0.15;0.25;0.15" dur="6s" repeatCount="indefinite"/>
</circle>
<circle cx="100" cy="100" r="70" stroke="#64ffda" stroke-width="1" opacity="0.25" fill="none">
<animate attributeName="opacity" values="0.25;0.35;0.25" dur="5s" repeatCount="indefinite"/>
</circle>
<circle cx="100" cy="100" r="55" stroke="#64ffda" stroke-width="1" opacity="0.35" fill="none">
<animate attributeName="opacity" values="0.35;0.45;0.35" dur="4s" repeatCount="indefinite"/>
</circle>
<!-- Connection lines with pulsing animation -->
<g opacity="0.4">
<line x1="100" y1="100" x2="100" y2="35" stroke="url(#connectionGradient)" stroke-width="2">
<animate attributeName="opacity" values="0.3;0.6;0.3" dur="4s" repeatCount="indefinite"/>
</line>
<line x1="100" y1="100" x2="156" y2="67.5" stroke="url(#connectionGradient)" stroke-width="2">
<animate attributeName="opacity" values="0.3;0.6;0.3" dur="4s" begin="0.67s" repeatCount="indefinite"/>
</line>
<line x1="100" y1="100" x2="156" y2="132.5" stroke="url(#connectionGradient)" stroke-width="2">
<animate attributeName="opacity" values="0.3;0.6;0.3" dur="4s" begin="1.33s" repeatCount="indefinite"/>
</line>
<line x1="100" y1="100" x2="100" y2="165" stroke="url(#connectionGradient)" stroke-width="2">
<animate attributeName="opacity" values="0.3;0.6;0.3" dur="4s" begin="2s" repeatCount="indefinite"/>
</line>
<line x1="100" y1="100" x2="44" y2="132.5" stroke="url(#connectionGradient)" stroke-width="2">
<animate attributeName="opacity" values="0.3;0.6;0.3" dur="4s" begin="2.67s" repeatCount="indefinite"/>
</line>
<line x1="100" y1="100" x2="44" y2="67.5" stroke="url(#connectionGradient)" stroke-width="2">
<animate attributeName="opacity" values="0.3;0.6;0.3" dur="4s" begin="3.33s" repeatCount="indefinite"/>
</line>
</g>
<!-- Six governance service nodes with breathing animation (staggered) -->
<!-- 1. BoundaryEnforcer (top) - Green -->
<circle cx="100" cy="35" r="18" fill="url(#serviceBoundary)" filter="url(#dropShadow)" opacity="0.9">
<animate attributeName="r" values="18;21;18" dur="4s" repeatCount="indefinite"/>
</circle>
<!-- 2. InstructionPersistenceClassifier (top-right) - Indigo -->
<circle cx="156" cy="67.5" r="18" fill="url(#serviceInstruction)" filter="url(#dropShadow)" opacity="0.9">
<animate attributeName="r" values="18;21;18" dur="4s" begin="0.67s" repeatCount="indefinite"/>
</circle>
<!-- 3. CrossReferenceValidator (bottom-right) - Purple -->
<circle cx="156" cy="132.5" r="18" fill="url(#serviceValidator)" filter="url(#dropShadow)" opacity="0.9">
<animate attributeName="r" values="18;21;18" dur="4s" begin="1.33s" repeatCount="indefinite"/>
</circle>
<!-- 4. ContextPressureMonitor (bottom) - Amber -->
<circle cx="100" cy="165" r="18" fill="url(#servicePressure)" filter="url(#dropShadow)" opacity="0.9">
<animate attributeName="r" values="18;21;18" dur="4s" begin="2s" repeatCount="indefinite"/>
</circle>
<!-- 5. MetacognitiveVerifier (bottom-left) - Rose -->
<circle cx="44" cy="132.5" r="18" fill="url(#serviceMetacognitive)" filter="url(#dropShadow)" opacity="0.9">
<animate attributeName="r" values="18;21;18" dur="4s" begin="2.67s" repeatCount="indefinite"/>
</circle>
<!-- 6. PluralisticDeliberationOrchestrator (top-left) - Teal -->
<circle cx="44" cy="67.5" r="18" fill="url(#serviceDeliberation)" filter="url(#dropShadow)" opacity="0.9">
<animate attributeName="r" values="18;21;18" dur="4s" begin="3.33s" repeatCount="indefinite"/>
</circle>
<!-- Central core with breathing animation -->
<circle cx="100" cy="100" r="35" fill="url(#tractatusCore)" filter="url(#dropShadow)">
<animate attributeName="r" values="35;38;35" dur="3s" repeatCount="indefinite"/>
</circle>
<!-- Outer glow with pulsing -->
<circle cx="100" cy="100" r="38" fill="none" stroke="rgba(100,255,218,0.2)" stroke-width="2">
<animate attributeName="r" values="38;45;38" dur="3s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.2;0.4;0.2" dur="3s" repeatCount="indefinite"/>
</circle>
<!-- Center symbol - "T" -->
<circle cx="100" cy="100" r="28" fill="rgba(0,0,0,0.25)"/>
<text x="100" y="110" text-anchor="middle" font-family="Arial, sans-serif" font-size="32" font-weight="bold" fill="white" opacity="0.95">T</text>
</svg>