<!doctype html>
<html lang="en" class="h-full">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Transformer-Based Cognition Engine</title>
<script src="https://cdn.tailwindcss.com"></script>
<script src="/_sdk/element_sdk.js"></script>
<link href="https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=Exo+2:wght@300;400;600;700;800&display=swap" rel="stylesheet">
<style>
body {
box-sizing: border-box;
}
* {
font-family: 'Exo 2', sans-serif;
}
.mono {
font-family: 'Space Mono', monospace;
}
.neural-bg {
background: linear-gradient(135deg, #0f0f23 0%, #1a1a3e 50%, #16213e 100%);
position: relative;
}
.neural-bg::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-image:
radial-gradient(circle at 20% 30%, rgba(139, 92, 246, 0.1) 0%, transparent 50%),
radial-gradient(circle at 80% 70%, rgba(59, 130, 246, 0.1) 0%, transparent 50%);
pointer-events: none;
}
.glow-text {
text-shadow: 0 0 20px currentColor, 0 0 40px currentColor;
}
.pulse-glow {
animation: pulseGlow 3s ease-in-out infinite;
}
@keyframes pulseGlow {
0%, 100% {
filter: drop-shadow(0 0 8px currentColor) drop-shadow(0 0 12px currentColor);
opacity: 0.9;
}
50% {
filter: drop-shadow(0 0 16px currentColor) drop-shadow(0 0 24px currentColor);
opacity: 1;
}
}
.data-pulse {
animation: dataPulse 2s ease-in-out infinite;
}
@keyframes dataPulse {
0%, 100% { r: 4; opacity: 1; }
50% { r: 6; opacity: 0.6; }
}
.flow-line {
stroke-dasharray: 6 3;
animation: flowMotion 1.5s linear infinite;
}
@keyframes flowMotion {
to { stroke-dashoffset: -18; }
}
.rotate-slow {
animation: rotateSlow 20s linear infinite;
}
@keyframes rotateSlow {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.module-card {
background: linear-gradient(135deg, rgba(30, 41, 59, 0.7) 0%, rgba(15, 23, 42, 0.9) 100%);
border: 1px solid rgba(139, 92, 246, 0.3);
backdrop-filter: blur(10px);
transition: all 0.3s ease;
}
.module-card:hover {
border-color: rgba(139, 92, 246, 0.6);
transform: translateY(-4px);
box-shadow: 0 8px 32px rgba(139, 92, 246, 0.2);
}
.transformer-block {
background: linear-gradient(135deg, rgba(59, 130, 246, 0.15) 0%, rgba(139, 92, 246, 0.15) 100%);
border: 2px solid rgba(139, 92, 246, 0.4);
}
.attention-beam {
stroke-dasharray: 4 2;
animation: attentionFlow 2s ease-in-out infinite;
}
@keyframes attentionFlow {
0%, 100% { stroke-opacity: 0.3; }
50% { stroke-opacity: 0.9; }
}
.process-indicator {
animation: processMove 3s ease-in-out infinite;
}
@keyframes processMove {
0%, 100% { transform: translateX(0); }
50% { transform: translateX(8px); }
}
.brain-node {
transition: all 0.3s ease;
cursor: pointer;
}
.brain-node:hover {
transform: scale(1.15);
filter: brightness(1.3);
}
.expertise-badge {
background: linear-gradient(135deg, rgba(16, 185, 129, 0.2) 0%, rgba(5, 150, 105, 0.3) 100%);
border: 1px solid rgba(16, 185, 129, 0.5);
}
.regulatory-badge {
background: linear-gradient(135deg, rgba(245, 158, 11, 0.2) 0%, rgba(217, 119, 6, 0.3) 100%);
border: 1px solid rgba(245, 158, 11, 0.5);
}
.learning-badge {
background: linear-gradient(135deg, rgba(236, 72, 153, 0.2) 0%, rgba(219, 39, 119, 0.3) 100%);
border: 1px solid rgba(236, 72, 153, 0.5);
}
.code-text {
font-size: 9px;
opacity: 0.6;
letter-spacing: 0.5px;
}
</style>
<style>@view-transition { navigation: auto; }</style>
<script src="/_sdk/data_sdk.js" type="text/javascript"></script>
</head>
<body class="h-full neural-bg text-white overflow-auto">
<div id="app-wrapper" class="w-full min-h-full p-4 md:p-8"><!-- Header -->
<header class="text-center mb-8 relative z-10">
<div class="inline-block mb-3 px-4 py-1 rounded-full bg-gradient-to-r from-purple-600/30 to-blue-600/30 border border-purple-500/50"><span class="text-xs font-semibold text-purple-300 mono">COGNITIVE AI SYSTEM</span>
</div>
<h1 id="main-title" class="text-3xl md:text-5xl font-bold mb-3 bg-gradient-to-r from-purple-400 via-blue-400 to-cyan-400 bg-clip-text text-transparent glow-text">Transformer-Based Cognition Engine</h1>
<p id="subtitle" class="text-base md:text-lg text-slate-300 max-w-3xl mx-auto">Domain-Specific AI for Complex Catastrophe Risk Interpretation</p>
</header><!-- Main Architecture Diagram -->
<div class="max-w-7xl mx-auto relative">
<svg viewbox="0 0 1200 800" class="w-full h-auto" style="max-height: 60vh;"><defs><!-- Gradients -->
<lineargradient id="transformerGrad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#8b5cf6" />
<stop offset="50%" style="stop-color:#3b82f6" />
<stop offset="100%" style="stop-color:#06b6d4" />
</lineargradient>
<lineargradient id="dataGrad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#f59e0b" />
<stop offset="100%" style="stop-color:#ef4444" />
</lineargradient>
<lineargradient id="outputGrad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#10b981" />
<stop offset="100%" style="stop-color:#059669" />
</lineargradient>
<lineargradient id="neuralGrad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#8b5cf6;stop-opacity:0.8" />
<stop offset="100%" style="stop-color:#3b82f6;stop-opacity:0.4" />
</lineargradient> <!-- Filters -->
<filter id="softGlow" x="-50%" y="-50%" width="200%" height="200%">
<fegaussianblur stddeviation="4" result="coloredBlur" />
<femerge>
<femergenode in="coloredBlur" />
<femergenode in="SourceGraphic" />
</femerge>
</filter>
<filter id="strongGlow" x="-50%" y="-50%" width="200%" height="200%">
<fegaussianblur stddeviation="8" result="coloredBlur" />
<femerge>
<femergenode in="coloredBlur" />
<femergenode in="SourceGraphic" />
</femerge>
</filter> <!-- Pattern for neural grid -->
<pattern id="neuralGrid" width="30" height="30" patternunits="userSpaceOnUse">
<circle cx="15" cy="15" r="1" fill="rgba(139, 92, 246, 0.2)" />
<line x1="0" y1="15" x2="30" y2="15" stroke="rgba(139, 92, 246, 0.05)" stroke-width="0.5" />
<line x1="15" y1="0" x2="15" y2="30" stroke="rgba(139, 92, 246, 0.05)" stroke-width="0.5" />
</pattern>
</defs> <!-- Background Neural Grid --> <rect width="100%" height="100%" fill="url(#neuralGrid)" opacity="0.3" /> <!-- INPUT LAYER (Left Side) --> <g id="input-layer"><!-- Incomplete Data Sources -->
<rect x="30" y="150" width="140" height="60" rx="8" fill="rgba(239, 68, 68, 0.15)" stroke="#ef4444" stroke-width="2" filter="url(#softGlow)" />
<text x="100" y="172" text-anchor="middle" fill="#fca5a5" font-size="10" font-weight="600">
INCOMPLETE DATA
</text>
<text x="100" y="188" text-anchor="middle" fill="white" font-size="13" font-weight="700">
Raw Input Stream
</text>
<text x="100" y="202" text-anchor="middle" fill="rgba(255,255,255,0.6)" font-size="9">
Missing Fields • Noise
</text> <!-- Complex Data -->
<rect x="30" y="240" width="140" height="60" rx="8" fill="rgba(245, 158, 11, 0.15)" stroke="#f59e0b" stroke-width="2" filter="url(#softGlow)" />
<text x="100" y="262" text-anchor="middle" fill="#fbbf24" font-size="10" font-weight="600">
COMPLEX DATA
</text>
<text x="100" y="278" text-anchor="middle" fill="white" font-size="13" font-weight="700">
Multi-Source
</text>
<text x="100" y="292" text-anchor="middle" fill="rgba(255,255,255,0.6)" font-size="9">
Unstructured • Mixed
</text> <!-- Domain Context -->
<rect x="30" y="330" width="140" height="60" rx="8" fill="rgba(59, 130, 246, 0.15)" stroke="#3b82f6" stroke-width="2" filter="url(#softGlow)" />
<text x="100" y="352" text-anchor="middle" fill="#60a5fa" font-size="10" font-weight="600">
CONTEXT DATA
</text>
<text x="100" y="368" text-anchor="middle" fill="white" font-size="13" font-weight="700">
Domain-Specific
</text>
<text x="100" y="382" text-anchor="middle" fill="rgba(255,255,255,0.6)" font-size="9">
Historical • Geospatial
</text> <!-- Data flow indicators -->
<circle class="data-pulse" cx="45" cy="180" r="4" fill="#ef4444" />
<circle class="data-pulse" cx="45" cy="270" r="4" fill="#f59e0b" style="animation-delay: 0.3s" />
<circle class="data-pulse" cx="45" cy="360" r="4" fill="#3b82f6" style="animation-delay: 0.6s" />
</g> <!-- DATA FLOW LINES TO TRANSFORMER --> <path class="flow-line" d="M170,180 Q240,180 300,280" stroke="#ef4444" stroke-width="2" fill="none" opacity="0.6" /> <path class="flow-line" d="M170,270 Q240,270 300,300" stroke="#f59e0b" stroke-width="2" fill="none" opacity="0.6" style="animation-delay: 0.3s" /> <path class="flow-line" d="M170,360 Q240,360 300,320" stroke="#3b82f6" stroke-width="2" fill="none" opacity="0.6" style="animation-delay: 0.6s" /> <!-- CENTRAL TRANSFORMER ENGINE --> <g id="transformer-core"><!-- Main Transformer Container -->
<rect x="290" y="120" width="280" height="380" rx="12" fill="url(#neuralGrad)" stroke="url(#transformerGrad)" stroke-width="3" filter="url(#strongGlow)" /> <!-- Title -->
<text x="430" y="145" text-anchor="middle" fill="white" font-size="11" font-weight="700" letter-spacing="2">
TRANSFORMER CORE
</text>
<line x1="310" y1="155" x2="550" y2="155" stroke="rgba(139, 92, 246, 0.5)" stroke-width="1" /> <!-- Multi-Head Attention Layer -->
<g id="attention-layer">
<rect x="310" y="170" width="240" height="70" rx="6" fill="rgba(139, 92, 246, 0.2)" stroke="#8b5cf6" stroke-width="1.5" />
<text x="430" y="188" text-anchor="middle" fill="#c4b5fd" font-size="10" font-weight="600">
MULTI-HEAD ATTENTION
</text> <!-- Attention heads visualization -->
<g id="attention-heads">
<circle cx="360" cy="210" r="12" fill="rgba(139, 92, 246, 0.4)" stroke="#a78bfa" stroke-width="1.5" />
<circle cx="400" cy="210" r="12" fill="rgba(139, 92, 246, 0.4)" stroke="#a78bfa" stroke-width="1.5" />
<circle cx="440" cy="210" r="12" fill="rgba(139, 92, 246, 0.4)" stroke="#a78bfa" stroke-width="1.5" />
<circle cx="480" cy="210" r="12" fill="rgba(139, 92, 246, 0.4)" stroke="#a78bfa" stroke-width="1.5" />
<circle cx="500" cy="210" r="12" fill="rgba(139, 92, 246, 0.4)" stroke="#a78bfa" stroke-width="1.5" /> <!-- Attention connections -->
<line class="attention-beam" x1="360" y1="210" x2="440" y2="210" stroke="#c4b5fd" stroke-width="1" />
<line class="attention-beam" x1="400" y1="210" x2="480" y2="210" stroke="#c4b5fd" stroke-width="1" style="animation-delay: 0.3s" />
<line class="attention-beam" x1="360" y1="210" x2="500" y2="210" stroke="#c4b5fd" stroke-width="1" style="animation-delay: 0.6s" />
</g>
<text x="430" y="232" text-anchor="middle" fill="rgba(255,255,255,0.5)" font-size="8">
Pattern Recognition
</text>
</g> <!-- Feed-Forward Neural Network -->
<g id="ffn-layer">
<rect x="310" y="255" width="240" height="60" rx="6" fill="rgba(59, 130, 246, 0.2)" stroke="#3b82f6" stroke-width="1.5" />
<text x="430" y="273" text-anchor="middle" fill="#60a5fa" font-size="10" font-weight="600">
FEED-FORWARD NETWORK
</text> <!-- Neural network nodes -->
<circle cx="340" cy="295" r="6" fill="#3b82f6" opacity="0.8" />
<circle cx="380" cy="285" r="6" fill="#3b82f6" opacity="0.8" />
<circle cx="380" cy="305" r="6" fill="#3b82f6" opacity="0.8" />
<circle cx="430" cy="285" r="6" fill="#3b82f6" opacity="0.8" />
<circle cx="430" cy="295" r="6" fill="#3b82f6" opacity="0.8" />
<circle cx="430" cy="305" r="6" fill="#3b82f6" opacity="0.8" />
<circle cx="480" cy="285" r="6" fill="#3b82f6" opacity="0.8" />
<circle cx="480" cy="305" r="6" fill="#3b82f6" opacity="0.8" />
<circle cx="520" cy="295" r="6" fill="#3b82f6" opacity="0.8" /> <!-- Connections -->
<line x1="340" y1="295" x2="380" y2="285" stroke="rgba(59, 130, 246, 0.3)" stroke-width="1" />
<line x1="340" y1="295" x2="380" y2="305" stroke="rgba(59, 130, 246, 0.3)" stroke-width="1" />
<line x1="380" y1="285" x2="430" y2="295" stroke="rgba(59, 130, 246, 0.3)" stroke-width="1" />
<line x1="480" y1="285" x2="520" y2="295" stroke="rgba(59, 130, 246, 0.3)" stroke-width="1" />
<line x1="480" y1="305" x2="520" y2="295" stroke="rgba(59, 130, 246, 0.3)" stroke-width="1" />
</g> <!-- Normalization & Dropout -->
<g id="norm-layer">
<rect x="310" y="330" width="240" height="35" rx="6" fill="rgba(6, 182, 212, 0.15)" stroke="#06b6d4" stroke-width="1.5" />
<text x="430" y="351" text-anchor="middle" fill="#67e8f9" font-size="10" font-weight="600">
NORMALIZATION + DROPOUT
</text>
</g> <!-- Catastrophe Optimization Layer -->
<g id="optimization-layer">
<rect x="310" y="380" width="240" height="55" rx="6" fill="rgba(236, 72, 153, 0.2)" stroke="#ec4899" stroke-width="2" />
<text x="430" y="396" text-anchor="middle" fill="#f9a8d4" font-size="10" font-weight="700">
CATASTROPHE OPTIMIZATION
</text>
<text x="430" y="411" text-anchor="middle" fill="white" font-size="11" font-weight="600">
Domain-Tuned Weights
</text>
<text x="430" y="426" text-anchor="middle" fill="rgba(255,255,255,0.5)" font-size="8">
Risk-Aware Loss Function
</text>
</g> <!-- Processing indicator -->
<g class="process-indicator">
<rect x="320" y="450" width="30" height="3" rx="1.5" fill="#8b5cf6" opacity="0.8" />
<rect x="355" y="450" width="20" height="3" rx="1.5" fill="#3b82f6" opacity="0.8" />
<rect x="380" y="450" width="25" height="3" rx="1.5" fill="#06b6d4" opacity="0.8" />
</g>
<text x="430" y="470" text-anchor="middle" fill="rgba(255,255,255,0.4)" font-size="8" class="mono">
Processing: Real-Time
</text>
</g> <!-- COGNITIVE CORE MODULES (Right Side) --> <g id="cognitive-modules"><!-- Connection lines from transformer to modules -->
<path class="flow-line" d="M570,200 Q630,180 680,160" stroke="#10b981" stroke-width="2" fill="none" opacity="0.5" />
<path class="flow-line" d="M570,280 Q630,280 680,280" stroke="#f59e0b" stroke-width="2" fill="none" opacity="0.5" style="animation-delay: 0.4s" />
<path class="flow-line" d="M570,360 Q630,380 680,400" stroke="#ec4899" stroke-width="2" fill="none" opacity="0.5" style="animation-delay: 0.8s" /> <!-- Expert Knowledge Module -->
<g class="brain-node">
<rect x="680" y="120" width="200" height="90" rx="10" fill="rgba(16, 185, 129, 0.15)" stroke="#10b981" stroke-width="2" filter="url(#softGlow)" />
<circle cx="715" cy="150" r="18" fill="rgba(16, 185, 129, 0.3)" stroke="#10b981" stroke-width="2" />
<path d="M715,142 L715,158 M707,150 L723,150" stroke="#10b981" stroke-width="2" stroke-linecap="round" />
<circle cx="710" cy="145" r="2" fill="#10b981" />
<circle cx="720" cy="145" r="2" fill="#10b981" />
<circle cx="710" cy="155" r="2" fill="#10b981" />
<circle cx="720" cy="155" r="2" fill="#10b981" />
<text x="745" y="145" fill="#10b981" font-size="10" font-weight="700">
EXPERT KNOWLEDGE
</text>
<text x="745" y="162" fill="white" font-size="11" font-weight="600">
Catastrophe Domain
</text>
<rect x="690" y="175" width="180" height="24" rx="4" fill="rgba(16, 185, 129, 0.1)" />
<text x="780" y="191" text-anchor="middle" fill="rgba(255,255,255,0.7)" font-size="9">
Built-in Expert Models
</text>
</g> <!-- Regulatory Rules Module -->
<g class="brain-node">
<rect x="680" y="240" width="200" height="90" rx="10" fill="rgba(245, 158, 11, 0.15)" stroke="#f59e0b" stroke-width="2" filter="url(#softGlow)" />
<circle cx="715" cy="270" r="18" fill="rgba(245, 158, 11, 0.3)" stroke="#f59e0b" stroke-width="2" />
<rect x="707" y="262" width="16" height="16" rx="2" fill="none" stroke="#f59e0b" stroke-width="2" />
<path d="M710,270 L713,275 L720,265" stroke="#f59e0b" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round" />
<text x="745" y="265" fill="#f59e0b" font-size="10" font-weight="700">
REGULATORY RULES
</text>
<text x="745" y="282" fill="white" font-size="11" font-weight="600">
Compliance Engine
</text>
<rect x="690" y="295" width="180" height="24" rx="4" fill="rgba(245, 158, 11, 0.1)" />
<text x="780" y="311" text-anchor="middle" fill="rgba(255,255,255,0.7)" font-size="9">
Policy & Standards
</text>
</g> <!-- Self-Learning Module -->
<g class="brain-node">
<rect x="680" y="360" width="200" height="90" rx="10" fill="rgba(236, 72, 153, 0.15)" stroke="#ec4899" stroke-width="2" filter="url(#softGlow)" />
<circle cx="715" cy="390" r="18" fill="rgba(236, 72, 153, 0.3)" stroke="#ec4899" stroke-width="2" /> <!-- Brain icon -->
<path d="M708,385 Q708,380 712,380 Q715,380 715,383 Q718,380 721,380 Q725,380 725,385 Q725,388 723,390 Q725,393 722,395 Q720,397 715,397 Q710,397 708,395 Q705,393 707,390 Q705,388 708,385 Z" fill="#ec4899" opacity="0.6" />
<circle cx="711" cy="387" r="1.5" fill="white" />
<circle cx="719" cy="387" r="1.5" fill="white" />
<text x="745" y="385" fill="#ec4899" font-size="10" font-weight="700">
SELF-LEARNING
</text>
<text x="745" y="402" fill="white" font-size="11" font-weight="600">
Adaptive AI
</text>
<rect x="690" y="415" width="180" height="24" rx="4" fill="rgba(236, 72, 153, 0.1)" />
<text x="780" y="431" text-anchor="middle" fill="rgba(255,255,255,0.7)" font-size="9">
Continuous Improvement
</text>
</g> <!-- Risk Type Specialization -->
<rect x="920" y="200" width="250" height="180" rx="12" fill="rgba(30, 41, 59, 0.6)" stroke="rgba(139, 92, 246, 0.4)" stroke-width="2" />
<text x="1045" y="225" text-anchor="middle" fill="#a78bfa" font-size="11" font-weight="700">
RISK TYPE MODULES
</text>
<line x1="935" y1="235" x2="1155" y2="235" stroke="rgba(139, 92, 246, 0.3)" stroke-width="1" /> <!-- Risk types list -->
<g id="risk-types">
<circle cx="945" cy="255" r="4" fill="#06b6d4" />
<text x="960" y="259" fill="white" font-size="10">
Natural Hazards (Hurricane, Flood)
</text>
<circle cx="945" cy="275" r="4" fill="#8b5cf6" />
<text x="960" y="279" fill="white" font-size="10">
Climate Events (Wildfire, Drought)
</text>
<circle cx="945" cy="295" r="4" fill="#f59e0b" />
<text x="960" y="299" fill="white" font-size="10">
Infrastructure Failures
</text>
<circle cx="945" cy="315" r="4" fill="#10b981" />
<text x="960" y="319" fill="white" font-size="10">
Economic Disruptions
</text>
<circle cx="945" cy="335" r="4" fill="#ec4899" />
<text x="960" y="339" fill="white" font-size="10">
Pandemic & Health Crises
</text>
<circle cx="945" cy="355" r="4" fill="#ef4444" />
<text x="960" y="359" fill="white" font-size="10">
Geopolitical Risks
</text>
</g>
</g> <!-- OUTPUT LAYER (Bottom) --> <g id="output-layer"><!-- Interpreted Results -->
<rect x="250" y="560" width="180" height="70" rx="10" fill="rgba(16, 185, 129, 0.2)" stroke="#10b981" stroke-width="2" filter="url(#softGlow)" />
<text x="340" y="582" text-anchor="middle" fill="#10b981" font-size="11" font-weight="700">
INTERPRETED OUTPUT
</text>
<text x="340" y="600" text-anchor="middle" fill="white" font-size="12" font-weight="600">
Risk Assessment
</text>
<text x="340" y="617" text-anchor="middle" fill="rgba(255,255,255,0.6)" font-size="9">
Confidence Scores • Gaps Filled
</text> <!-- Actionable Insights -->
<rect x="460" y="560" width="180" height="70" rx="10" fill="rgba(59, 130, 246, 0.2)" stroke="#3b82f6" stroke-width="2" filter="url(#softGlow)" />
<text x="550" y="582" text-anchor="middle" fill="#60a5fa" font-size="11" font-weight="700">
ACTIONABLE INSIGHTS
</text>
<text x="550" y="600" text-anchor="middle" fill="white" font-size="12" font-weight="600">
Decision Support
</text>
<text x="550" y="617" text-anchor="middle" fill="rgba(255,255,255,0.6)" font-size="9">
Recommendations • Priorities
</text> <!-- Model Updates -->
<rect x="670" y="560" width="180" height="70" rx="10" fill="rgba(236, 72, 153, 0.2)" stroke="#ec4899" stroke-width="2" filter="url(#softGlow)" />
<text x="760" y="582" text-anchor="middle" fill="#f9a8d4" font-size="11" font-weight="700">
MODEL UPDATES
</text>
<text x="760" y="600" text-anchor="middle" fill="white" font-size="12" font-weight="600">
Learning Loop
</text>
<text x="760" y="617" text-anchor="middle" fill="rgba(255,255,255,0.6)" font-size="9">
Weight Adjustments • Tuning
</text> <!-- Output flow lines -->
<path class="flow-line" d="M380,500 Q320,530 340,560" stroke="#10b981" stroke-width="2" fill="none" opacity="0.6" />
<path class="flow-line" d="M430,500 Q490,530 550,560" stroke="#3b82f6" stroke-width="2" fill="none" opacity="0.6" style="animation-delay: 0.3s" />
<path class="flow-line" d="M480,500 Q650,530 760,560" stroke="#ec4899" stroke-width="2" fill="none" opacity="0.6" style="animation-delay: 0.6s" />
</g> <!-- Feedback Loop --> <path d="M760,630 Q760,680 680,720 Q430,770 200,720 Q50,680 50,560 Q50,440 100,360" stroke="#ec4899" stroke-width="2" stroke-dasharray="8 4" fill="none" opacity="0.4" /> <polygon points="95,365 100,360 105,365" fill="#ec4899" opacity="0.6" /> <text x="100" y="740" text-anchor="middle" fill="#f9a8d4" font-size="9" font-weight="600" class="mono">
← FEEDBACK LOOP: Continuous Learning
</text>
</svg>
</div><!-- Key Features Grid -->
<div class="max-w-7xl mx-auto mt-8 grid grid-cols-1 md:grid-cols-3 gap-4 px-2"><!-- Expert Knowledge Card -->
<div class="module-card rounded-xl p-5">
<div class="flex items-center gap-3 mb-3">
<div class="w-12 h-12 rounded-lg expertise-badge flex items-center justify-center">
<svg class="w-6 h-6 text-emerald-400" fill="none" stroke="currentColor" viewbox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z" />
</svg>
</div>
<div>
<h3 class="text-sm font-bold text-emerald-400">Expert Knowledge</h3>
<p class="text-xs text-slate-400">Domain Expertise</p>
</div>
</div>
<p class="text-sm text-slate-300 leading-relaxed" id="module-description">Built-in catastrophe models trained on historical events, damage patterns, and expert assessments</p>
</div><!-- Regulatory Rules Card -->
<div class="module-card rounded-xl p-5">
<div class="flex items-center gap-3 mb-3">
<div class="w-12 h-12 rounded-lg regulatory-badge flex items-center justify-center">
<svg class="w-6 h-6 text-amber-400" fill="none" stroke="currentColor" viewbox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z" />
</svg>
</div>
<div>
<h3 class="text-sm font-bold text-amber-400">Regulatory Rules</h3>
<p class="text-xs text-slate-400">Compliance Engine</p>
</div>
</div>
<p class="text-sm text-slate-300 leading-relaxed">Embedded regulatory frameworks, insurance standards, and compliance requirements for each jurisdiction</p>
</div><!-- Self-Learning Card -->
<div class="module-card rounded-xl p-5">
<div class="flex items-center gap-3 mb-3">
<div class="w-12 h-12 rounded-lg learning-badge flex items-center justify-center">
<svg class="w-6 h-6 text-pink-400" fill="none" stroke="currentColor" viewbox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" />
</svg>
</div>
<div>
<h3 class="text-sm font-bold text-pink-400">Self-Learning</h3>
<p class="text-xs text-slate-400">Adaptive Intelligence</p>
</div>
</div>
<p class="text-sm text-slate-300 leading-relaxed">Continuous model refinement through outcome feedback and real-world event validation</p>
</div>
</div><!-- Technical Specifications -->
<div class="max-w-7xl mx-auto mt-6 px-2">
<div class="module-card rounded-xl p-6">
<h3 class="text-lg font-bold text-purple-400 mb-4 flex items-center gap-2">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewbox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4" />
</svg> Technical Architecture</h3>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<div>
<h4 class="text-sm font-semibold text-cyan-400 mb-2 mono">TRANSFORMER COMPONENTS</h4>
<ul class="space-y-1 text-xs text-slate-300">
<li class="flex items-start gap-2"><span class="text-purple-400 mt-0.5">▸</span> <span>Multi-head self-attention for context understanding</span></li>
<li class="flex items-start gap-2"><span class="text-purple-400 mt-0.5">▸</span> <span>Positional encoding for temporal data</span></li>
<li class="flex items-start gap-2"><span class="text-purple-400 mt-0.5">▸</span> <span>Layer normalization and residual connections</span></li>
<li class="flex items-start gap-2"><span class="text-purple-400 mt-0.5">▸</span> <span>Domain-specific loss functions for catastrophe risk</span></li>
</ul>
</div>
<div>
<h4 class="text-sm font-semibold text-cyan-400 mb-2 mono">COGNITIVE CAPABILITIES</h4>
<ul class="space-y-1 text-xs text-slate-300">
<li class="flex items-start gap-2"><span class="text-pink-400 mt-0.5">▸</span> <span>Gap-filling for incomplete data using learned patterns</span></li>
<li class="flex items-start gap-2"><span class="text-pink-400 mt-0.5">▸</span> <span>Cross-domain knowledge transfer between risk types</span></li>
<li class="flex items-start gap-2"><span class="text-pink-400 mt-0.5">▸</span> <span>Uncertainty quantification and confidence scoring</span></li>
<li class="flex items-start gap-2"><span class="text-pink-400 mt-0.5">▸</span> <span>Real-time model adaptation based on outcomes</span></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<script>
const defaultConfig = {
main_title: "Transformer-Based Cognition Engine",
subtitle: "Domain-Specific AI for Complex Catastrophe Risk Interpretation",
module_description: "Built-in catastrophe models trained on historical events, damage patterns, and expert assessments",
background_color: "#0f0f23",
surface_color: "#1e293b",
text_color: "#ffffff",
primary_action_color: "#8b5cf6",
secondary_action_color: "#3b82f6"
};
async function onConfigChange(config) {
const title = document.getElementById('main-title');
const subtitle = document.getElementById('subtitle');
const moduleDesc = document.getElementById('module-description');
if (title) {
title.textContent = config.main_title || defaultConfig.main_title;
}
if (subtitle) {
subtitle.textContent = config.subtitle || defaultConfig.subtitle;
}
if (moduleDesc) {
moduleDesc.textContent = config.module_description || defaultConfig.module_description;
}
// Apply colors
const wrapper = document.getElementById('app-wrapper');
if (wrapper) {
wrapper.style.color = config.text_color || defaultConfig.text_color;
}
}
function mapToCapabilities(config) {
return {
recolorables: [
{
get: () => config.background_color || defaultConfig.background_color,
set: (value) => {
config.background_color = value;
window.elementSdk.setConfig({ background_color: value });
}
},
{
get: () => config.surface_color || defaultConfig.surface_color,
set: (value) => {
config.surface_color = value;
window.elementSdk.setConfig({ surface_color: value });
}
},
{
get: () => config.text_color || defaultConfig.text_color,
set: (value) => {
config.text_color = value;
window.elementSdk.setConfig({ text_color: value });
}
},
{
get: () => config.primary_action_color || defaultConfig.primary_action_color,
set: (value) => {
config.primary_action_color = value;
window.elementSdk.setConfig({ primary_action_color: value });
}
},
{
get: () => config.secondary_action_color || defaultConfig.secondary_action_color,
set: (value) => {
config.secondary_action_color = value;
window.elementSdk.setConfig({ secondary_action_color: value });
}
}
],
borderables: [],
fontEditable: undefined,
fontSizeable: undefined
};
}
function mapToEditPanelValues(config) {
return new Map([
["main_title", config.main_title || defaultConfig.main_title],
["subtitle", config.subtitle || defaultConfig.subtitle],
["module_description", config.module_description || defaultConfig.module_description]
]);
}
// Initialize SDK
if (window.elementSdk) {
window.elementSdk.init({
defaultConfig,
onConfigChange,
mapToCapabilities,
mapToEditPanelValues
});
}
</script>
<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'9bc968ce64d6dcf0',t:'MTc2ODE4Njg4Ny4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body>
</html>