{
  "$mulmocast": {
    "version": "1.1"
  },
  "lang": "en",
  "canvasSize": {
    "width": 1280,
    "height": 720
  },
  "title": "Cinematic Animation Patterns Showcase",
  "description": "A showcase of all 14 cinematic animation themes available in MulmoCast",
  "speechParams": {
    "speakers": {
      "Presenter": {
        "voiceId": "shimmer"
      }
    }
  },
  "audioParams": {
    "bgm": {
      "kind": "url",
      "url": "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/bgms/story002.mp3"
    },
    "bgmVolume": 0.12
  },
  "slideParams": {
    "theme": {
      "colors": {
        "accent": "8B5CF6",
        "bg": "0F172A",
        "bgCard": "1E293B",
        "bgCardAlt": "334155",
        "danger": "EF4444",
        "highlight": "EC4899",
        "info": "14B8A6",
        "primary": "3B82F6",
        "success": "22C55E",
        "text": "F8FAFC",
        "textDim": "64748B",
        "textMuted": "CBD5E1",
        "warning": "F59E0B"
      },
      "fonts": {
        "body": "Calibri",
        "mono": "Consolas",
        "title": "Georgia"
      }
    }
  },
  "beats": [
    {
      "text": "Welcome to the Cinematic Animation Patterns Showcase. Fourteen unique visual themes, each inspired by iconic film and anime aesthetics.",
      "speaker": "Presenter",
      "duration": 5,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full bg-black flex flex-col items-center justify-center'>",
          "  <div id='title' class='text-5xl font-bold tracking-wider text-center' style='font-family:\"Helvetica Neue\",Arial,sans-serif;color:#4fc3f7;opacity:0;text-shadow:0 0 30px rgba(79,195,247,0.3)'>CINEMATIC PATTERNS</div>",
          "  <div id='sub' class='text-xl mt-4 tracking-[0.3em]' style='font-family:monospace;color:#81d4fa;opacity:0'>14 THEMES SHOWCASE</div>",
          "  <div id='line' class='mt-6 h-px' style='background:linear-gradient(90deg,transparent,#4fc3f7,transparent);opacity:0;width:0'></div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#title', { opacity: [0, 1], scale: [1.2, 1] }, { start: 0.3, end: 1.5, easing: 'easeOut' });",
          "animation.animate('#sub', { opacity: [0, 1] }, { start: 1.5, end: 2.2 });",
          "animation.animate('#line', { opacity: [0, 0.6], width: [0, 500, 'px'] }, { start: 2.0, end: 3.0, easing: 'easeOut' });"
        ],
        "animation": true
      }
    },
    {
      "text": "Theme one. Space Opera — inspired by Star Wars.",
      "speaker": "Presenter",
      "duration": 3,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full bg-black flex items-center justify-center'>",
          "  <div id='t' class='text-7xl font-bold tracking-wider' style='font-family:Impact,\"Arial Black\",sans-serif;color:#facc15;opacity:0;text-shadow:0 0 40px rgba(250,204,21,0.4)'>SPACE OPERA</div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#t', { opacity: [0, 1], scale: [2.0, 1] }, { start: 0.3, end: 1.5, easing: 'easeOut' });"
        ],
        "animation": true
      }
    },
    {
      "text": "A long time ago in a galaxy far, far away. The classic opening crawl, fading in from the darkness.",
      "speaker": "Presenter",
      "duration": 6,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full bg-black flex items-center justify-center'>",
          "  <div id='text' class='text-2xl tracking-wider text-center leading-relaxed' style='font-family:\"Times New Roman\",Georgia,serif;color:#60a5fa;opacity:0'>A long time ago in a galaxy<br>far, far away....</div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#text', { opacity: [0, 1] }, { start: 0.5, end: 1.8 });",
          "animation.animate('#text', { opacity: [1, 0] }, { start: 4.0, end: 5.2 });"
        ],
        "animation": true
      }
    },
    {
      "text": "The opening crawl. Text flows upward through a three-D perspective transform, disappearing into the stars.",
      "speaker": "Presenter",
      "duration": 8,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div id='starfield' class='h-full w-full bg-black relative overflow-hidden'>",
          "  <div class='absolute inset-0 flex justify-center' style='perspective:300px;perspective-origin:50% 0%'>",
          "    <div id='crawl' class='absolute text-yellow-400 text-center' style='font-family:\"Times New Roman\",Georgia,serif;width:560px;font-size:21px;line-height:2.2;transform:rotateX(25deg) translateY(720px)'>",
          "      <p class='text-2xl font-bold tracking-[0.3em] mb-4'>EPISODE I</p>",
          "      <p class='text-2xl font-bold mb-10'>THE CINEMATIC SHOWCASE</p>",
          "      <p>In a universe of visual storytelling, fourteen cinematic themes have emerged to transform ordinary presentations into extraordinary experiences.</p>",
          "      <p class='mt-8'>Each theme carries the essence of an iconic film genre, bringing its signature colors, typography, and motion to the canvas.</p>",
          "      <p class='mt-8'>The journey begins here, in a galaxy of animation possibilities far beyond ordinary slides...</p>",
          "    </div>",
          "  </div>",
          "  <div class='absolute top-0 left-0 right-0 h-40 z-10' style='background:linear-gradient(to bottom, black 20%, transparent 100%)'></div>",
          "  <div class='absolute bottom-0 left-0 right-0 h-24 z-10' style='background:linear-gradient(to top, black 0%, transparent 100%)'></div>",
          "</div>"
        ],
        "script": [
          "var sf = document.getElementById('starfield');",
          "for (var i = 0; i < 120; i++) { var d = document.createElement('div'); var sz = (Math.sin(i*127.1)*0.5+0.5)*2+0.5; var tx = (Math.sin(i*311.7)*0.5+0.5)*100; var ty = (Math.sin(i*73.3)*0.5+0.5)*100; var op = (Math.sin(i*43.1)*0.5+0.5)*0.5+0.1; d.style.cssText='position:absolute;border-radius:50%;background:white;width:'+sz+'px;height:'+sz+'px;top:'+ty+'%;left:'+tx+'%;opacity:'+op; sf.insertBefore(d,sf.firstChild); }",
          "const animation = new MulmoAnimation();",
          "animation.animate('#crawl', { rotateX: [25, 25], translateY: [720, -1100] }, { start: 0, end: 'auto' });"
        ],
        "animation": true
      }
    },
    {
      "text": "Lightsaber-style reveal for feature content. A glowing bar expands, followed by data appearing line by line.",
      "speaker": "Presenter",
      "duration": 5,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full bg-black flex flex-col justify-center px-20'>",
          "  <div class='flex items-center gap-3 mb-2'>",
          "    <div id='saber' class='h-1 rounded-full' style='background:linear-gradient(90deg,#60a5fa,#93c5fd);width:0;opacity:0'></div>",
          "    <div id='label' class='text-blue-400 text-xs tracking-[0.3em]' style='font-family:monospace;opacity:0'>FEATURE</div>",
          "  </div>",
          "  <div id='heading' class='text-yellow-400 text-5xl font-bold mb-8' style='font-family:Impact,sans-serif;opacity:0'>Star Wars Style</div>",
          "  <div class='p-6 rounded border' style='border-color:#1e3a5f;background:rgba(0,0,30,0.5)'>",
          "    <pre id='code' class='text-blue-300 text-base leading-relaxed' style='font-family:\"Courier New\",Monaco,monospace'></pre>",
          "    <span id='cursor' class='text-blue-300' style='font-family:monospace'>|</span>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "var codeLines = ['Opening crawl with rotateX perspective', 'Procedural starfield (120 stars)', 'Lightsaber glow reveal animation', 'Yellow/gold text on pure black'];",
          "const animation = new MulmoAnimation();",
          "animation.animate('#saber', { opacity: [0, 1], width: [0, 60, 'px'] }, { start: 0, end: 0.5, easing: 'easeOut' });",
          "animation.animate('#label', { opacity: [0, 1] }, { start: 0.3, end: 0.6 });",
          "animation.animate('#heading', { opacity: [0, 1], translateX: [-20, 0] }, { start: 0.5, end: 1.0, easing: 'easeOut' });",
          "animation.codeReveal('#code', codeLines, { start: 1.2, end: 4.0 });",
          "animation.blink('#cursor', { interval: 0.35 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Theme two. Cyberpunk Terminal — inspired by Ghost in the Shell.",
      "speaker": "Presenter",
      "duration": 3,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full relative' style='background:#0a0e17'>",
          "  <div class='absolute inset-0 pointer-events-none' style='background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,255,65,0.03) 2px,rgba(0,255,65,0.03) 4px)'></div>",
          "  <div class='h-full flex items-center justify-center relative'>",
          "    <div id='t' class='text-7xl font-bold tracking-wider' style='font-family:\"Courier New\",Monaco,monospace;color:#00FFFF;opacity:0'>CYBERPUNK</div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#t', { opacity: [0, 1], scale: [1.05, 1] }, { start: 0.3, end: 1.0, easing: 'easeOut' });"
        ],
        "animation": true
      }
    },
    {
      "text": "Terminal boot sequence. System lines appear one by one with a green scanline sweeping across the screen.",
      "speaker": "Presenter",
      "duration": 3,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<style>body{font-family:'Courier New','Monaco',monospace}</style>",
          "<div class='h-full w-full relative' style='background:#0a0e17'>",
          "  <div id='scanline' class='absolute left-0 w-full h-0.5' style='background:#00FF41;opacity:0.6;top:0'></div>",
          "  <div class='absolute inset-0 pointer-events-none' style='background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,255,65,0.03) 2px,rgba(0,255,65,0.03) 4px)'></div>",
          "  <div class='h-full flex flex-col justify-center px-20'>",
          "    <div id='l0' class='text-sm mb-2' style='color:#00FF41;opacity:0'>[SYS] Initializing neural network...</div>",
          "    <div id='l1' class='text-sm mb-2' style='color:#00FF41;opacity:0'>[SYS] Loading kernel v2.4...</div>",
          "    <div id='l2' class='text-sm mb-2' style='color:#00FF41;opacity:0'>[SYS] AI providers: 4 nodes detected</div>",
          "    <div id='l3' class='text-sm mb-2' style='color:#00FF41;opacity:0'>[SYS] Establishing secure channels...</div>",
          "    <div id='done' class='text-lg font-bold mt-4' style='color:#00FFFF;opacity:0'>CONNECTION ESTABLISHED</div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#scanline', { translateY: [0, 720] }, { start: 0, end: 2.0 });",
          "animation.stagger('#l{i}', 4, { opacity: [0, 1] }, { start: 0.3, stagger: 0.35, duration: 0.15 });",
          "animation.animate('#done', { opacity: [0, 1] }, { start: 2.0, end: 2.3 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Glitch title with chromatic aberration. Triple-layered text creates the iconic digital artifact effect.",
      "speaker": "Presenter",
      "duration": 4,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<style>body{font-family:'Courier New','Monaco',monospace}</style>",
          "<div class='h-full w-full relative' style='background:#0a0e17'>",
          "  <div class='absolute inset-0 pointer-events-none' style='background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,255,65,0.03) 2px,rgba(0,255,65,0.03) 4px)'></div>",
          "  <div class='h-full flex flex-col items-center justify-center'>",
          "    <div class='relative'>",
          "      <div id='g1' class='absolute text-8xl font-bold tracking-wider' style='color:#00FF41;opacity:0;left:-3px;top:-2px'>GHOST</div>",
          "      <div id='g2' class='absolute text-8xl font-bold tracking-wider' style='color:#00FFFF;opacity:0;left:3px;top:2px'>GHOST</div>",
          "      <div id='title' class='text-8xl font-bold tracking-wider text-white' style='opacity:0'>GHOST</div>",
          "    </div>",
          "    <div id='line' class='mt-4 h-px' style='background:#00FFFF;opacity:0;width:0'></div>",
          "    <div id='sub' class='mt-6 text-lg tracking-[0.3em]' style='color:#00FF41;opacity:0'>IN THE SHELL</div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#g1', { opacity: [0, 0.4] }, { start: 0.2, end: 0.5 });",
          "animation.animate('#g2', { opacity: [0, 0.3] }, { start: 0.3, end: 0.6 });",
          "animation.animate('#title', { opacity: [0, 1], scale: [1.05, 1] }, { start: 0.3, end: 0.8, easing: 'easeOut' });",
          "animation.animate('#line', { opacity: [0, 1], width: [0, 500, 'px'] }, { start: 1.0, end: 1.8, easing: 'easeOut' });",
          "animation.animate('#sub', { opacity: [0, 1] }, { start: 1.5, end: 2.0 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Theme three. Mecha Anime — inspired by Evangelion.",
      "speaker": "Presenter",
      "duration": 3,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<style>body{font-family:'Hiragino Mincho ProN','Yu Mincho',serif}</style>",
          "<div class='h-full w-full bg-black flex flex-col'>",
          "  <div id='topLine' class='w-full h-1 bg-red-600' style='opacity:0'></div>",
          "  <div class='flex-1 flex items-center justify-center'>",
          "    <div id='t' class='font-sans text-red-600 text-7xl font-bold tracking-[0.3em]' style='opacity:0'>MECHA ANIME</div>",
          "  </div>",
          "  <div id='bottomLine' class='w-full h-1 bg-red-600' style='opacity:0'></div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#topLine', { opacity: [0, 1] }, { start: 0, end: 0.15 });",
          "animation.animate('#bottomLine', { opacity: [0, 1] }, { start: 0, end: 0.15 });",
          "animation.animate('#t', { opacity: [0, 1] }, { start: 0.2, end: 0.8 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Red warning screen with Japanese text. The classic Evangelion alert aesthetic, blinking indicators framed by red bars.",
      "speaker": "Presenter",
      "duration": 3,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<style>body{font-family:'Hiragino Mincho ProN','Yu Mincho',serif}</style>",
          "<div class='h-full w-full bg-black flex flex-col'>",
          "  <div id='topLine' class='w-full h-1 bg-red-600' style='opacity:0'></div>",
          "  <div class='flex-1 flex flex-col items-center justify-center'>",
          "    <div id='warning' class='font-sans text-red-600 text-8xl font-bold tracking-[0.3em]' style='opacity:0'>WARNING</div>",
          "    <div id='jp' class='text-red-500 text-3xl mt-6 tracking-[0.5em]' style='opacity:0'>警 告</div>",
          "    <div id='ind' class='mt-8 w-3 h-3 rounded-full bg-red-600'></div>",
          "  </div>",
          "  <div id='bottomLine' class='w-full h-1 bg-red-600' style='opacity:0'></div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#topLine', { opacity: [0, 1] }, { start: 0, end: 0.15 });",
          "animation.animate('#bottomLine', { opacity: [0, 1] }, { start: 0, end: 0.15 });",
          "animation.animate('#warning', { opacity: [0, 1] }, { start: 0.2, end: 0.5 });",
          "animation.animate('#jp', { opacity: [0, 1] }, { start: 0.6, end: 0.9 });",
          "animation.blink('#ind', { interval: 0.3 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Dramatic typewriter with expanding red underline. Text appears character by character, building tension.",
      "speaker": "Presenter",
      "duration": 4,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<style>body{font-family:'Hiragino Mincho ProN','Yu Mincho',serif}</style>",
          "<div class='h-full w-full bg-black flex flex-col items-center justify-center'>",
          "  <div id='text' class='text-white text-6xl font-bold tracking-wider'></div>",
          "  <div id='underline' class='mt-8 h-1 bg-red-600' style='opacity:0;width:0'></div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.typewriter('#text', '逃げちゃダメだ。', { start: 0.3, end: 2.5 });",
          "animation.animate('#underline', { opacity: [0, 1], width: [0, 500, 'px'] }, { start: 2.5, end: 3.3, easing: 'easeOut' });"
        ],
        "animation": true
      }
    },
    {
      "text": "Theme four. Film Noir — the classic detective genre.",
      "speaker": "Presenter",
      "duration": 3,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full relative' style='background:#0c0c0c'>",
          "  <div class='absolute inset-0 pointer-events-none' style='background:repeating-linear-gradient(180deg,transparent,transparent 28px,rgba(212,168,87,0.04) 28px,rgba(212,168,87,0.04) 30px);transform:rotate(-5deg) scale(1.2)'></div>",
          "  <div class='h-full flex items-center justify-center relative'>",
          "    <div id='t' class='text-7xl font-bold tracking-wider' style='font-family:Georgia,serif;color:#d4a857;opacity:0'>FILM NOIR</div>",
          "  </div>",
          "</div>"
        ],
        "script": ["const animation = new MulmoAnimation();", "animation.animate('#t', { opacity: [0, 1] }, { start: 0.5, end: 1.5 });"],
        "animation": true
      }
    },
    {
      "text": "Venetian blind shadows cast across the frame. Gold ornamental lines frame the title card, evoking 1940s detective films.",
      "speaker": "Presenter",
      "duration": 5,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full relative' style='background:#0c0c0c'>",
          "  <div class='absolute inset-0 pointer-events-none' style='background:repeating-linear-gradient(180deg,transparent,transparent 28px,rgba(212,168,87,0.04) 28px,rgba(212,168,87,0.04) 30px);transform:rotate(-5deg) scale(1.2)'></div>",
          "  <div class='h-full flex flex-col items-center justify-center relative'>",
          "    <div id='line' class='h-px mb-8' style='background:linear-gradient(90deg,transparent,#d4a857,transparent);opacity:0;width:0'></div>",
          "    <div id='title' class='text-7xl font-bold tracking-wider text-center' style='font-family:Georgia,serif;color:#d4a857;opacity:0'>THE CASE</div>",
          "    <div id='sub' class='text-xl tracking-[0.3em] mt-6 text-center' style='font-family:Georgia,serif;color:#8b8b8b;opacity:0'>A Story of Shadows and Light</div>",
          "    <div id='line2' class='h-px mt-8' style='background:linear-gradient(90deg,transparent,#d4a857,transparent);opacity:0;width:0'></div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#line', { opacity: [0, 0.6], width: [0, 400, 'px'] }, { start: 0.5, end: 1.5, easing: 'easeOut' });",
          "animation.animate('#title', { opacity: [0, 1] }, { start: 1.0, end: 2.0 });",
          "animation.animate('#sub', { opacity: [0, 0.7] }, { start: 2.0, end: 3.0 });",
          "animation.animate('#line2', { opacity: [0, 0.6], width: [0, 400, 'px'] }, { start: 2.5, end: 3.5, easing: 'easeOut' });"
        ],
        "animation": true
      }
    },
    {
      "text": "An italic closing quote, fading in with the elegant restraint of classic cinema.",
      "speaker": "Presenter",
      "duration": 5,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full relative' style='background:#0c0c0c'>",
          "  <div class='absolute inset-0 pointer-events-none' style='background:repeating-linear-gradient(180deg,transparent,transparent 28px,rgba(212,168,87,0.04) 28px,rgba(212,168,87,0.04) 30px);transform:rotate(-5deg) scale(1.2)'></div>",
          "  <div class='h-full flex flex-col items-center justify-center relative px-24'>",
          "    <div id='quote' class='text-3xl italic leading-relaxed text-center' style='font-family:Georgia,serif;color:#e8d5a3;opacity:0'>\"In this city, every shadow tells a story.\"</div>",
          "    <div id='author' class='text-lg mt-6 tracking-wider' style='font-family:\"Courier New\",monospace;color:#d4a857;opacity:0'>— The Narrator</div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#quote', { opacity: [0, 1] }, { start: 0.5, end: 2.0 });",
          "animation.animate('#author', { opacity: [0, 0.7] }, { start: 2.5, end: 3.5 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Theme five. Retro Synthwave — the neon-soaked 1980s.",
      "speaker": "Presenter",
      "duration": 3,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full relative' style='background:linear-gradient(180deg,#0a001a 0%,#1a0033 50%,#330044 100%)'>",
          "  <div class='h-full flex items-center justify-center relative'>",
          "    <div id='t' class='text-7xl font-bold tracking-wider text-center' style='font-family:\"Arial Black\",Impact,sans-serif;color:#ff00ff;opacity:0;text-shadow:0 0 20px #ff00ff,0 0 40px #ff00ff'>SYNTHWAVE</div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#t', { opacity: [0, 1], scale: [1.5, 1] }, { start: 0.3, end: 1.2, easing: 'easeOut' });"
        ],
        "animation": true
      }
    },
    {
      "text": "Neon title over the classic outrun grid. Hot pink and cyan glow against the purple gradient.",
      "speaker": "Presenter",
      "duration": 4,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full relative' style='background:linear-gradient(180deg,#0a001a 0%,#1a0033 50%,#330044 100%)'>",
          "  <div class='absolute bottom-0 left-0 right-0' style='height:40%;border-top:2px solid rgba(255,0,255,0.5)'>",
          "    <div style='width:100%;height:100%;background:repeating-linear-gradient(90deg,transparent,transparent 78px,rgba(255,0,255,0.15) 78px,rgba(255,0,255,0.15) 80px),repeating-linear-gradient(180deg,transparent,transparent 18px,rgba(255,0,255,0.1) 18px,rgba(255,0,255,0.1) 20px)'></div>",
          "  </div>",
          "  <div class='h-full flex flex-col items-center justify-center relative'>",
          "    <div id='title' class='text-8xl font-bold tracking-wider text-center' style='font-family:\"Arial Black\",Impact,sans-serif;color:#ff00ff;opacity:0;text-shadow:0 0 20px #ff00ff,0 0 40px #ff00ff'>OUTRUN</div>",
          "    <div id='sub' class='text-xl tracking-[0.4em] mt-6' style='font-family:\"Courier New\",monospace;color:#00ffff;opacity:0;text-shadow:0 0 10px #00ffff'>DRIVE INTO THE SUNSET</div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#title', { opacity: [0, 1], scale: [1.5, 1] }, { start: 0.3, end: 1.5, easing: 'easeOut' });",
          "animation.animate('#sub', { opacity: [0, 1] }, { start: 1.5, end: 2.2 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Neon stat cards with animated counters on the retro grid background.",
      "speaker": "Presenter",
      "duration": 4,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full relative' style='background:linear-gradient(180deg,#0a001a 0%,#1a0033 100%)'>",
          "  <div class='h-full flex flex-col items-center justify-center relative'>",
          "    <div id='label' class='text-sm tracking-[0.5em] mb-8' style='font-family:\"Courier New\",monospace;color:#00ffff;opacity:0'>STATISTICS</div>",
          "    <div class='flex gap-6'>",
          "      <div id='c0' class='p-6 text-center' style='border:2px solid #ff00ff;background:rgba(255,0,255,0.05);opacity:0;min-width:180px'>",
          "        <div class='text-xs tracking-widest mb-2' style='color:#ff00ff;font-family:monospace'>THEMES</div>",
          "        <div id='n0' class='text-5xl font-bold' style='color:white;font-family:\"Arial Black\",sans-serif'></div>",
          "      </div>",
          "      <div id='c1' class='p-6 text-center' style='border:2px solid #00ffff;background:rgba(0,255,255,0.05);opacity:0;min-width:180px'>",
          "        <div class='text-xs tracking-widest mb-2' style='color:#00ffff;font-family:monospace'>PATTERNS</div>",
          "        <div id='n1' class='text-5xl font-bold' style='color:white;font-family:\"Arial Black\",sans-serif'></div>",
          "      </div>",
          "      <div id='c2' class='p-6 text-center' style='border:2px solid #ff6600;background:rgba(255,102,0,0.05);opacity:0;min-width:180px'>",
          "        <div class='text-xs tracking-widest mb-2' style='color:#ff6600;font-family:monospace'>BGMs</div>",
          "        <div id='n2' class='text-5xl font-bold' style='color:white;font-family:\"Arial Black\",sans-serif'></div>",
          "      </div>",
          "    </div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#label', { opacity: [0, 1] }, { start: 0, end: 0.3 });",
          "animation.stagger('#c{i}', 3, { opacity: [0, 1], translateY: [20, 0] }, { start: 0.3, stagger: 0.3, duration: 0.3, easing: 'easeOut' });",
          "animation.counter('#n0', [0, 14], { start: 0.5, end: 2.5, decimals: 0 });",
          "animation.counter('#n1', [0, 42], { start: 0.8, end: 2.5, decimals: 0 });",
          "animation.counter('#n2', [0, 60], { start: 1.1, end: 2.5, decimals: 0 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Theme six. Matrix — digital rain and the choice between reality and illusion.",
      "speaker": "Presenter",
      "duration": 3,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full bg-black flex items-center justify-center'>",
          "  <div id='t' class='text-7xl font-bold' style='font-family:\"Courier New\",Monaco,monospace;color:#00ff00;opacity:0'>THE MATRIX</div>",
          "</div>"
        ],
        "script": ["const animation = new MulmoAnimation();", "animation.animate('#t', { opacity: [0, 1] }, { start: 0.3, end: 1.0 });"],
        "animation": true
      }
    },
    {
      "text": "Digital rain. Katakana characters and digits cascade down the screen in the iconic green-on-black.",
      "speaker": "Presenter",
      "duration": 5,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full bg-black relative overflow-hidden'>",
          "  <div id='rain' class='absolute inset-0'></div>",
          "  <div class='h-full flex flex-col items-center justify-center relative'>",
          "    <div id='prompt' class='text-xl' style='font-family:\"Courier New\",monospace;color:#00ff00;opacity:0'>Wake up, Neo...</div>",
          "    <div id='title' class='text-7xl font-bold mt-8' style='font-family:\"Courier New\",monospace;color:white;opacity:0'>THE MATRIX</div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "var rain = document.getElementById('rain');",
          "var chars = 'アイウエオカキクケコサシスセソ0123456789';",
          "for (var i = 0; i < 40; i++) { var col = document.createElement('div'); col.style.cssText = 'position:absolute;top:-100%;left:'+(i*2.5)+'%;font-size:14px;line-height:1.4;color:#00ff00;opacity:'+(Math.sin(i*71.3)*0.3+0.3); var t = ''; for (var j = 0; j < 30; j++) { t += chars[Math.floor(Math.abs(Math.sin(i*127+j*311))*chars.length)] + '<br>'; } col.innerHTML = t; col.id = 'col'+i; rain.appendChild(col); }",
          "const animation = new MulmoAnimation();",
          "for (var k = 0; k < 40; k++) { var spd = (Math.sin(k*43.7)*0.5+0.5)*0.8+0.3; animation.animate('#col'+k, { translateY: [0, 1500] }, { start: spd*0.5, end: 'auto' }); }",
          "animation.animate('#prompt', { opacity: [0, 1] }, { start: 0.5, end: 1.0 });",
          "animation.animate('#title', { opacity: [0, 1] }, { start: 1.5, end: 2.5 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Red pill or blue pill. Two panels present a choice, each tinted with its signature color.",
      "speaker": "Presenter",
      "duration": 5,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full bg-black flex items-center justify-center gap-8 px-16'>",
          "  <div id='left' class='flex-1 p-8 text-center' style='border:1px solid #ff0000;background:rgba(255,0,0,0.05);opacity:0'>",
          "    <div class='text-xs tracking-[0.3em] mb-4' style='font-family:monospace;color:#ff4444'>RED PILL</div>",
          "    <div class='text-3xl font-bold mb-4' style='font-family:monospace;color:#ff6666'>The Truth</div>",
          "    <div class='text-sm' style='font-family:monospace;color:#883333'>See how deep the rabbit hole goes</div>",
          "  </div>",
          "  <div id='vs' class='text-2xl font-bold' style='font-family:monospace;color:#00ff00;opacity:0'>OR</div>",
          "  <div id='right' class='flex-1 p-8 text-center' style='border:1px solid #0066ff;background:rgba(0,102,255,0.05);opacity:0'>",
          "    <div class='text-xs tracking-[0.3em] mb-4' style='font-family:monospace;color:#4488ff'>BLUE PILL</div>",
          "    <div class='text-3xl font-bold mb-4' style='font-family:monospace;color:#6699ff'>The Illusion</div>",
          "    <div class='text-sm' style='font-family:monospace;color:#335588'>Wake up believing whatever you want</div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#left', { opacity: [0, 1], translateX: [-30, 0] }, { start: 0.3, end: 1.0, easing: 'easeOut' });",
          "animation.animate('#vs', { opacity: [0, 1] }, { start: 1.2, end: 1.5 });",
          "animation.animate('#right', { opacity: [0, 1], translateX: [30, 0] }, { start: 1.5, end: 2.2, easing: 'easeOut' });"
        ],
        "animation": true
      }
    },
    {
      "text": "Theme seven. Documentary — elegant, educational, contemplative.",
      "speaker": "Presenter",
      "duration": 3,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full flex items-center justify-center' style='background:#f5f0e8'>",
          "  <div id='t' class='text-7xl font-bold tracking-wide' style='font-family:Georgia,serif;color:#2c3e50;opacity:0'>DOCUMENTARY</div>",
          "</div>"
        ],
        "script": ["const animation = new MulmoAnimation();", "animation.animate('#t', { opacity: [0, 1] }, { start: 0.5, end: 1.5 });"],
        "animation": true
      }
    },
    {
      "text": "Minimal chapter opening with thin serif typography on warm parchment.",
      "speaker": "Presenter",
      "duration": 4,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full flex flex-col items-center justify-center' style='background:#f5f0e8'>",
          "  <div id='ch' class='text-sm tracking-[0.5em] mb-4' style='font-family:\"Courier New\",monospace;color:#7f8c8d;opacity:0'>CHAPTER ONE</div>",
          "  <div id='line1' class='h-px mb-6' style='background:#2c3e50;opacity:0;width:0'></div>",
          "  <div id='title' class='text-5xl font-bold tracking-wide text-center' style='font-family:Georgia,serif;color:#2c3e50;opacity:0'>The Beginning</div>",
          "  <div id='line2' class='h-px mt-6' style='background:#2c3e50;opacity:0;width:0'></div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#ch', { opacity: [0, 1] }, { start: 0.3, end: 0.8 });",
          "animation.animate('#line1', { opacity: [0, 0.5], width: [0, 300, 'px'] }, { start: 0.5, end: 1.3, easing: 'easeOut' });",
          "animation.animate('#title', { opacity: [0, 1] }, { start: 1.0, end: 1.8 });",
          "animation.animate('#line2', { opacity: [0, 0.5], width: [0, 300, 'px'] }, { start: 1.5, end: 2.3, easing: 'easeOut' });"
        ],
        "animation": true
      }
    },
    {
      "text": "A large counter reveals a key statistic, clean and impactful against the light background.",
      "speaker": "Presenter",
      "duration": 4,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full flex items-center px-24' style='background:#f5f0e8'>",
          "  <div class='flex-1'>",
          "    <div id='label' class='text-xs tracking-[0.3em] mb-4' style='font-family:\"Courier New\",monospace;color:#7f8c8d;opacity:0'>KEY FINDING</div>",
          "    <div class='flex items-end gap-3'>",
          "      <div id='number' class='text-8xl font-bold' style='font-family:Georgia,serif;color:#c0392b'></div>",
          "      <div id='unit' class='text-2xl mb-3' style='font-family:Georgia,serif;color:#7f8c8d;opacity:0'>percent</div>",
          "    </div>",
          "    <div id='divider' class='h-px mt-6 mb-6' style='background:#2c3e50;opacity:0;width:0'></div>",
          "    <div id='desc' class='text-xl leading-relaxed' style='font-family:\"Helvetica Neue\",Arial,sans-serif;color:#2c3e50;opacity:0'>Of presentations become more engaging with cinematic animation.</div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#label', { opacity: [0, 1] }, { start: 0, end: 0.4 });",
          "animation.counter('#number', [0, 73], { start: 0.3, end: 2.0, decimals: 0 });",
          "animation.animate('#unit', { opacity: [0, 1] }, { start: 1.5, end: 2.0 });",
          "animation.animate('#divider', { opacity: [0, 0.3], width: [0, 500, 'px'] }, { start: 1.5, end: 2.5, easing: 'easeOut' });",
          "animation.animate('#desc', { opacity: [0, 1] }, { start: 2.0, end: 2.8 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Theme eight. Anime Opening — bold, dynamic, energetic.",
      "speaker": "Presenter",
      "duration": 3,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full bg-white relative overflow-hidden'>",
          "  <div class='absolute inset-0 pointer-events-none'>",
          "    <div style='position:absolute;top:50%;left:50%;width:200%;height:200%;transform:translate(-50%,-50%);background:repeating-conic-gradient(from 0deg,transparent 0deg,transparent 8deg,rgba(230,57,70,0.06) 8deg,rgba(230,57,70,0.06) 9deg)'></div>",
          "  </div>",
          "  <div class='h-full flex items-center justify-center relative'>",
          "    <div id='t' class='text-7xl font-bold tracking-wider' style='font-family:Impact,sans-serif;color:#e63946;opacity:0'>ANIME OPENING</div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#t', { opacity: [0, 1], scale: [1.3, 1] }, { start: 0.2, end: 0.8, easing: 'easeOut' });"
        ],
        "animation": true
      }
    },
    {
      "text": "Episode title card with speed lines radiating from the center. Red accent bar expands beneath the title.",
      "speaker": "Presenter",
      "duration": 3,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full bg-white relative overflow-hidden'>",
          "  <div class='absolute inset-0 pointer-events-none'>",
          "    <div style='position:absolute;top:50%;left:50%;width:200%;height:200%;transform:translate(-50%,-50%);background:repeating-conic-gradient(from 0deg,transparent 0deg,transparent 8deg,rgba(230,57,70,0.06) 8deg,rgba(230,57,70,0.06) 9deg)'></div>",
          "  </div>",
          "  <div class='h-full flex flex-col items-center justify-center relative'>",
          "    <div id='ep' class='text-sm tracking-[0.5em] mb-4' style='font-family:Impact,sans-serif;color:#e63946;opacity:0'>EPISODE 01</div>",
          "    <div id='title' class='text-7xl font-bold tracking-wider' style='font-family:\"Hiragino Kaku Gothic ProN\",\"Noto Sans JP\",sans-serif;color:#1d3557;opacity:0'>始まりの章</div>",
          "    <div id='bar' class='mt-6 h-1' style='background:#e63946;opacity:0;width:0'></div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#ep', { opacity: [0, 1] }, { start: 0, end: 0.3 });",
          "animation.animate('#title', { opacity: [0, 1], scale: [1.3, 1] }, { start: 0.2, end: 0.8, easing: 'easeOut' });",
          "animation.animate('#bar', { opacity: [0, 1], width: [0, 400, 'px'] }, { start: 0.8, end: 1.3, easing: 'easeOut' });"
        ],
        "animation": true
      }
    },
    {
      "text": "Character reveal with sidebar accent and sliding tag label.",
      "speaker": "Presenter",
      "duration": 4,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full bg-white flex'>",
          "  <div id='sidebar' class='w-2 h-full' style='background:#e63946;opacity:0'></div>",
          "  <div class='flex-1 flex flex-col justify-center px-20'>",
          "    <div id='tag' class='text-xs tracking-[0.5em] px-3 py-1 inline-block mb-4' style='background:#e63946;color:white;font-family:Impact,sans-serif;opacity:0;width:fit-content'>CHARACTER</div>",
          "    <div id='name' class='text-5xl font-bold mb-4' style='font-family:\"Hiragino Kaku Gothic ProN\",sans-serif;color:#1d3557;opacity:0'>MulmoCast</div>",
          "    <div id='desc' class='text-xl leading-relaxed' style='font-family:\"Helvetica Neue\",sans-serif;color:#555;opacity:0'>AI-native multi-modal presentation platform that transforms content into cinematic experiences.</div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#sidebar', { opacity: [0, 1] }, { start: 0, end: 0.15 });",
          "animation.animate('#tag', { opacity: [0, 1], translateX: [-20, 0] }, { start: 0.2, end: 0.5, easing: 'easeOut' });",
          "animation.animate('#name', { opacity: [0, 1], translateX: [-15, 0] }, { start: 0.4, end: 0.8, easing: 'easeOut' });",
          "animation.animate('#desc', { opacity: [0, 1] }, { start: 0.8, end: 1.3 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Theme nine. Horror — dark, unsettling, creeping dread.",
      "speaker": "Presenter",
      "duration": 3,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full bg-black relative'>",
          "  <div class='absolute inset-0 pointer-events-none' style='background:radial-gradient(ellipse at center,transparent 50%,rgba(10,0,0,0.8) 100%)'></div>",
          "  <div class='h-full flex items-center justify-center relative'>",
          "    <div id='t' class='text-7xl font-bold tracking-wider' style='font-family:Georgia,serif;color:#8b0000;opacity:0'>HORROR</div>",
          "  </div>",
          "</div>"
        ],
        "script": ["const animation = new MulmoAnimation();", "animation.animate('#t', { opacity: [0, 1] }, { start: 1.0, end: 2.5 });"],
        "animation": true
      }
    },
    {
      "text": "Ominous countdown with blood-red numbers ticking downward. A blinking warning appears as time runs out.",
      "speaker": "Presenter",
      "duration": 5,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full bg-black relative'>",
          "  <div class='absolute inset-0 pointer-events-none' style='background:radial-gradient(ellipse at center,transparent 50%,rgba(10,0,0,0.8) 100%)'></div>",
          "  <div class='h-full flex flex-col items-center justify-center relative'>",
          "    <div id='label' class='text-xs tracking-[0.5em] mb-8' style='font-family:\"Courier New\",monospace;color:#666;opacity:0'>TIME REMAINING</div>",
          "    <div id='timer' class='font-bold' style='font-family:\"Courier New\",monospace;color:#8b0000;font-size:120px'></div>",
          "    <div id='warn' class='text-lg mt-8 tracking-wider' style='font-family:\"Courier New\",monospace;color:#ff0000;opacity:0'>POINT OF NO RETURN</div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#label', { opacity: [0, 1] }, { start: 0, end: 0.5 });",
          "animation.counter('#timer', [60, 0], { start: 0.3, end: 4.0, decimals: 0 });",
          "animation.animate('#warn', { opacity: [0, 1] }, { start: 3.5, end: 4.0 });",
          "animation.blink('#warn', { interval: 0.3 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Slow typewriter reveals hidden text, as if uncovering a terrible secret letter by letter.",
      "speaker": "Presenter",
      "duration": 5,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full bg-black relative'>",
          "  <div class='absolute inset-0 pointer-events-none' style='background:radial-gradient(ellipse at center,transparent 50%,rgba(10,0,0,0.8) 100%)'></div>",
          "  <div class='h-full flex flex-col items-center justify-center relative px-24'>",
          "    <div id='text' class='text-4xl leading-relaxed text-center' style='font-family:Georgia,serif;color:#666'></div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.typewriter('#text', 'The truth was hiding in plain sight all along.', { start: 0.5, end: 4.0 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Theme ten. Terminator T-800 Vision — the machine's-eye view.",
      "speaker": "Presenter",
      "duration": 3,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full relative overflow-hidden' style='background:linear-gradient(180deg,#1a0000,#0d0000 60%,#1a0505)'>",
          "  <div id='city' class='absolute bottom-0 left-0 right-0' style='height:70%'></div>",
          "  <div class='absolute inset-0' style='background:rgba(255,0,0,0.04)'></div>",
          "  <div class='absolute inset-0' style='background:repeating-linear-gradient(0deg,transparent,transparent 38px,rgba(255,0,0,0.04) 38px,rgba(255,0,0,0.04) 40px),repeating-linear-gradient(90deg,transparent,transparent 38px,rgba(255,0,0,0.04) 38px,rgba(255,0,0,0.04) 40px)'></div>",
          "  <div class='h-full flex items-center justify-center relative'>",
          "    <div id='title' class='text-6xl font-bold tracking-wider' style='font-family:monospace;color:#ff0000;opacity:0;text-shadow:0 0 30px rgba(255,0,0,0.3)'>TERMINATOR T-800</div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "var city=document.getElementById('city');[[3,6,55],[9,4,80],[14,8,45],[23,5,92],[29,10,35],[40,6,72],[48,4,55],[53,7,88],[62,5,48],[69,8,65],[79,4,78],[85,6,40],[92,5,70]].forEach(function(b,i){var d=document.createElement('div');d.style.cssText='position:absolute;bottom:0;left:'+b[0]+'%;width:'+b[1]+'%;height:'+b[2]+'%;background:#'+(i%2?'0a':'0d')+'0000;border-top:1px solid rgba(255,0,0,0.08)';city.appendChild(d);for(var w=0;w<4;w++){var l=document.createElement('div');l.style.cssText='position:absolute;bottom:'+((0.1+Math.abs(Math.sin((i*7+w*13)*17.3))*0.6)*b[2])+'%;left:'+(b[0]+Math.abs(Math.sin((i*11+w*23)*31.7))*b[1]*0.6+b[1]*0.2)+'%;width:3px;height:2px;background:rgba(255,50,50,'+(0.12+Math.abs(Math.sin(i+w))*0.15)+')';city.appendChild(l);}});",
          "const animation = new MulmoAnimation();",
          "animation.animate('#title', { opacity: [0, 1] }, { start: 0.5, end: 1.5 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Target acquired. The reticle expands, distance counter ticks down, threat level rises.",
      "speaker": "Presenter",
      "duration": 5,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full relative overflow-hidden' style='background:linear-gradient(180deg,#1a0000,#0d0000 60%,#1a0505)'>",
          "  <div id='city' class='absolute bottom-0 left-0 right-0' style='height:70%'></div>",
          "  <div class='absolute inset-0' style='background:rgba(255,0,0,0.04)'></div>",
          "  <div class='absolute inset-0' style='background:repeating-linear-gradient(0deg,transparent,transparent 38px,rgba(255,0,0,0.04) 38px,rgba(255,0,0,0.04) 40px),repeating-linear-gradient(90deg,transparent,transparent 38px,rgba(255,0,0,0.04) 38px,rgba(255,0,0,0.04) 40px)'></div>",
          "  <div id='scanline' class='absolute left-0 right-0' style='height:2px;background:rgba(255,0,0,0.2);top:0;opacity:0'></div>",
          "  <div id='bracket' class='absolute' style='top:50%;left:50%;transform:translate(-50%,-50%);width:0;height:0;opacity:0'>",
          "    <div style='position:absolute;top:0;left:0;width:20px;height:20px;border-top:2px solid #ff0000;border-left:2px solid #ff0000'></div>",
          "    <div style='position:absolute;top:0;right:0;width:20px;height:20px;border-top:2px solid #ff0000;border-right:2px solid #ff0000'></div>",
          "    <div style='position:absolute;bottom:0;left:0;width:20px;height:20px;border-bottom:2px solid #ff0000;border-left:2px solid #ff0000'></div>",
          "    <div style='position:absolute;bottom:0;right:0;width:20px;height:20px;border-bottom:2px solid #ff0000;border-right:2px solid #ff0000'></div>",
          "  </div>",
          "  <div class='absolute top-6 left-8'>",
          "    <div id='sys' class='text-xs tracking-[0.3em]' style='font-family:monospace;color:#ff3333;opacity:0'>CYBERDYNE SYSTEMS MODEL 101</div>",
          "    <div id='mode' class='text-xs mt-1' style='font-family:monospace;color:#660000;opacity:0'>SCAN MODE: ACTIVE</div>",
          "  </div>",
          "  <div class='absolute bottom-6 left-8'>",
          "    <div id='dist' class='text-xs' style='font-family:monospace;color:#ff6666;opacity:0'>DIST: <span id='distVal'></span>m</div>",
          "  </div>",
          "  <div class='absolute bottom-6 right-8 text-right'>",
          "    <div id='threat' class='text-xs' style='font-family:monospace;color:#ff0000;opacity:0'>THREAT: <span id='threatVal'></span>%</div>",
          "  </div>",
          "  <div class='h-full flex flex-col items-center justify-center relative'>",
          "    <div id='target' class='text-5xl font-bold tracking-wider' style='font-family:monospace;color:#ff0000;opacity:0'>TARGET ACQUIRED</div>",
          "    <div id='id' class='text-lg mt-4 tracking-[0.5em]' style='font-family:monospace;color:#ff3333;opacity:0'>MATCH: <span id='matchVal'></span>%</div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "var city=document.getElementById('city');[[3,6,55],[9,4,80],[14,8,45],[23,5,92],[29,10,35],[40,6,72],[48,4,55],[53,7,88],[62,5,48],[69,8,65],[79,4,78],[85,6,40],[92,5,70]].forEach(function(b,i){var d=document.createElement('div');d.style.cssText='position:absolute;bottom:0;left:'+b[0]+'%;width:'+b[1]+'%;height:'+b[2]+'%;background:#'+(i%2?'0a':'0d')+'0000;border-top:1px solid rgba(255,0,0,0.08)';city.appendChild(d);for(var w=0;w<4;w++){var l=document.createElement('div');l.style.cssText='position:absolute;bottom:'+((0.1+Math.abs(Math.sin((i*7+w*13)*17.3))*0.6)*b[2])+'%;left:'+(b[0]+Math.abs(Math.sin((i*11+w*23)*31.7))*b[1]*0.6+b[1]*0.2)+'%;width:3px;height:2px;background:rgba(255,50,50,'+(0.12+Math.abs(Math.sin(i+w))*0.15)+')';city.appendChild(l);}});",
          "const animation = new MulmoAnimation();",
          "animation.animate('#scanline', { opacity: [0, 0.2], translateY: [0, 720] }, { start: 0, end: 2.0 });",
          "animation.animate('#bracket', { opacity: [0, 1], width: [320, 160, 'px'], height: [260, 130, 'px'] }, { start: 0.5, end: 1.8, easing: 'easeOut' });",
          "animation.animate('#sys', { opacity: [0, 1] }, { start: 0.2, end: 0.4 });",
          "animation.animate('#mode', { opacity: [0, 1] }, { start: 0.5, end: 0.7 });",
          "animation.blink('#mode', { interval: 0.8 });",
          "animation.animate('#dist', { opacity: [0, 1] }, { start: 1.0, end: 1.2 });",
          "animation.counter('#distVal', [250, 12], { start: 1.0, end: 3.5, decimals: 1 });",
          "animation.animate('#threat', { opacity: [0, 1] }, { start: 1.2, end: 1.4 });",
          "animation.counter('#threatVal', [0, 97], { start: 1.2, end: 3.0, decimals: 0 });",
          "animation.animate('#target', { opacity: [0, 1] }, { start: 2.0, end: 2.3 });",
          "animation.animate('#id', { opacity: [0, 1] }, { start: 2.5, end: 2.8 });",
          "animation.counter('#matchVal', [0, 99.7], { start: 2.5, end: 3.5, decimals: 1 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Tactical analysis H-U-D. Progress bars fill while status lines cascade in from the side.",
      "speaker": "Presenter",
      "duration": 5,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full relative overflow-hidden' style='background:linear-gradient(180deg,#1a0000,#0d0000 60%,#1a0505)'>",
          "  <div id='city' class='absolute bottom-0 left-0 right-0' style='height:70%'></div>",
          "  <div class='absolute inset-0' style='background:rgba(255,0,0,0.04)'></div>",
          "  <div class='absolute inset-0' style='background:repeating-linear-gradient(0deg,transparent,transparent 38px,rgba(255,0,0,0.04) 38px,rgba(255,0,0,0.04) 40px),repeating-linear-gradient(90deg,transparent,transparent 38px,rgba(255,0,0,0.04) 38px,rgba(255,0,0,0.04) 40px)'></div>",
          "  <div id='silhouette' class='absolute' style='top:12%;left:30%;width:25%;height:78%;opacity:0'>",
          "    <div style='position:absolute;top:0;left:25%;width:50%;height:18%;border:1px solid rgba(255,0,0,0.25);border-radius:50%'></div>",
          "    <div style='position:absolute;top:16%;left:15%;width:70%;height:30%;border:1px solid rgba(255,0,0,0.15);border-radius:30% 30% 5% 5%'></div>",
          "    <div style='position:absolute;top:44%;left:5%;width:35%;height:56%;border:1px solid rgba(255,0,0,0.1);border-radius:5%'></div>",
          "    <div style='position:absolute;top:44%;right:5%;width:35%;height:56%;border:1px solid rgba(255,0,0,0.1);border-radius:5%'></div>",
          "    <div id='faceGrid' class='absolute' style='top:1%;left:28%;width:44%;height:15%'></div>",
          "  </div>",
          "  <div class='absolute top-6 left-8'>",
          "    <div id='header' class='text-xs tracking-[0.5em]' style='font-family:monospace;color:#ff3333;opacity:0'>SUBJECT ANALYSIS</div>",
          "  </div>",
          "  <div class='absolute top-16 right-8 w-72'>",
          "    <div id='r0' class='mb-4' style='opacity:0'>",
          "      <div class='flex justify-between text-xs mb-1' style='font-family:monospace;color:#ff6666'><span>WEAPON SCAN</span><span style='color:#ff0000'>HANDGUN</span></div>",
          "      <div style='background:#330000;height:4px;border-radius:2px'><div id='bar0' style='background:#ff0000;height:100%;border-radius:2px;width:0'></div></div>",
          "    </div>",
          "    <div id='r1' class='mb-4' style='opacity:0'>",
          "      <div class='flex justify-between text-xs mb-1' style='font-family:monospace;color:#ff6666'><span>BEHAVIOR</span><span style='color:#ff3333'>HOSTILE</span></div>",
          "      <div style='background:#330000;height:4px;border-radius:2px'><div id='bar1' style='background:#ff3333;height:100%;border-radius:2px;width:0'></div></div>",
          "    </div>",
          "    <div id='action' class='text-sm font-bold mt-6' style='font-family:monospace;color:#ff0000;opacity:0'>▸ ACTION: TERMINATE</div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "var city=document.getElementById('city');[[3,6,55],[9,4,80],[14,8,45],[23,5,92],[29,10,35],[40,6,72],[48,4,55],[53,7,88],[62,5,48],[69,8,65],[79,4,78],[85,6,40],[92,5,70]].forEach(function(b,i){var d=document.createElement('div');d.style.cssText='position:absolute;bottom:0;left:'+b[0]+'%;width:'+b[1]+'%;height:'+b[2]+'%;background:#'+(i%2?'0a':'0d')+'0000;border-top:1px solid rgba(255,0,0,0.08)';city.appendChild(d);for(var w=0;w<4;w++){var l=document.createElement('div');l.style.cssText='position:absolute;bottom:'+((0.1+Math.abs(Math.sin((i*7+w*13)*17.3))*0.6)*b[2])+'%;left:'+(b[0]+Math.abs(Math.sin((i*11+w*23)*31.7))*b[1]*0.6+b[1]*0.2)+'%;width:3px;height:2px;background:rgba(255,50,50,'+(0.12+Math.abs(Math.sin(i+w))*0.15)+')';city.appendChild(l);}});",
          "var fg=document.getElementById('faceGrid');for(var i=0;i<15;i++){var dot=document.createElement('div');dot.style.cssText='position:absolute;width:3px;height:3px;border-radius:50%;background:#ff0000;opacity:0;left:'+(Math.abs(Math.sin(i*37.7))*80+10)+'%;top:'+(Math.abs(Math.sin(i*53.1))*80+10)+'%';dot.id='dot'+i;fg.appendChild(dot);}",
          "const animation = new MulmoAnimation();",
          "animation.animate('#silhouette', { opacity: [0, 1] }, { start: 0, end: 0.5 });",
          "animation.stagger('#dot{i}', 15, { opacity: [0, 0.8] }, { start: 0.3, stagger: 0.06, duration: 0.1 });",
          "animation.animate('#header', { opacity: [0, 1] }, { start: 0, end: 0.3 });",
          "animation.stagger('#r{i}', 2, { opacity: [0, 1] }, { start: 0.8, stagger: 0.4, duration: 0.25 });",
          "animation.animate('#bar0', { width: [0, 92, '%'] }, { start: 1.0, end: 2.5, easing: 'easeOut' });",
          "animation.animate('#bar1', { width: [0, 88, '%'] }, { start: 1.4, end: 2.5, easing: 'easeOut' });",
          "animation.animate('#action', { opacity: [0, 1] }, { start: 3.5, end: 3.8 });",
          "animation.blink('#action', { interval: 0.4 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Theme eleven. Dragon Ball Scouter — power levels rising!",
      "speaker": "Presenter",
      "duration": 3,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full relative overflow-hidden' style='background:radial-gradient(circle at center,#002200,#001a00 40%,#000d00)'>",
          "  <div id='warrior' class='absolute' style='top:15%;left:32%;width:36%;height:75%;opacity:0.3'>",
          "    <div style='width:100%;height:100%;background:linear-gradient(180deg,rgba(0,255,102,0.1),rgba(0,255,102,0.02));clip-path:polygon(40% 0%,60% 0%,65% 10%,60% 25%,75% 35%,80% 50%,70% 65%,60% 100%,40% 100%,30% 65%,20% 50%,25% 35%,40% 25%,35% 10%)'></div>",
          "  </div>",
          "  <div class='h-full flex items-center justify-center relative'>",
          "    <div id='title' class='text-6xl font-bold tracking-wider' style='font-family:Impact,\"Arial Black\",sans-serif;color:#00ff66;opacity:0;text-shadow:0 0 30px rgba(0,255,102,0.3)'>DRAGON BALL SCOUTER</div>",
          "  </div>",
          "</div>"
        ],
        "script": ["const animation = new MulmoAnimation();", "animation.animate('#title', { opacity: [0, 1] }, { start: 0.5, end: 1.5 });"],
        "animation": true
      }
    },
    {
      "text": "Power level scan. The scouter rings expand as the counter races past nine thousand.",
      "speaker": "Presenter",
      "duration": 5,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full relative overflow-hidden' style='background:radial-gradient(circle at center,#002200,#001a00 40%,#000d00)'>",
          "  <div id='warrior' class='absolute' style='top:15%;left:32%;width:36%;height:75%;opacity:0'>",
          "    <div style='width:100%;height:100%;background:linear-gradient(180deg,rgba(0,255,102,0.12),rgba(0,255,102,0.03));clip-path:polygon(40% 0%,60% 0%,65% 10%,60% 25%,75% 35%,80% 50%,70% 65%,60% 100%,40% 100%,30% 65%,20% 50%,25% 35%,40% 25%,35% 10%)'></div>",
          "  </div>",
          "  <div id='lens' class='absolute' style='top:50%;left:50%;transform:translate(-50%,-50%);width:0;height:0;border:3px solid rgba(0,255,102,0.3);border-radius:50%;opacity:0'>",
          "    <div style='position:absolute;top:-8px;left:50%;width:2px;height:15px;background:rgba(0,255,102,0.4);transform:translateX(-50%)'></div>",
          "    <div style='position:absolute;bottom:-8px;left:50%;width:2px;height:15px;background:rgba(0,255,102,0.4);transform:translateX(-50%)'></div>",
          "    <div style='position:absolute;left:-8px;top:50%;width:15px;height:2px;background:rgba(0,255,102,0.4);transform:translateY(-50%)'></div>",
          "    <div style='position:absolute;right:-8px;top:50%;width:15px;height:2px;background:rgba(0,255,102,0.4);transform:translateY(-50%)'></div>",
          "  </div>",
          "  <div id='ring2' class='absolute' style='top:50%;left:50%;transform:translate(-50%,-50%);width:0;height:0;border:1px solid rgba(0,255,102,0.12);border-radius:50%;opacity:0'></div>",
          "  <div class='absolute top-6 left-8'>",
          "    <div id='scouter' class='text-xs tracking-[0.3em]' style='font-family:monospace;color:#00cc44;opacity:0'>SCOUTER v3.0 — ACTIVE</div>",
          "  </div>",
          "  <div class='absolute top-6 right-8 text-right'>",
          "    <div id='scanLabel' class='text-xs' style='font-family:monospace;color:#004d1a;opacity:0'>SCANNING...</div>",
          "  </div>",
          "  <div class='h-full flex flex-col items-center justify-center relative' style='padding-top:20%'>",
          "    <div id='label' class='text-sm tracking-[0.5em] mb-4' style='font-family:monospace;color:#00cc44;opacity:0'>戦 闘 力</div>",
          "    <div id='power' class='font-bold' style='font-family:Impact,\"Arial Black\",sans-serif;color:#00ff66;font-size:120px'></div>",
          "    <div id='alert' class='text-xl mt-6 font-bold tracking-wider' style='font-family:monospace;color:#ff3300;opacity:0'>!!! OVER 9000 !!!</div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#warrior', { opacity: [0, 1] }, { start: 0, end: 0.8 });",
          "animation.animate('#lens', { opacity: [0, 0.6], width: [0, 550, 'px'], height: [0, 550, 'px'] }, { start: 0.2, end: 1.5, easing: 'easeOut' });",
          "animation.animate('#ring2', { opacity: [0, 0.2], width: [0, 400, 'px'], height: [0, 400, 'px'] }, { start: 0.5, end: 1.5, easing: 'easeOut' });",
          "animation.animate('#scouter', { opacity: [0, 1] }, { start: 0.2, end: 0.4 });",
          "animation.animate('#scanLabel', { opacity: [0, 1] }, { start: 0.3, end: 0.5 });",
          "animation.blink('#scanLabel', { interval: 0.3 });",
          "animation.animate('#label', { opacity: [0, 1] }, { start: 0.8, end: 1.1 });",
          "animation.counter('#power', [0, 9001], { start: 1.0, end: 3.5, decimals: 0 });",
          "animation.animate('#alert', { opacity: [0, 1] }, { start: 3.5, end: 3.8 });",
          "animation.blink('#alert', { interval: 0.25 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Multi-target grid. Three targets scanned simultaneously, with the third triggering a danger alert.",
      "speaker": "Presenter",
      "duration": 5,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full relative overflow-hidden' style='background:radial-gradient(circle at center,#002200,#001a00 40%,#000d00)'>",
          "  <div class='absolute' style='top:20%;left:8%;width:18%;height:60%;opacity:0.5'>",
          "    <div style='width:100%;height:100%;background:rgba(0,255,102,0.06);clip-path:polygon(40% 0%,60% 0%,65% 15%,75% 35%,70% 65%,60% 100%,40% 100%,30% 65%,25% 35%,35% 15%)'></div>",
          "  </div>",
          "  <div class='absolute' style='top:10%;left:38%;width:22%;height:72%;opacity:0.5'>",
          "    <div style='width:100%;height:100%;background:rgba(0,255,102,0.08);clip-path:polygon(40% 0%,60% 0%,65% 15%,75% 35%,70% 65%,60% 100%,40% 100%,30% 65%,25% 35%,35% 15%)'></div>",
          "  </div>",
          "  <div class='absolute' style='top:25%;left:70%;width:16%;height:55%;opacity:0.5'>",
          "    <div style='width:100%;height:100%;background:rgba(255,51,0,0.08);clip-path:polygon(40% 0%,60% 0%,65% 15%,75% 35%,70% 65%,60% 100%,40% 100%,30% 65%,25% 35%,35% 15%)'></div>",
          "  </div>",
          "  <div id='header' class='absolute top-6 left-8 text-xs tracking-[0.5em]' style='font-family:monospace;color:#00cc44;opacity:0'>MULTI-TARGET SCAN</div>",
          "  <div id='t0' class='absolute p-3' style='top:15%;left:5%;border:1px solid rgba(0,255,102,0.3);background:rgba(0,20,0,0.7);opacity:0'>",
          "    <div class='text-xs tracking-widest mb-1' style='font-family:monospace;color:#00cc44'>TARGET A</div>",
          "    <div id='p0' class='text-3xl font-bold' style='font-family:Impact,sans-serif;color:#00ff66'></div>",
          "  </div>",
          "  <div id='t1' class='absolute p-3' style='top:5%;left:36%;border:1px solid rgba(0,255,102,0.3);background:rgba(0,20,0,0.7);opacity:0'>",
          "    <div class='text-xs tracking-widest mb-1' style='font-family:monospace;color:#00cc44'>TARGET B</div>",
          "    <div id='p1' class='text-3xl font-bold' style='font-family:Impact,sans-serif;color:#00ff66'></div>",
          "  </div>",
          "  <div id='t2' class='absolute p-3' style='top:20%;left:68%;border:1px solid rgba(255,51,0,0.4);background:rgba(20,0,0,0.7);opacity:0'>",
          "    <div class='text-xs tracking-widest mb-1' style='font-family:monospace;color:#ff3300'>TARGET C</div>",
          "    <div id='p2' class='text-3xl font-bold' style='font-family:Impact,sans-serif;color:#ff3300'></div>",
          "    <div id='danger' class='text-xs mt-1 font-bold' style='font-family:monospace;color:#ff3300'>⚠ DANGER</div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#header', { opacity: [0, 1] }, { start: 0, end: 0.3 });",
          "animation.stagger('#t{i}', 3, { opacity: [0, 1], translateY: [10, 0] }, { start: 0.3, stagger: 0.4, duration: 0.3, easing: 'easeOut' });",
          "animation.counter('#p0', [0, 1200], { start: 0.5, end: 2.5, decimals: 0 });",
          "animation.counter('#p1', [0, 4500], { start: 0.9, end: 2.5, decimals: 0 });",
          "animation.counter('#p2', [0, 53000], { start: 1.3, end: 3.0, decimals: 0 });",
          "animation.blink('#danger', { interval: 0.3 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Theme twelve. Blade Runner — rain-soaked neon melancholy.",
      "speaker": "Presenter",
      "duration": 4,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full relative overflow-hidden' style='background:linear-gradient(180deg,#0a0a14,#0f0f1e 40%,#141428)'>",
          "  <div id='bg-layer' class='absolute bottom-0 left-0 right-0' style='height:75%'></div>",
          "  <div id='mid-layer' class='absolute bottom-0 left-0 right-0' style='height:85%'></div>",
          "  <div class='absolute bottom-0 left-0 right-0 h-32' style='background:linear-gradient(0deg,rgba(255,106,0,0.06),transparent)'></div>",
          "  <div class='absolute bottom-0 left-0 right-0 h-24' style='background:linear-gradient(0deg,rgba(10,10,20,0.6),transparent)'></div>",
          "  <div id='rain' class='absolute inset-0'></div>",
          "  <div class='h-full flex items-center justify-center relative'>",
          "    <div id='title' class='text-6xl font-bold tracking-wider' style='font-family:Georgia,serif;color:#ff6a00;opacity:0;text-shadow:0 0 40px rgba(255,106,0,0.4)'>BLADE RUNNER</div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "var bg=document.getElementById('bg-layer');[[0,15,30],[18,12,50],[35,10,25],[50,14,55],[68,10,35],[82,15,45],[95,5,30]].forEach(function(b,i){var d=document.createElement('div');d.style.cssText='position:absolute;bottom:0;left:'+b[0]+'%;width:'+b[1]+'%;height:'+b[2]+'%;background:rgba(15,15,30,0.7)';bg.appendChild(d);});",
          "var mid=document.getElementById('mid-layer');var nC=['#ff6a00','#00b4d8','#e76f51','#00b4d8','#ff6a00','#e76f51','#00b4d8'];[[5,8,60],[18,6,75],[30,10,50],[44,7,85],[58,8,65],[72,6,55],[84,8,70],[93,5,45]].forEach(function(b,i){var d=document.createElement('div');d.style.cssText='position:absolute;bottom:0;left:'+b[0]+'%;width:'+b[1]+'%;height:'+b[2]+'%;background:#0a0a14;border-top:1px solid rgba(0,180,216,0.05)';mid.appendChild(d);if(i%2===0){var s=document.createElement('div');var nc=nC[i%7];s.style.cssText='position:absolute;bottom:'+(b[2]*0.35)+'%;left:'+(b[0]+b[1]*0.1)+'%;width:'+(b[1]*0.8)+'%;height:6px;background:'+nc+';box-shadow:0 0 8px '+nc+',0 0 20px '+nc+';opacity:0.35';mid.appendChild(s);}for(var w=0;w<5;w++){var l=document.createElement('div');l.style.cssText='position:absolute;bottom:'+(b[2]*(0.1+Math.abs(Math.sin(i*13+w*7))*0.7))+'%;left:'+(b[0]+b[1]*(0.1+Math.abs(Math.sin(i*17+w*11))*0.7))+'%;width:4px;height:3px;background:rgba(255,200,100,'+(0.06+Math.abs(Math.sin(i*w))*0.08)+')';mid.appendChild(l);}});",
          "var rain=document.getElementById('rain');for(var i=0;i<80;i++){var d=document.createElement('div');var x=(Math.sin(i*311.7)*0.5+0.5)*100;var h=(Math.sin(i*127.1)*0.5+0.5)*35+10;var op=(Math.sin(i*43.1)*0.5+0.5)*0.2+0.05;var colors=['#00b4d8','#ff6a00','#e76f51'];var c=colors[Math.floor(Math.abs(Math.sin(i*73.3))*3)];d.style.cssText='position:absolute;top:-'+h+'px;left:'+x+'%;width:1px;height:'+h+'px;background:linear-gradient(180deg,transparent,'+c+');opacity:'+op;d.id='drop'+i;rain.appendChild(d);}",
          "const animation = new MulmoAnimation();",
          "for(var k=0;k<80;k++){var spd=(Math.sin(k*43.7)*0.5+0.5)*1.5+0.5;animation.animate('#drop'+k,{translateY:[0,800]},{start:spd*0.3,end:'auto'});}",
          "animation.animate('#title', { opacity: [0, 1] }, { start: 0.5, end: 2.0 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Neon rain falls through the dark cityscape. Orange and teal streaks against deep blue-black.",
      "speaker": "Presenter",
      "duration": 6,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full relative overflow-hidden' style='background:linear-gradient(180deg,#0a0a14,#0f0f1e 40%,#141428)'>",
          "  <div id='bg-layer' class='absolute bottom-0 left-0 right-0' style='height:75%'></div>",
          "  <div id='mid-layer' class='absolute bottom-0 left-0 right-0' style='height:85%'></div>",
          "  <div class='absolute bottom-0 left-0 right-0 h-32' style='background:linear-gradient(0deg,rgba(255,106,0,0.06),transparent)'></div>",
          "  <div class='absolute bottom-0 left-0 right-0 h-24' style='background:linear-gradient(0deg,rgba(10,10,20,0.6),transparent)'></div>",
          "  <div id='rain' class='absolute inset-0'></div>",
          "  <div class='h-full flex flex-col items-center justify-center relative'>",
          "    <div id='title' class='text-7xl font-bold tracking-wider text-center' style='font-family:Georgia,serif;color:#ff6a00;opacity:0;text-shadow:0 0 40px rgba(255,106,0,0.4),0 0 80px rgba(255,106,0,0.1)'>NEON RAIN</div>",
          "    <div id='subtitle' class='text-xl mt-6 tracking-[0.3em]' style='font-family:\"Courier New\",monospace;color:#00b4d8;opacity:0'>Like tears in rain</div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "var bg=document.getElementById('bg-layer');[[0,15,30],[18,12,50],[35,10,25],[50,14,55],[68,10,35],[82,15,45],[95,5,30]].forEach(function(b,i){var d=document.createElement('div');d.style.cssText='position:absolute;bottom:0;left:'+b[0]+'%;width:'+b[1]+'%;height:'+b[2]+'%;background:rgba(15,15,30,0.7)';bg.appendChild(d);});",
          "var mid=document.getElementById('mid-layer');var nC=['#ff6a00','#00b4d8','#e76f51','#00b4d8','#ff6a00','#e76f51','#00b4d8'];[[5,8,60],[18,6,75],[30,10,50],[44,7,85],[58,8,65],[72,6,55],[84,8,70],[93,5,45]].forEach(function(b,i){var d=document.createElement('div');d.style.cssText='position:absolute;bottom:0;left:'+b[0]+'%;width:'+b[1]+'%;height:'+b[2]+'%;background:#0a0a14;border-top:1px solid rgba(0,180,216,0.05)';mid.appendChild(d);if(i%2===0){var s=document.createElement('div');var nc=nC[i%7];s.style.cssText='position:absolute;bottom:'+(b[2]*0.35)+'%;left:'+(b[0]+b[1]*0.1)+'%;width:'+(b[1]*0.8)+'%;height:6px;background:'+nc+';box-shadow:0 0 8px '+nc+',0 0 20px '+nc+';opacity:0.35';mid.appendChild(s);}for(var w=0;w<5;w++){var l=document.createElement('div');l.style.cssText='position:absolute;bottom:'+(b[2]*(0.1+Math.abs(Math.sin(i*13+w*7))*0.7))+'%;left:'+(b[0]+b[1]*(0.1+Math.abs(Math.sin(i*17+w*11))*0.7))+'%;width:4px;height:3px;background:rgba(255,200,100,'+(0.06+Math.abs(Math.sin(i*w))*0.08)+')';mid.appendChild(l);}});",
          "var rain=document.getElementById('rain');for(var i=0;i<80;i++){var d=document.createElement('div');var x=(Math.sin(i*311.7)*0.5+0.5)*100;var h=(Math.sin(i*127.1)*0.5+0.5)*35+10;var op=(Math.sin(i*43.1)*0.5+0.5)*0.2+0.05;var colors=['#00b4d8','#ff6a00','#e76f51'];var c=colors[Math.floor(Math.abs(Math.sin(i*73.3))*3)];d.style.cssText='position:absolute;top:-'+h+'px;left:'+x+'%;width:1px;height:'+h+'px;background:linear-gradient(180deg,transparent,'+c+');opacity:'+op;d.id='drop'+i;rain.appendChild(d);}",
          "const animation = new MulmoAnimation();",
          "for(var k=0;k<80;k++){var spd=(Math.sin(k*43.7)*0.5+0.5)*1.5+0.5;animation.animate('#drop'+k,{translateY:[0,800]},{start:spd*0.3,end:'auto'});}",
          "animation.animate('#title', { opacity: [0, 1] }, { start: 1.0, end: 2.5 });",
          "animation.animate('#subtitle', { opacity: [0, 0.7] }, { start: 3.0, end: 4.5 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Voight-Kampff analysis terminal. A question types out, empathy metrics respond.",
      "speaker": "Presenter",
      "duration": 5,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full relative overflow-hidden' style='background:linear-gradient(180deg,#0a0a14,#0f0f1e 40%,#141428)'>",
          "  <div id='bg-layer' class='absolute bottom-0 left-0 right-0' style='height:75%'></div>",
          "  <div class='absolute inset-0' style='background:rgba(10,10,20,0.7)'></div>",
          "  <div id='rain' class='absolute inset-0'></div>",
          "  <div class='h-full flex flex-col justify-center px-20 relative'>",
          "    <div id='label' class='text-xs tracking-[0.5em] mb-6' style='font-family:monospace;color:#ff6a00;opacity:0'>VOIGHT-KAMPFF ANALYSIS v6.2</div>",
          "    <div class='p-6 rounded' style='border:1px solid #1a1a2e;background:rgba(10,10,20,0.85)'>",
          "      <div id='q' class='text-lg mb-4' style='font-family:Georgia,serif;color:#00b4d8'></div>",
          "      <div id='cur' style='font-family:monospace;color:#00b4d8'>&#9608;</div>",
          "      <div class='mt-6 pt-4' style='border-top:1px solid #1a1a2e'>",
          "        <div id='r0' class='flex justify-between text-sm mb-2' style='font-family:monospace;opacity:0'><span style='color:#555570'>EMPATHY RESPONSE</span><span id='e0' style='color:#ff6a00'></span></div>",
          "        <div id='r1' class='flex justify-between text-sm mb-2' style='font-family:monospace;opacity:0'><span style='color:#555570'>PUPIL DILATION</span><span id='e1' style='color:#ff6a00'></span></div>",
          "        <div id='r2' class='flex justify-between text-sm' style='font-family:monospace;opacity:0'><span style='color:#555570'>BLUSH RESPONSE</span><span id='e2' style='color:#ff6a00'></span></div>",
          "      </div>",
          "      <div id='result' class='mt-6 text-lg font-bold tracking-wider text-center' style='font-family:monospace;color:#e76f51;opacity:0'>RESULT: INCONCLUSIVE</div>",
          "    </div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "var bg=document.getElementById('bg-layer');[[0,15,30],[18,12,50],[35,10,25],[50,14,55],[68,10,35],[82,15,45]].forEach(function(b,i){var d=document.createElement('div');d.style.cssText='position:absolute;bottom:0;left:'+b[0]+'%;width:'+b[1]+'%;height:'+b[2]+'%;background:rgba(15,15,30,0.5)';bg.appendChild(d);});",
          "var rain=document.getElementById('rain');for(var i=0;i<30;i++){var d=document.createElement('div');d.style.cssText='position:absolute;top:-'+(Math.abs(Math.sin(i*127))*10+15)+'px;left:'+(Math.sin(i*311.7)*50+50)+'%;width:1px;height:'+(Math.abs(Math.sin(i*127))*10+15)+'px;background:linear-gradient(180deg,transparent,#00b4d8);opacity:'+(Math.abs(Math.sin(i*43))*0.08+0.05);d.id='drop'+i;rain.appendChild(d);}",
          "const animation = new MulmoAnimation();",
          "for(var k=0;k<30;k++){animation.animate('#drop'+k,{translateY:[0,800]},{start:(Math.sin(k*43.7)*0.5+0.5)*1.5,end:'auto'});}",
          "animation.animate('#label', { opacity: [0, 1] }, { start: 0, end: 0.3 });",
          "animation.typewriter('#q', 'Describe in single words only the good things that come into your mind about your mother.', { start: 0.3, end: 2.5 });",
          "animation.blink('#cur', { interval: 0.35 });",
          "animation.stagger('#r{i}', 3, { opacity: [0, 1] }, { start: 2.8, stagger: 0.3, duration: 0.2 });",
          "animation.counter('#e0', [0, 0.73], { start: 3.0, end: 3.8, decimals: 2 });",
          "animation.counter('#e1', [0, 2.4], { start: 3.3, end: 4.0, decimals: 1, suffix: 'mm' });",
          "animation.counter('#e2', [0, 0.12], { start: 3.6, end: 4.2, decimals: 2 });",
          "animation.animate('#result', { opacity: [0, 1] }, { start: 4.3, end: 4.6 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Theme thirteen. Total Recall — is it real, or is it Rekall?",
      "speaker": "Presenter",
      "duration": 3,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full relative overflow-hidden' style='background:linear-gradient(180deg,#1a0800,#331000 40%,#442200 70%,#331005)'>",
          "  <div id='mars' class='absolute bottom-0 left-0 right-0' style='height:30%'></div>",
          "  <div class='h-full flex items-center justify-center relative'>",
          "    <div id='title' class='text-6xl font-bold tracking-wider' style='font-family:\"Arial Black\",Impact,sans-serif;color:#ff4444;opacity:0;text-shadow:0 0 30px rgba(255,68,68,0.3)'>TOTAL RECALL</div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "var mars=document.getElementById('mars');[[8,12],[22,8],[40,15],[65,10],[80,6]].forEach(function(d,i){var dome=document.createElement('div');dome.style.cssText='position:absolute;bottom:0;left:'+d[0]+'%;width:'+d[1]+'%;height:'+(d[1]*0.6)+'%;background:rgba(50,20,10,0.5);border-radius:50% 50% 0 0;border-top:1px solid rgba(255,68,68,0.1)';mars.appendChild(dome);});",
          "const animation = new MulmoAnimation();",
          "animation.animate('#title', { opacity: [0, 1] }, { start: 0.5, end: 1.5 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Rekall memory implant initializing. The progress bar fills as memories are uploaded, with glitch bands flickering across the screen.",
      "speaker": "Presenter",
      "duration": 5,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full relative overflow-hidden' style='background:linear-gradient(180deg,#1a0800,#331000 40%,#442200 70%,#331005)'>",
          "  <div id='mars' class='absolute bottom-0 left-0 right-0' style='height:30%'></div>",
          "  <div id='brain' class='absolute' style='top:10%;left:30%;width:40%;height:45%;opacity:0'>",
          "    <div style='width:100%;height:100%;border:1px solid rgba(0,204,170,0.15);border-radius:45% 45% 40% 40%'></div>",
          "    <div style='position:absolute;top:15%;left:10%;width:80%;height:60%;border:1px dashed rgba(0,204,170,0.08);border-radius:40%'></div>",
          "    <div id='neurons'></div>",
          "  </div>",
          "  <div id='scanBeam' class='absolute' style='top:10%;left:30%;width:40%;height:1px;background:linear-gradient(90deg,transparent,#00ccaa,transparent);opacity:0'></div>",
          "  <div id='g1' class='absolute' style='top:25%;left:-5px;right:0;height:3px;background:#ff4444;opacity:0'></div>",
          "  <div class='h-full flex flex-col items-center justify-center relative' style='padding-top:40%'>",
          "    <div id='logo' class='text-sm tracking-[0.5em] mb-6' style='font-family:monospace;color:#ff4444;opacity:0'>R E K A L L   I N C.</div>",
          "    <div id='title' class='text-5xl font-bold tracking-wider' style='font-family:\"Arial Black\",Impact,sans-serif;color:#ff4444;opacity:0'>MEMORY IMPLANT</div>",
          "    <div class='mt-8 w-80'>",
          "      <div class='flex justify-between text-xs mb-2' style='font-family:monospace'><span id='status' style='color:#553333;opacity:0'>INITIALIZING...</span><span id='pct' style='color:#ff4444'></span></div>",
          "      <div style='background:#330000;height:8px;border-radius:4px'><div id='bar' style='background:linear-gradient(90deg,#ff4444,#00ccaa);height:100%;border-radius:4px;width:0'></div></div>",
          "    </div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "var mars=document.getElementById('mars');[[8,12],[22,8],[40,15],[65,10],[80,6]].forEach(function(d,i){var dome=document.createElement('div');dome.style.cssText='position:absolute;bottom:0;left:'+d[0]+'%;width:'+d[1]+'%;height:'+(d[1]*0.6)+'%;background:rgba(50,20,10,0.5);border-radius:50% 50% 0 0;border-top:1px solid rgba(255,68,68,0.1)';mars.appendChild(dome);});",
          "var neurons=document.getElementById('neurons');for(var i=0;i<25;i++){var n=document.createElement('div');n.style.cssText='position:absolute;width:4px;height:4px;border-radius:50%;background:#00ccaa;opacity:0;left:'+(Math.abs(Math.sin(i*41.7))*80+10)+'%;top:'+(Math.abs(Math.sin(i*67.3))*80+10)+'%';n.id='n'+i;neurons.appendChild(n);}",
          "const animation = new MulmoAnimation();",
          "animation.animate('#brain', { opacity: [0, 1] }, { start: 0, end: 0.8 });",
          "animation.stagger('#n{i}', 25, { opacity: [0, 0.6] }, { start: 0.3, stagger: 0.05, duration: 0.1 });",
          "animation.animate('#scanBeam', { opacity: [0, 0.4], translateY: [0, 320] }, { start: 0.2, end: 1.5 });",
          "animation.animate('#logo', { opacity: [0, 1] }, { start: 0.8, end: 1.1 });",
          "animation.animate('#title', { opacity: [0, 1], scale: [1.05, 1] }, { start: 1.0, end: 1.5, easing: 'easeOut' });",
          "animation.animate('#status', { opacity: [0, 1] }, { start: 1.5, end: 1.7 });",
          "animation.counter('#pct', [0, 100], { start: 1.5, end: 3.8, suffix: '%', decimals: 0 });",
          "animation.animate('#bar', { width: [0, 100, '%'] }, { start: 1.5, end: 3.8, easing: 'easeInOut' });",
          "animation.animate('#g1', { opacity: [0, 0.6] }, { start: 2.5, end: 2.6 });",
          "animation.animate('#g1', { opacity: [0.6, 0] }, { start: 2.6, end: 2.8 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Split reality. Real memories on the left, implanted memories on the right. A question mark hangs between them.",
      "speaker": "Presenter",
      "duration": 5,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full relative overflow-hidden' style='background:linear-gradient(180deg,#1a0800,#331000 40%,#442200 70%,#331005)'>",
          "  <div id='mars' class='absolute bottom-0 left-0 right-0' style='height:30%'></div>",
          "  <div class='absolute inset-0' style='background:rgba(13,0,0,0.5)'></div>",
          "  <div class='h-full flex relative'>",
          "    <div id='left' class='flex-1 flex flex-col justify-center px-12' style='border-right:2px solid #553333;opacity:0'>",
          "      <div class='text-xs tracking-[0.3em] mb-4' style='font-family:monospace;color:#00ccaa'>MEMORY — REAL</div>",
          "      <div class='text-3xl font-bold mb-4' style='font-family:\"Arial Black\",sans-serif;color:#00ccaa'>Earth</div>",
          "      <div class='text-sm leading-relaxed' style='font-family:monospace;color:#558888'>Original memories verified.</div>",
          "    </div>",
          "    <div id='right' class='flex-1 flex flex-col justify-center px-12' style='opacity:0'>",
          "      <div class='text-xs tracking-[0.3em] mb-4' style='font-family:monospace;color:#ff4444'>MEMORY — IMPLANTED</div>",
          "      <div class='text-3xl font-bold mb-4' style='font-family:\"Arial Black\",sans-serif;color:#ff4444'>Mars</div>",
          "      <div class='text-sm leading-relaxed' style='font-family:monospace;color:#885555'>Synthetic memory detected. Rekall Inc.</div>",
          "    </div>",
          "  </div>",
          "  <div id='divider' class='absolute' style='top:50%;left:50%;transform:translate(-50%,-50%);font-family:monospace;color:white;font-size:28px;opacity:0;text-shadow:0 0 20px rgba(255,255,255,0.5)'>?</div>",
          "  <div id='g1' class='absolute' style='top:40%;left:0;right:0;height:3px;background:#ffffff;opacity:0'></div>",
          "</div>"
        ],
        "script": [
          "var mars=document.getElementById('mars');[[8,12],[22,8],[40,15],[65,10],[80,6]].forEach(function(d,i){var dome=document.createElement('div');dome.style.cssText='position:absolute;bottom:0;left:'+d[0]+'%;width:'+d[1]+'%;height:'+(d[1]*0.6)+'%;background:rgba(50,20,10,0.5);border-radius:50% 50% 0 0;border-top:1px solid rgba(255,68,68,0.1)';mars.appendChild(dome);});",
          "const animation = new MulmoAnimation();",
          "animation.animate('#left', { opacity: [0, 1], translateX: [-20, 0] }, { start: 0.3, end: 1.0, easing: 'easeOut' });",
          "animation.animate('#right', { opacity: [0, 1], translateX: [20, 0] }, { start: 0.8, end: 1.5, easing: 'easeOut' });",
          "animation.animate('#divider', { opacity: [0, 1], scale: [2, 1] }, { start: 1.5, end: 2.0, easing: 'easeOut' });",
          "animation.animate('#g1', { opacity: [0, 0.5] }, { start: 2.5, end: 2.6 });",
          "animation.animate('#g1', { opacity: [0.5, 0] }, { start: 2.6, end: 2.8 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Theme fourteen. Iron Man JARVIS — sleek holographic intelligence.",
      "speaker": "Presenter",
      "duration": 3,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full relative overflow-hidden' style='background:#0a0e1a'>",
          "  <div id='hex-grid' class='absolute inset-0'></div>",
          "  <div class='absolute inset-0 flex items-center justify-center'>",
          "    <div style='width:300px;height:300px;border:1px solid rgba(79,195,247,0.08);border-radius:50%'></div>",
          "  </div>",
          "  <div class='h-full flex items-center justify-center relative'>",
          "    <div id='title' class='text-6xl font-bold tracking-wider' style='font-family:\"Helvetica Neue\",Arial,sans-serif;color:#4fc3f7;opacity:0;text-shadow:0 0 30px rgba(79,195,247,0.3)'>IRON MAN JARVIS</div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "var grid=document.getElementById('hex-grid');for(var r=0;r<8;r++){for(var c=0;c<14;c++){var h=document.createElement('div');var x=c*100+(r%2)*50-50;var y=r*87-50;h.style.cssText='position:absolute;left:'+x+'px;top:'+y+'px;width:55px;height:55px;border:1px solid rgba(79,195,247,0.04);clip-path:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%)';grid.appendChild(h);}}",
          "const animation = new MulmoAnimation();",
          "animation.animate('#title', { opacity: [0, 1] }, { start: 0.5, end: 1.5 });"
        ],
        "animation": true
      }
    },
    {
      "text": "Arc reactor activation. The core ignites, rings expand outward, and JARVIS comes online.",
      "speaker": "Presenter",
      "duration": 5,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full relative overflow-hidden' style='background:#0a0e1a'>",
          "  <div id='hex-grid' class='absolute inset-0'></div>",
          "  <div class='absolute inset-0 flex items-center justify-center'>",
          "    <div id='glow' style='width:0;height:0;border-radius:50%;background:radial-gradient(circle,rgba(79,195,247,0.15),transparent);opacity:0'></div>",
          "  </div>",
          "  <div class='absolute inset-0 flex items-center justify-center'>",
          "    <div id='ring1' style='width:0;height:0;border:1px solid rgba(79,195,247,0.15);border-radius:50%;opacity:0'></div>",
          "  </div>",
          "  <div class='absolute inset-0 flex items-center justify-center'>",
          "    <div id='core' style='width:0;height:0;background:#4fc3f7;border-radius:50%;box-shadow:0 0 20px #4fc3f7,0 0 40px rgba(79,195,247,0.3);opacity:0'></div>",
          "  </div>",
          "  <div style='perspective:1200px;transform-style:preserve-3d;position:absolute;inset:0'>",
          "    <div id='panelL' class='absolute' style='top:10%;left:3%;width:28%;height:35%;background:rgba(79,195,247,0.04);border:1px solid rgba(79,195,247,0.12);transform:rotateY(12deg) rotateX(-3deg);padding:15px;opacity:0'>",
          "      <div class='text-xs tracking-widest mb-3' style='font-family:monospace;color:#81d4fa'>SYSTEM STATUS</div>",
          "      <div id='s0' class='text-xs mb-2' style='font-family:monospace;color:#4fc3f7;opacity:0'>▸ JARVIS v7.2 — Online</div>",
          "      <div id='s1' class='text-xs mb-2' style='font-family:monospace;color:#1a3a5c;opacity:0'>▸ Arc Reactor: 100%</div>",
          "      <div id='s2' class='text-xs' style='font-family:monospace;color:#1a3a5c;opacity:0'>▸ All systems nominal</div>",
          "    </div>",
          "    <div id='panelR' class='absolute' style='top:12%;right:3%;width:26%;height:30%;background:rgba(79,195,247,0.04);border:1px solid rgba(79,195,247,0.12);transform:rotateY(-10deg) rotateX(2deg);padding:15px;opacity:0'>",
          "      <div class='text-xs tracking-widest mb-3' style='font-family:monospace;color:#81d4fa'>DIAGNOSTICS</div>",
          "      <div id='d0' class='text-xs mb-2' style='font-family:monospace;color:#4fc3f7;opacity:0'>▸ Thrusters: 98%</div>",
          "      <div id='d1' class='text-xs mb-2' style='font-family:monospace;color:#ff9800;opacity:0'>▸ Weapons: 85%</div>",
          "      <div id='d2' class='text-xs' style='font-family:monospace;color:#4fc3f7;opacity:0'>▸ Shields: Online</div>",
          "    </div>",
          "  </div>",
          "  <div class='h-full flex flex-col items-center justify-center relative'>",
          "    <div id='greeting' class='text-2xl tracking-wider' style='font-family:\"Helvetica Neue\",Arial,sans-serif;color:#81d4fa;opacity:0'>Good evening, sir.</div>",
          "    <div id='mainTitle' class='text-5xl font-bold mt-4 tracking-wider' style='font-family:\"Helvetica Neue\",Arial,sans-serif;color:#4fc3f7;opacity:0;text-shadow:0 0 30px rgba(79,195,247,0.3)'>JARVIS ONLINE</div>",
          "  </div>",
          "</div>"
        ],
        "script": [
          "var grid=document.getElementById('hex-grid');for(var r=0;r<8;r++){for(var c=0;c<14;c++){var h=document.createElement('div');var x=c*100+(r%2)*50-50;var y=r*87-50;h.style.cssText='position:absolute;left:'+x+'px;top:'+y+'px;width:55px;height:55px;border:1px solid rgba(79,195,247,0.04);clip-path:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%)';grid.appendChild(h);}}",
          "const animation = new MulmoAnimation();",
          "animation.animate('#glow', { opacity: [0, 0.4], width: [0, 500, 'px'], height: [0, 500, 'px'] }, { start: 0, end: 1.5, easing: 'easeOut' });",
          "animation.animate('#core', { opacity: [0, 1], width: [0, 12, 'px'], height: [0, 12, 'px'] }, { start: 0, end: 0.5, easing: 'easeOut' });",
          "animation.animate('#ring1', { opacity: [0, 0.2], width: [0, 400, 'px'], height: [0, 400, 'px'] }, { start: 0.4, end: 1.5, easing: 'easeOut' });",
          "animation.animate('#panelL', { opacity: [0, 1], translateX: [-30, 0] }, { start: 0.8, end: 1.3, easing: 'easeOut' });",
          "animation.animate('#panelR', { opacity: [0, 1], translateX: [30, 0] }, { start: 1.0, end: 1.5, easing: 'easeOut' });",
          "animation.stagger('#s{i}', 3, { opacity: [0, 1] }, { start: 1.2, stagger: 0.2, duration: 0.15 });",
          "animation.stagger('#d{i}', 3, { opacity: [0, 1] }, { start: 1.5, stagger: 0.2, duration: 0.15 });",
          "animation.animate('#greeting', { opacity: [0, 1] }, { start: 1.8, end: 2.3 });",
          "animation.animate('#mainTitle', { opacity: [0, 1], scale: [1.1, 1] }, { start: 2.3, end: 3.0, easing: 'easeOut' });"
        ],
        "animation": true
      }
    },
    {
      "text": "Holographic dashboard. Three system panels rise into view with counters and progress bars filling in blue.",
      "speaker": "Presenter",
      "duration": 5,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full relative overflow-hidden' style='background:#0a0e1a'>",
          "  <div id='hex-grid' class='absolute inset-0'></div>",
          "  <div class='absolute inset-0 flex items-center justify-center'>",
          "    <div style='width:500px;height:500px;border:1px solid rgba(79,195,247,0.04);border-radius:50%'></div>",
          "  </div>",
          "  <div style='perspective:1200px;transform-style:preserve-3d;position:absolute;inset:0'>",
          "    <div id='p0' class='absolute' style='top:8%;left:2%;width:30%;height:38%;background:rgba(79,195,247,0.04);border:1px solid rgba(79,195,247,0.15);transform:rotateY(10deg);padding:18px;opacity:0'>",
          "      <div class='text-xs tracking-widest mb-3' style='font-family:monospace;color:#81d4fa'>ARC REACTOR</div>",
          "      <div id='n0' class='text-4xl font-bold' style='font-family:\"Helvetica Neue\",sans-serif;color:white'></div>",
          "      <div style='background:rgba(79,195,247,0.1);height:4px;border-radius:2px;margin-top:10px'><div id='b0' style='background:#4fc3f7;height:100%;border-radius:2px;width:0'></div></div>",
          "    </div>",
          "    <div id='p1' class='absolute' style='top:10%;left:35%;width:28%;height:33%;background:rgba(79,195,247,0.04);border:1px solid rgba(79,195,247,0.15);transform:rotateX(-3deg);padding:18px;opacity:0'>",
          "      <div class='text-xs tracking-widest mb-3' style='font-family:monospace;color:#81d4fa'>THRUSTERS</div>",
          "      <div id='n1' class='text-4xl font-bold' style='font-family:\"Helvetica Neue\",sans-serif;color:white'></div>",
          "      <div style='background:rgba(79,195,247,0.1);height:4px;border-radius:2px;margin-top:10px'><div id='b1' style='background:#4fc3f7;height:100%;border-radius:2px;width:0'></div></div>",
          "    </div>",
          "    <div id='p2' class='absolute' style='top:8%;right:2%;width:28%;height:36%;background:rgba(255,152,0,0.04);border:1px solid rgba(255,152,0,0.2);transform:rotateY(-10deg);padding:18px;opacity:0'>",
          "      <div class='text-xs tracking-widest mb-3' style='font-family:monospace;color:#ff9800'>WEAPONS</div>",
          "      <div id='n2' class='text-4xl font-bold' style='font-family:\"Helvetica Neue\",sans-serif;color:#ff9800'></div>",
          "      <div style='background:rgba(255,152,0,0.1);height:4px;border-radius:2px;margin-top:10px'><div id='b2' style='background:#ff9800;height:100%;border-radius:2px;width:0'></div></div>",
          "    </div>",
          "  </div>",
          "  <div id='ai' class='absolute bottom-6 left-0 right-0 text-center text-sm' style='font-family:monospace;color:#81d4fa;opacity:0'>\"All systems functioning within normal parameters, sir.\"</div>",
          "</div>"
        ],
        "script": [
          "var grid=document.getElementById('hex-grid');for(var r=0;r<8;r++){for(var c=0;c<14;c++){var h=document.createElement('div');var x=c*100+(r%2)*50-50;var y=r*87-50;h.style.cssText='position:absolute;left:'+x+'px;top:'+y+'px;width:55px;height:55px;border:1px solid rgba(79,195,247,0.04);clip-path:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%)';grid.appendChild(h);}}",
          "const animation = new MulmoAnimation();",
          "animation.stagger('#p{i}', 3, { opacity: [0, 1], translateY: [15, 0] }, { start: 0.2, stagger: 0.3, duration: 0.3, easing: 'easeOut' });",
          "animation.counter('#n0', [0, 100], { start: 0.4, end: 2.5, suffix: '%', decimals: 0 });",
          "animation.animate('#b0', { width: [0, 100, '%'] }, { start: 0.4, end: 2.5, easing: 'easeOut' });",
          "animation.counter('#n1', [0, 98], { start: 0.7, end: 2.5, suffix: '%', decimals: 0 });",
          "animation.animate('#b1', { width: [0, 98, '%'] }, { start: 0.7, end: 2.5, easing: 'easeOut' });",
          "animation.counter('#n2', [0, 85], { start: 1.0, end: 2.5, suffix: '%', decimals: 0 });",
          "animation.animate('#b2', { width: [0, 85, '%'] }, { start: 1.0, end: 2.5, easing: 'easeOut' });",
          "animation.animate('#ai', { opacity: [0, 1] }, { start: 3.5, end: 4.0 });"
        ],
        "animation": true
      }
    },
    {
      "text": "That's all fourteen cinematic themes. From Star Wars to JARVIS, every pattern is available as a recipe in cinematic patterns dot M-D. Go make something cinematic.",
      "speaker": "Presenter",
      "duration": 5,
      "image": {
        "type": "html_tailwind",
        "html": [
          "<div class='h-full w-full bg-black flex flex-col items-center justify-center'>",
          "  <div id='title' class='text-5xl font-bold tracking-wider text-center' style='font-family:\"Helvetica Neue\",Arial,sans-serif;color:#4fc3f7;opacity:0;text-shadow:0 0 30px rgba(79,195,247,0.3)'>14 THEMES</div>",
          "  <div id='sub' class='text-xl mt-4 tracking-[0.3em]' style='font-family:monospace;color:#81d4fa;opacity:0'>GO MAKE SOMETHING CINEMATIC</div>",
          "  <div id='line' class='mt-6 h-px' style='background:linear-gradient(90deg,transparent,#4fc3f7,transparent);opacity:0;width:0'></div>",
          "</div>"
        ],
        "script": [
          "const animation = new MulmoAnimation();",
          "animation.animate('#title', { opacity: [0, 1], scale: [1.2, 1] }, { start: 0.3, end: 1.5, easing: 'easeOut' });",
          "animation.animate('#sub', { opacity: [0, 1] }, { start: 1.5, end: 2.2 });",
          "animation.animate('#line', { opacity: [0, 0.6], width: [0, 500, 'px'] }, { start: 2.0, end: 3.0, easing: 'easeOut' });"
        ],
        "animation": true
      }
    }
  ]
}
