<!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&amp;family=Exo+2:wght@300;400;600;700;800&amp;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 &amp; 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 &amp; 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>