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>
134 lines
7 KiB
XML
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>
|