Generate a animated video showing sites of compression of radial nerve and it's result

Reading File
Finding Sources
Finding Sources
Reading File
Reading File
Loading Image
Searching Images

radial nerve compression sites anatomy arm wrist drop

Running Command

mkdir -p /home/daytona/workspace/radial-nerve-animation && ls /home/daytona/workspace/radial-nerve-animation/

Writing File

~/radial-nerve-animation/index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Radial Nerve Compression Sites – Animated Guide</title>
<style>
  @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700&display=swap');

  * { margin: 0; padding: 0; box-sizing: border-box; }

  body {
    background: #0a0e1a;
    font-family: 'Inter', sans-serif;
    color: #e8f0fe;
    overflow-x: hidden;
  }

  /* ── Title Screen ── */
  #title-screen {
    position: fixed; inset: 0;
    background: linear-gradient(135deg, #0a0e1a 0%, #0d1b35 60%, #0a2040 100%);
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    z-index: 100;
    transition: opacity 0.8s ease;
  }
  #title-screen h1 {
    font-size: clamp(1.8rem, 4vw, 3.2rem);
    font-weight: 700;
    text-align: center;
    background: linear-gradient(90deg, #64b5f6, #42e5b5, #64b5f6);
    background-size: 200%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: shimmer 3s infinite;
    padding: 0 1rem;
  }
  #title-screen p {
    margin-top: 1rem;
    color: #90caf9;
    font-size: 1.1rem;
    text-align: center;
  }
  #start-btn {
    margin-top: 2.5rem;
    padding: 0.9rem 2.5rem;
    border: none; border-radius: 50px;
    background: linear-gradient(135deg, #1565c0, #0097a7);
    color: #fff;
    font-size: 1.1rem; font-weight: 600;
    cursor: pointer;
    box-shadow: 0 0 30px rgba(100,181,246,0.4);
    transition: transform 0.2s, box-shadow 0.2s;
  }
  #start-btn:hover { transform: scale(1.07); box-shadow: 0 0 45px rgba(100,181,246,0.6); }

  @keyframes shimmer {
    0%   { background-position: 0% 50%; }
    50%  { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
  }

  /* ── Main Layout ── */
  #app { display: none; min-height: 100vh; }

  /* ── Progress Bar ── */
  #progress-container {
    position: sticky; top: 0; z-index: 50;
    background: rgba(10,14,26,0.95);
    border-bottom: 1px solid #1a2744;
    padding: 0.6rem 2rem;
    display: flex; align-items: center; gap: 1rem;
  }
  #progress-bar {
    flex: 1; height: 6px;
    background: #1a2744; border-radius: 3px;
    overflow: hidden;
  }
  #progress-fill {
    height: 100%;
    background: linear-gradient(90deg, #1565c0, #42e5b5);
    border-radius: 3px;
    transition: width 0.6s ease;
    width: 0%;
  }
  #progress-label { color: #64b5f6; font-size: 0.85rem; white-space: nowrap; }

  /* ── Scene Container ── */
  #scene-container { padding: 2rem 1rem 4rem; }

  .scene {
    display: none;
    max-width: 1100px;
    margin: 0 auto;
    animation: fadeSlideIn 0.7s ease forwards;
  }
  .scene.active { display: block; }
  @keyframes fadeSlideIn {
    from { opacity: 0; transform: translateY(30px); }
    to   { opacity: 1; transform: translateY(0); }
  }

  /* ── Scene Header ── */
  .scene-header {
    text-align: center;
    margin-bottom: 2rem;
  }
  .scene-number {
    display: inline-block;
    background: linear-gradient(135deg, #1565c0, #0097a7);
    padding: 0.3rem 1rem;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: 0.8rem;
  }
  .scene-title {
    font-size: clamp(1.4rem, 3vw, 2.2rem);
    font-weight: 700;
    color: #e3f2fd;
  }
  .scene-title span { color: #42e5b5; }

  /* ── Cards Grid ── */
  .cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1.5rem;
    margin-bottom: 2rem;
  }

  /* ── Info Card ── */
  .info-card {
    background: linear-gradient(145deg, #0d1b35, #122040);
    border: 1px solid #1e3a6e;
    border-radius: 16px;
    padding: 1.5rem;
    position: relative;
    overflow: hidden;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease, transform 0.5s ease, box-shadow 0.3s;
  }
  .info-card.revealed {
    opacity: 1; transform: translateY(0);
  }
  .info-card:hover {
    box-shadow: 0 8px 30px rgba(100,181,246,0.15);
    border-color: #42e5b5;
  }
  .info-card::before {
    content: '';
    position: absolute; top: 0; left: 0;
    width: 100%; height: 3px;
    background: var(--accent, linear-gradient(90deg,#1565c0,#42e5b5));
  }

  .card-icon {
    font-size: 2.2rem;
    margin-bottom: 0.7rem;
  }
  .card-label {
    font-size: 0.72rem; font-weight: 600;
    letter-spacing: 1.5px; text-transform: uppercase;
    color: #90caf9; margin-bottom: 0.4rem;
  }
  .card-heading {
    font-size: 1.15rem; font-weight: 700;
    color: #e3f2fd; margin-bottom: 0.8rem;
  }
  .card-body {
    font-size: 0.92rem; line-height: 1.7;
    color: #b0c8e8;
  }
  .card-body strong { color: #42e5b5; }

  .tag-list {
    display: flex; flex-wrap: wrap; gap: 0.4rem;
    margin-top: 0.8rem;
  }
  .tag {
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.78rem; font-weight: 600;
    border: 1px solid;
  }
  .tag.red   { color: #ef9a9a; border-color: #c62828; background: rgba(198,40,40,0.12); }
  .tag.amber { color: #ffcc80; border-color: #e65100; background: rgba(230,81,0,0.12); }
  .tag.teal  { color: #80cbc4; border-color: #00695c; background: rgba(0,105,92,0.12); }
  .tag.blue  { color: #90caf9; border-color: #1565c0; background: rgba(21,101,192,0.12); }

  /* ── SVG Anatomy Diagram ── */
  .svg-container {
    background: linear-gradient(145deg, #0d1b35, #0a1525);
    border: 1px solid #1e3a6e;
    border-radius: 16px;
    padding: 1.5rem;
    margin-bottom: 2rem;
    text-align: center;
  }
  .svg-container h3 {
    font-size: 1rem; font-weight: 600;
    color: #90caf9; margin-bottom: 1rem;
    text-transform: uppercase; letter-spacing: 1px;
  }

  /* ── Nerve path SVG ── */
  .nerve-path {
    stroke-dasharray: 2000;
    stroke-dashoffset: 2000;
    animation: drawNerve 3s ease forwards;
  }
  @keyframes drawNerve {
    to { stroke-dashoffset: 0; }
  }
  .pulse-dot {
    animation: pulseDot 1.5s ease-in-out infinite;
  }
  @keyframes pulseDot {
    0%, 100% { r: 6; opacity: 1; }
    50%       { r: 10; opacity: 0.5; }
  }

  /* ── Summary Table ── */
  .summary-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
  }
  .summary-table th {
    background: #122040;
    color: #42e5b5;
    padding: 0.75rem 1rem;
    text-align: left;
    border-bottom: 2px solid #1e3a6e;
  }
  .summary-table td {
    padding: 0.7rem 1rem;
    border-bottom: 1px solid #1a2744;
    color: #b0c8e8;
    vertical-align: top;
  }
  .summary-table tr:hover td { background: rgba(21,101,192,0.08); }

  /* ── Nav Buttons ── */
  .nav-row {
    display: flex; justify-content: center; gap: 1rem;
    margin-top: 2.5rem; padding-bottom: 1rem;
    flex-wrap: wrap;
  }
  .btn {
    padding: 0.75rem 2rem;
    border-radius: 50px; border: none;
    font-size: 1rem; font-weight: 600;
    cursor: pointer;
    transition: transform 0.2s, box-shadow 0.2s;
  }
  .btn-primary {
    background: linear-gradient(135deg, #1565c0, #0097a7);
    color: #fff;
    box-shadow: 0 4px 20px rgba(100,181,246,0.3);
  }
  .btn-secondary {
    background: #122040; color: #90caf9;
    border: 1px solid #1e3a6e;
  }
  .btn:hover { transform: scale(1.05); }
  .btn:disabled { opacity: 0.3; cursor: default; transform: none; }

  /* ── Wrist Drop Illustration ── */
  .wrist-drop-demo {
    display: flex; gap: 1.5rem; flex-wrap: wrap;
    justify-content: center; margin: 1.5rem 0;
  }
  .hand-card {
    background: linear-gradient(145deg, #0d1b35, #122040);
    border: 1px solid #1e3a6e;
    border-radius: 14px;
    padding: 1.2rem 1.5rem;
    text-align: center;
    min-width: 200px;
  }
  .hand-card h4 { font-size: 0.85rem; color: #90caf9; margin-bottom: 0.5rem; }
  .hand-svg-wrap { display: flex; justify-content: center; align-items: center; }

  /* ── Floating Nerve Particles ── */
  #particles { position: fixed; inset: 0; pointer-events: none; z-index: 1; overflow: hidden; }
  .particle {
    position: absolute;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(100,181,246,0.6), transparent);
    animation: floatParticle linear infinite;
  }
  @keyframes floatParticle {
    0%   { transform: translateY(100vh) scale(0); opacity: 0; }
    10%  { opacity: 1; }
    90%  { opacity: 0.3; }
    100% { transform: translateY(-10vh) scale(1); opacity: 0; }
  }

  /* ── Scene 0: Overview ── */
  .overview-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
    margin-bottom: 2rem;
  }
  .overview-step {
    background: linear-gradient(145deg, #0d1b35, #122040);
    border: 1px solid #1e3a6e;
    border-radius: 14px;
    padding: 1.2rem;
    display: flex; gap: 1rem; align-items: flex-start;
    opacity: 0; transform: translateX(-20px);
    transition: opacity 0.5s ease, transform 0.5s ease;
  }
  .overview-step.revealed { opacity: 1; transform: translateX(0); }
  .overview-step .step-num {
    font-size: 2rem; font-weight: 700;
    color: #42e5b5; line-height: 1;
    flex-shrink: 0;
  }
  .overview-step h4 { font-size: 1rem; color: #e3f2fd; margin-bottom: 0.3rem; }
  .overview-step p  { font-size: 0.85rem; color: #90caf9; line-height: 1.5; }

  /* ── Responsive ── */
  @media (max-width: 600px) {
    #progress-container { padding: 0.6rem 1rem; }
    .scene-header { margin-bottom: 1.2rem; }
  }
</style>
</head>
<body>

<!-- Floating particles -->
<div id="particles"></div>

<!-- Title Screen -->
<div id="title-screen">
  <div style="font-size:3.5rem;margin-bottom:1rem;">🧠</div>
  <h1>Radial Nerve Compression</h1>
  <p>Sites of Compression &amp; Clinical Consequences</p>
  <button id="start-btn" onclick="startAnimation()">β–Ά Begin Animation</button>
  <p style="margin-top:1.5rem;font-size:0.8rem;color:#546e7a;">Based on THIEME Atlas of Anatomy Β· Miller's Orthopaedics Β· Gray's Anatomy</p>
</div>

<!-- Main App -->
<div id="app">

  <!-- Progress -->
  <div id="progress-container">
    <div id="progress-bar"><div id="progress-fill"></div></div>
    <span id="progress-label">Scene 1 / 7</span>
  </div>

  <div id="scene-container">

    <!-- ══════════════════════════════════════
         SCENE 0 – Course Overview
    ══════════════════════════════════════ -->
    <div class="scene active" id="scene-0">
      <div class="scene-header">
        <div class="scene-number">Scene 1 of 7</div>
        <div class="scene-title">Radial Nerve β€” <span>Course Overview</span></div>
      </div>

      <!-- Animated anatomy SVG -->
      <div class="svg-container">
        <h3>Radial Nerve Course &amp; Key Landmark Sites</h3>
        <svg viewBox="0 0 500 720" width="100%" style="max-width:420px;" xmlns="http://www.w3.org/2000/svg">
          <!-- Arm silhouette -->
          <defs>
            <linearGradient id="armGrad" x1="0" y1="0" x2="1" y2="0">
              <stop offset="0%" stop-color="#1a2744"/>
              <stop offset="100%" stop-color="#0d1b35"/>
            </linearGradient>
            <linearGradient id="nerveGrad" x1="0" y1="0" x2="0" y2="1">
              <stop offset="0%" stop-color="#f9a825"/>
              <stop offset="50%" stop-color="#42e5b5"/>
              <stop offset="100%" stop-color="#64b5f6"/>
            </linearGradient>
            <filter id="glow">
              <feGaussianBlur stdDeviation="3" result="blur"/>
              <feComposite in="SourceGraphic" in2="blur" operator="over"/>
            </filter>
          </defs>

          <!-- Shoulder + arm outline -->
          <ellipse cx="250" cy="70" rx="90" ry="60" fill="url(#armGrad)" stroke="#1e3a6e" stroke-width="1.5"/>
          <rect x="180" y="110" width="140" height="300" rx="70" fill="url(#armGrad)" stroke="#1e3a6e" stroke-width="1.5"/>
          <!-- Forearm -->
          <rect x="190" y="400" width="120" height="220" rx="55" fill="url(#armGrad)" stroke="#1e3a6e" stroke-width="1.5"/>
          <!-- Hand -->
          <ellipse cx="250" cy="640" rx="60" ry="35" fill="url(#armGrad)" stroke="#1e3a6e" stroke-width="1.5"/>
          <!-- Fingers suggestion -->
          <rect x="208" y="660" width="12" height="40" rx="6" fill="#122040" stroke="#1e3a6e" stroke-width="1"/>
          <rect x="225" y="660" width="12" height="48" rx="6" fill="#122040" stroke="#1e3a6e" stroke-width="1"/>
          <rect x="242" y="660" width="12" height="50" rx="6" fill="#122040" stroke="#1e3a6e" stroke-width="1"/>
          <rect x="259" y="660" width="12" height="44" rx="6" fill="#122040" stroke="#1e3a6e" stroke-width="1"/>
          <rect x="276" y="660" width="10" height="34" rx="5" fill="#122040" stroke="#1e3a6e" stroke-width="1"/>

          <!-- Radial Nerve path (animated) -->
          <path class="nerve-path" d="M250,60 C230,100 220,160 230,220 C240,280 260,300 255,340 C250,370 240,400 235,440 C230,475 235,510 240,540 C245,570 248,600 250,630"
            stroke="url(#nerveGrad)" stroke-width="5" fill="none" stroke-linecap="round" filter="url(#glow)"
            style="animation-delay:0.5s"/>

          <!-- Superficial branch split at elbow -->
          <path d="M240,440 C220,470 210,500 205,540" stroke="#64b5f6" stroke-width="3" fill="none"
            stroke-dasharray="6,4" opacity="0.8" stroke-linecap="round"
            style="stroke-dashoffset:400; animation: drawNerve 2s 2.5s ease forwards;"/>

          <!-- Site 1 – Axilla -->
          <circle class="pulse-dot" cx="250" cy="105" r="8" fill="#ef5350" opacity="0.9" style="animation-delay:1s"/>
          <text x="268" y="109" fill="#ef9a9a" font-size="12" font-weight="600">β‘  Axilla</text>

          <!-- Site 2 – Radial Groove / Spiral Canal -->
          <circle class="pulse-dot" cx="235" cy="220" r="8" fill="#ff7043" opacity="0.9" style="animation-delay:1.3s"/>
          <text x="253" y="224" fill="#ffab91" font-size="12" font-weight="600">β‘‘ Radial Groove</text>

          <!-- Site 3 – Lateral intermuscular septum -->
          <circle class="pulse-dot" cx="242" cy="335" r="8" fill="#ffd54f" opacity="0.9" style="animation-delay:1.6s"/>
          <text x="160" y="316" fill="#fff176" font-size="11" font-weight="600">β‘’ Lat. Intermuscular</text>
          <text x="168" y="329" fill="#fff176" font-size="11" font-weight="600">Septum</text>

          <!-- Site 4 – Arcade of Frohse -->
          <circle class="pulse-dot" cx="247" cy="440" r="8" fill="#66bb6a" opacity="0.9" style="animation-delay:1.9s"/>
          <text x="262" y="444" fill="#a5d6a7" font-size="12" font-weight="600">β‘£ Arcade of Frohse</text>

          <!-- Site 5 – Distal edge supinator -->
          <circle class="pulse-dot" cx="245" cy="510" r="8" fill="#29b6f6" opacity="0.9" style="animation-delay:2.2s"/>
          <text x="258" y="514" fill="#81d4fa" font-size="12" font-weight="600">β‘€ Supinator (distal)</text>

          <!-- Elbow marker -->
          <line x1="175" y1="400" x2="195" y2="400" stroke="#546e7a" stroke-width="1" stroke-dasharray="3,3"/>
          <text x="130" y="404" fill="#546e7a" font-size="10">Elbow</text>

          <!-- Wrist marker -->
          <line x1="175" y1="608" x2="195" y2="608" stroke="#546e7a" stroke-width="1" stroke-dasharray="3,3"/>
          <text x="130" y="612" fill="#546e7a" font-size="10">Wrist</text>
        </svg>
      </div>

      <!-- Overview steps -->
      <div class="overview-grid" id="overview-steps">
        <div class="overview-step">
          <div class="step-num">C5</div>
          <div>
            <h4>Origin</h4>
            <p>Posterior cord of brachial plexus (C5–T1). Largest branch of the posterior cord.</p>
          </div>
        </div>
        <div class="overview-step">
          <div class="step-num">πŸŒ€</div>
          <div>
            <h4>Radial Groove</h4>
            <p>Winds posteriorly around the humerus in the spiral canal between lateral &amp; medial heads of triceps.</p>
          </div>
        </div>
        <div class="overview-step">
          <div class="step-num">🦾</div>
          <div>
            <h4>Divides at Elbow</h4>
            <p>Splits into superficial (sensory) &amp; deep (PIN) branches anterior to lateral epicondyle.</p>
          </div>
        </div>
        <div class="overview-step">
          <div class="step-num">πŸ–οΈ</div>
          <div>
            <h4>Terminal</h4>
            <p>Superficial branch supplies dorsum of hand (1st web space). PIN terminates at dorsal wrist capsule.</p>
          </div>
        </div>
      </div>

      <div class="nav-row">
        <button class="btn btn-secondary" onclick="prevScene()" id="btn-prev" disabled>← Previous</button>
        <button class="btn btn-primary" onclick="nextScene()">Next Scene β†’</button>
      </div>
    </div>

    <!-- ══════════════════════════════════════
         SCENE 1 – Axilla
    ══════════════════════════════════════ -->
    <div class="scene" id="scene-1">
      <div class="scene-header">
        <div class="scene-number">Scene 2 of 7</div>
        <div class="scene-title">Site β‘  β€” <span>Axilla Compression</span></div>
      </div>

      <div class="cards-grid">
        <div class="info-card" style="--accent:linear-gradient(90deg,#c62828,#ef5350)">
          <div class="card-icon">πŸͺ–</div>
          <div class="card-label">Mechanism</div>
          <div class="card-heading">Crutch / Axillary Pressure</div>
          <div class="card-body">
            Prolonged pressure in the axilla β€” classically from <strong>crutch use ("crutch palsy")</strong> or the arm resting over the back of a chair. The radial nerve is compressed against the humerus before it gives off branches to triceps.
          </div>
          <div class="tag-list">
            <span class="tag red">Proximal Lesion</span>
            <span class="tag amber">Above Triceps Branches</span>
          </div>
        </div>

        <div class="info-card" style="--accent:linear-gradient(90deg,#b71c1c,#e53935)">
          <div class="card-icon">⚑</div>
          <div class="card-label">Clinical Result</div>
          <div class="card-heading">Complete Radial Palsy</div>
          <div class="card-body">
            <strong>Wrist drop</strong> (inability to extend wrist + MCP joints). <strong>Triceps weakness</strong> (elbow extension impaired) β€” because compression is above triceps branches.<br><br>
            Sensory loss over posterior arm, posterior forearm, and dorsal-lateral hand (1st web space).
          </div>
          <div class="tag-list">
            <span class="tag red">Wrist Drop</span>
            <span class="tag red">Triceps Weak</span>
            <span class="tag red">Full Sensory Loss</span>
          </div>
        </div>

        <div class="info-card" style="--accent:linear-gradient(90deg,#37474f,#546e7a)">
          <div class="card-icon">πŸ”</div>
          <div class="card-label">Key Point</div>
          <div class="card-heading">Differentiating Factor</div>
          <div class="card-body">
            Axillary compression is the only level where <strong>triceps is also affected</strong>. Testing elbow extension (against gravity) is therefore the key test to locate the lesion proximal to the spiral groove.
          </div>
        </div>
      </div>

      <!-- Mini hand SVG demo -->
      <div class="svg-container">
        <h3>Functional Deficit β€” Wrist Drop with Triceps Weakness</h3>
        <div class="wrist-drop-demo">
          <div class="hand-card">
            <h4>Normal Hand</h4>
            <div class="hand-svg-wrap">
              <svg viewBox="0 0 120 160" width="110">
                <!-- Normal wrist extended -->
                <rect x="40" y="100" width="40" height="50" rx="8" fill="#1e3a6e" stroke="#42e5b5" stroke-width="1.5"/>
                <rect x="38" y="70" width="15" height="38" rx="7" fill="#1e3a6e" stroke="#42e5b5" stroke-width="1.5"/>
                <rect x="57" y="62" width="15" height="44" rx="7" fill="#1e3a6e" stroke="#42e5b5" stroke-width="1.5"/>
                <rect x="76" y="65" width="14" height="40" rx="7" fill="#1e3a6e" stroke="#42e5b5" stroke-width="1.5"/>
                <rect x="94" y="72" width="12" height="34" rx="6" fill="#1e3a6e" stroke="#42e5b5" stroke-width="1.5"/>
                <!-- thumb -->
                <rect x="24" y="108" width="12" height="26" rx="6" transform="rotate(-30 30 108)" fill="#1e3a6e" stroke="#42e5b5" stroke-width="1.5"/>
                <!-- forearm -->
                <rect x="47" y="135" width="26" height="20" rx="4" fill="#122040" stroke="#1e3a6e" stroke-width="1"/>
                <text x="60" y="158" text-anchor="middle" fill="#42e5b5" font-size="9">Normal</text>
              </svg>
            </div>
          </div>

          <div style="display:flex;align-items:center;color:#ef5350;font-size:2rem;">β†’</div>

          <div class="hand-card" style="border-color:#c62828;">
            <h4>Axilla Lesion β€” Wrist Drop</h4>
            <div class="hand-svg-wrap">
              <svg viewBox="0 0 120 200" width="110">
                <!-- Drooped wrist/hand rotated down -->
                <g transform="rotate(35 60 120)">
                  <rect x="40" y="85" width="40" height="50" rx="8" fill="#1e3a6e" stroke="#ef5350" stroke-width="1.5"/>
                  <rect x="38" y="55" width="15" height="38" rx="7" fill="#1a2744" stroke="#ef9a9a" stroke-width="1.5" opacity="0.7"/>
                  <rect x="57" y="47" width="15" height="44" rx="7" fill="#1a2744" stroke="#ef9a9a" stroke-width="1.5" opacity="0.7"/>
                  <rect x="76" y="50" width="14" height="40" rx="7" fill="#1a2744" stroke="#ef9a9a" stroke-width="1.5" opacity="0.7"/>
                  <rect x="94" y="57" width="12" height="34" rx="6" fill="#1a2744" stroke="#ef9a9a" stroke-width="1.5" opacity="0.7"/>
                  <rect x="24" y="93" width="12" height="26" rx="6" transform="rotate(-30 30 93)" fill="#1a2744" stroke="#ef9a9a" stroke-width="1" opacity="0.7"/>
                  <rect x="47" y="120" width="26" height="20" rx="4" fill="#122040" stroke="#1e3a6e" stroke-width="1"/>
                </g>
                <text x="60" y="192" text-anchor="middle" fill="#ef9a9a" font-size="9">Wrist Drop βœ—</text>
              </svg>
            </div>
          </div>
        </div>
      </div>

      <div class="nav-row">
        <button class="btn btn-secondary" onclick="prevScene()">← Previous</button>
        <button class="btn btn-primary" onclick="nextScene()">Next Scene β†’</button>
      </div>
    </div>

    <!-- ══════════════════════════════════════
         SCENE 2 – Radial Groove / Spiral Canal
    ══════════════════════════════════════ -->
    <div class="scene" id="scene-2">
      <div class="scene-header">
        <div class="scene-number">Scene 3 of 7</div>
        <div class="scene-title">Site β‘‘ β€” <span>Radial Groove (Spiral Canal)</span></div>
      </div>

      <div class="cards-grid">
        <div class="info-card" style="--accent:linear-gradient(90deg,#e65100,#ff7043)">
          <div class="card-icon">🍺</div>
          <div class="card-label">Mechanism</div>
          <div class="card-heading">Saturday Night Palsy &amp; Fractures</div>
          <div class="card-body">
            Three classic causes compress the nerve against the <strong>bony floor of the radial groove</strong>:
            <ol style="padding-left:1.2rem;margin-top:0.5rem;line-height:2;">
              <li><strong>"Saturday night palsy"</strong> β€” arm draped over chair back while intoxicated</li>
              <li><strong>"Park bench palsy"</strong> β€” arm over park bench edge during sleep</li>
              <li><strong>Humeral shaft fracture</strong> β€” direct nerve injury at spiral groove</li>
            </ol>
          </div>
          <div class="tag-list">
            <span class="tag amber">Mid-Shaft Humerus</span>
            <span class="tag amber">Common Level</span>
          </div>
        </div>

        <div class="info-card" style="--accent:linear-gradient(90deg,#e65100,#ff8f00)">
          <div class="card-icon">πŸ’ͺ</div>
          <div class="card-label">Clinical Result</div>
          <div class="card-heading">Wrist Drop β€” Triceps Spared</div>
          <div class="card-body">
            <strong>Wrist drop</strong> is present. However, <strong>triceps is spared</strong> because its motor branches leave the radial nerve just before it enters the spiral groove.<br><br>
            Sensory loss over posterior forearm and dorsal-lateral hand. <strong>Brachioradialis reflex</strong> may be diminished.
          </div>
          <div class="tag-list">
            <span class="tag red">Wrist Drop</span>
            <span class="tag teal">Triceps Intact βœ“</span>
            <span class="tag amber">Sensory Loss</span>
          </div>
        </div>

        <div class="info-card" style="--accent:linear-gradient(90deg,#4a148c,#7b1fa2)">
          <div class="card-icon">🧲</div>
          <div class="card-label">Prognosis</div>
          <div class="card-heading">Usually Favorable</div>
          <div class="card-body">
            Compression neuropraxias (Saturday night palsy) typically recover within <strong>days to weeks</strong>. Humeral fracture-associated injury may take longer. Explore surgically if no recovery by <strong>3–6 months</strong>.
          </div>
        </div>
      </div>

      <!-- Comparison diagram -->
      <div class="svg-container">
        <h3>Level Comparison: Axilla vs Radial Groove</h3>
        <svg viewBox="0 0 480 260" width="100%" style="max-width:480px">
          <!-- Left side: axilla -->
          <rect x="10" y="10" width="215" height="240" rx="12" fill="#0d1b35" stroke="#c62828" stroke-width="1.5"/>
          <text x="117" y="32" text-anchor="middle" fill="#ef9a9a" font-size="11" font-weight="700">AXILLA LEVEL</text>
          <!-- Nerve high -->
          <line x1="117" y1="50" x2="117" y2="230" stroke="#f9a825" stroke-width="3" stroke-linecap="round"/>
          <!-- Compression dot -->
          <circle cx="117" cy="65" r="9" fill="#c62828" opacity="0.9"/>
          <text x="130" y="69" fill="#ef9a9a" font-size="10">Compression</text>
          <!-- Triceps branch -->
          <line x1="117" y1="80" x2="80" y2="105" stroke="#ef9a9a" stroke-width="2" stroke-dasharray="5,3"/>
          <text x="30" y="112" fill="#ef9a9a" font-size="9">Triceps βœ— WEAK</text>
          <!-- ECRL/BR -->
          <line x1="117" y1="120" x2="80" y2="140" stroke="#ef9a9a" stroke-width="2" stroke-dasharray="5,3"/>
          <text x="30" y="147" fill="#ef9a9a" font-size="9">BR / ECRL βœ—</text>
          <!-- Wrist extensors -->
          <line x1="117" y1="160" x2="80" y2="178" stroke="#ef9a9a" stroke-width="2" stroke-dasharray="5,3"/>
          <text x="30" y="185" fill="#ef9a9a" font-size="9">Wrist ext βœ—</text>

          <!-- Right side: spiral groove -->
          <rect x="255" y="10" width="215" height="240" rx="12" fill="#0d1b35" stroke="#e65100" stroke-width="1.5"/>
          <text x="362" y="32" text-anchor="middle" fill="#ffab91" font-size="11" font-weight="700">SPIRAL GROOVE</text>
          <!-- Nerve -->
          <line x1="362" y1="50" x2="362" y2="230" stroke="#42e5b5" stroke-width="3" stroke-linecap="round"/>
          <!-- Triceps branch (above compression) -->
          <line x1="362" y1="70" x2="325" y2="90" stroke="#a5d6a7" stroke-width="2"/>
          <text x="275" y="97" fill="#a5d6a7" font-size="9">Triceps βœ“ INTACT</text>
          <!-- Compression dot -->
          <circle cx="362" cy="115" r="9" fill="#e65100" opacity="0.9"/>
          <text x="375" y="119" fill="#ffab91" font-size="10">Compression</text>
          <!-- BR/ECRL below -->
          <line x1="362" y1="140" x2="325" y2="158" stroke="#ef9a9a" stroke-width="2" stroke-dasharray="5,3"/>
          <text x="275" y="165" fill="#ef9a9a" font-size="9">BR / ECRL βœ—</text>
          <!-- Wrist extensors -->
          <line x1="362" y1="175" x2="325" y2="192" stroke="#ef9a9a" stroke-width="2" stroke-dasharray="5,3"/>
          <text x="275" y="199" fill="#ef9a9a" font-size="9">Wrist ext βœ—</text>

          <text x="117" y="248" text-anchor="middle" fill="#ef5350" font-size="10">All muscles affected</text>
          <text x="362" y="248" text-anchor="middle" fill="#66bb6a" font-size="10">Triceps spared</text>
        </svg>
      </div>

      <div class="nav-row">
        <button class="btn btn-secondary" onclick="prevScene()">← Previous</button>
        <button class="btn btn-primary" onclick="nextScene()">Next Scene β†’</button>
      </div>
    </div>

    <!-- ══════════════════════════════════════
         SCENE 3 – Lateral Intermuscular Septum / Radial Tunnel
    ══════════════════════════════════════ -->
    <div class="scene" id="scene-3">
      <div class="scene-header">
        <div class="scene-number">Scene 4 of 7</div>
        <div class="scene-title">Site β‘’ β€” <span>Lateral Intermuscular Septum &amp; Radial Tunnel</span></div>
      </div>

      <div class="cards-grid">
        <div class="info-card" style="--accent:linear-gradient(90deg,#f9a825,#ffd54f)">
          <div class="card-icon">πŸ”§</div>
          <div class="card-label">Mechanism</div>
          <div class="card-heading">Fibrous Bands &amp; Bridging Vessels</div>
          <div class="card-body">
            Chronic compression as the radial nerve passes through the <strong>lateral intermuscular septum</strong> and into the <strong>radial tunnel</strong> (a 5 cm tunnel in the forearm).<br><br>
            Bridging vessels, connective-tissue septa, and fascial bands can impinge the nerve here.
          </div>
          <div class="tag-list">
            <span class="tag amber">Distal Arm / Elbow</span>
            <span class="tag amber">Radial Tunnel</span>
          </div>
        </div>

        <div class="info-card" style="--accent:linear-gradient(90deg,#ff6f00,#ffa726)">
          <div class="card-icon">😣</div>
          <div class="card-label">Clinical Result</div>
          <div class="card-heading">Radial Tunnel Syndrome</div>
          <div class="card-body">
            <strong>Lateral elbow / radial forearm pain</strong> β€” often mistaken for lateral epicondylitis ("tennis elbow"). Point of maximum tenderness is <strong>several centimeters distal</strong> to the lateral epicondyle.<br><br>
            <strong>No motor deficit, no sensory loss</strong> β€” purely pain-based (PIN fibers not yet separate). Provocative: resisted <strong>long-finger extension</strong> or <strong>supination</strong>.
          </div>
          <div class="tag-list">
            <span class="tag amber">Lateral Elbow Pain</span>
            <span class="tag teal">No Wrist Drop</span>
            <span class="tag teal">No Sensory Loss</span>
          </div>
        </div>

        <div class="info-card" style="--accent:linear-gradient(90deg,#1b5e20,#43a047)">
          <div class="card-icon">🎾</div>
          <div class="card-label">Differential</div>
          <div class="card-heading">vs. Lateral Epicondylitis</div>
          <div class="card-body">
            Lateral epicondylitis: pain <strong>at</strong> lateral epicondyle.<br>
            Radial tunnel syndrome: pain <strong>distal</strong> to it (over supinator/radial head area).<br><br>
            Electrodiagnostic tests are <strong>typically inconclusive</strong> in radial tunnel syndrome.
          </div>
        </div>
      </div>

      <div class="nav-row">
        <button class="btn btn-secondary" onclick="prevScene()">← Previous</button>
        <button class="btn btn-primary" onclick="nextScene()">Next Scene β†’</button>
      </div>
    </div>

    <!-- ══════════════════════════════════════
         SCENE 4 – Arcade of Frohse / PIN
    ══════════════════════════════════════ -->
    <div class="scene" id="scene-4">
      <div class="scene-header">
        <div class="scene-number">Scene 5 of 7</div>
        <div class="scene-title">Site β‘£ β€” <span>Arcade of Frohse (PIN Syndrome)</span></div>
      </div>

      <div class="cards-grid">
        <div class="info-card" style="--accent:linear-gradient(90deg,#1b5e20,#43a047)">
          <div class="card-icon">🏹</div>
          <div class="card-label">Mechanism</div>
          <div class="card-heading">Most Common PIN Compression</div>
          <div class="card-body">
            The <strong>Arcade of Frohse</strong> is the most common site of posterior interosseous nerve (PIN) compression β€” a fibrous arch at the <strong>proximal edge of the superficial head of supinator</strong>.<br><br>
            The PIN mnemonic <strong>LEAFS</strong> covers all 5 anatomic sites:
            <ul style="padding-left:1.2rem;margin-top:0.5rem;line-height:2;">
              <li><strong>L</strong> β€” Leash of Henry (recurrent radial vessels)</li>
              <li><strong>E</strong> β€” Edge of ECRB</li>
              <li><strong>A</strong> β€” Arcade of Frohse ← most common</li>
              <li><strong>F</strong> β€” Fascial band at radial head</li>
              <li><strong>S</strong> β€” Supinator (distal edge)</li>
            </ul>
          </div>
          <div class="tag-list">
            <span class="tag teal">Most Common PIN Site</span>
            <span class="tag blue">Proximal Supinator Edge</span>
          </div>
        </div>

        <div class="info-card" style="--accent:linear-gradient(90deg,#004d40,#00897b)">
          <div class="card-icon">🀚</div>
          <div class="card-label">Clinical Result</div>
          <div class="card-heading">PIN Palsy β€” No Wrist Drop</div>
          <div class="card-body">
            Before entering the supinator canal, PIN gives off branches to <strong>ECRB, brachioradialis, ECRL, and supinator</strong> β€” so wrist extension is <strong>preserved</strong>.<br><br>
            <strong>Muscles affected (no extension):</strong><br>
            ECU, EDC, EIP, EPL, EPB, APL (extensor digiti minimi)<br><br>
            On active wrist extension: <strong>radial deviation</strong> occurs (ECRL intact, ECU weak).<br>
            <strong>No sensory loss</strong> β€” PIN is purely motor after the split.
          </div>
          <div class="tag-list">
            <span class="tag teal">No Wrist Drop</span>
            <span class="tag teal">No Sensory Loss</span>
            <span class="tag red">Finger Ext Weak</span>
            <span class="tag amber">Radial Deviation</span>
          </div>
        </div>

        <div class="info-card" style="--accent:linear-gradient(90deg,#006064,#0097a7)">
          <div class="card-icon">πŸ”¬</div>
          <div class="card-label">Diagnosis &amp; Treatment</div>
          <div class="card-heading">EMG + Surgical Decompression</div>
          <div class="card-body">
            EMG confirms diagnosis and localizes the lesion.<br><br>
            <strong>Non-operative:</strong> activity modification, splinting, NSAIDs.<br>
            <strong>Surgical:</strong> if no recovery by 3 months β†’ decompression of all LEAFS sites β†’ good/excellent results in <strong>85%</strong> of patients.
          </div>
        </div>
      </div>

      <!-- PIN muscles diagram -->
      <div class="svg-container">
        <h3>PIN Innervation β€” Muscles Affected at Arcade of Frohse</h3>
        <svg viewBox="0 0 500 200" width="100%" style="max-width:500px">
          <!-- Nerve trunk -->
          <line x1="50" y1="100" x2="160" y2="100" stroke="#42e5b5" stroke-width="4" stroke-linecap="round"/>
          <text x="50" y="92" fill="#42e5b5" font-size="11" font-weight="700">Radial Nerve</text>

          <!-- Split -->
          <circle cx="160" cy="100" r="6" fill="#f9a825"/>
          <text x="165" y="87" fill="#ffd54f" font-size="10">Split at Lateral</text>
          <text x="165" y="99" fill="#ffd54f" font-size="10">Epicondyle</text>

          <!-- Superficial branch -->
          <line x1="160" y1="100" x2="260" y2="60" stroke="#64b5f6" stroke-width="3" stroke-linecap="round"/>
          <text x="265" y="64" fill="#64b5f6" font-size="10">Superficial Br.</text>
          <text x="265" y="76" fill="#90caf9" font-size="9">(Sensory – 1st web)</text>

          <!-- PIN deep branch -->
          <line x1="160" y1="100" x2="220" y2="130" stroke="#66bb6a" stroke-width="3" stroke-linecap="round"/>

          <!-- Arcade of Frohse compression -->
          <circle cx="220" cy="130" r="8" fill="#c62828" opacity="0.9"/>
          <text x="232" y="128" fill="#ef9a9a" font-size="10" font-weight="700">Arcade of Frohse</text>
          <text x="232" y="140" fill="#ef9a9a" font-size="9">⚠ Compression here</text>

          <!-- Muscles after compression -->
          <line x1="220" y1="138" x2="280" y2="160" stroke="#ef5350" stroke-width="2" stroke-dasharray="5,3"/>
          <text x="284" y="152" fill="#ef9a9a" font-size="9">EDC, EIP, ECU</text>
          <text x="284" y="163" fill="#ef9a9a" font-size="9">EPL, EPB, APL</text>

          <!-- Muscles before compression (spared) -->
          <line x1="185" y1="100" x2="220" y2="75" stroke="#a5d6a7" stroke-width="2"/>
          <text x="225" y="72" fill="#a5d6a7" font-size="9">ECRB, BR, ECRL βœ“</text>
          <text x="225" y="83" fill="#a5d6a7" font-size="9">Supinator βœ“</text>

          <text x="250" y="195" text-anchor="middle" fill="#546e7a" font-size="9">Wrist extension preserved; finger extension lost</text>
        </svg>
      </div>

      <div class="nav-row">
        <button class="btn btn-secondary" onclick="prevScene()">← Previous</button>
        <button class="btn btn-primary" onclick="nextScene()">Next Scene β†’</button>
      </div>
    </div>

    <!-- ══════════════════════════════════════
         SCENE 5 – Supinator Syndrome (Distal)
    ══════════════════════════════════════ -->
    <div class="scene" id="scene-5">
      <div class="scene-header">
        <div class="scene-number">Scene 6 of 7</div>
        <div class="scene-title">Site β‘€ β€” <span>Supinator Syndrome (Distal PIN)</span></div>
      </div>

      <div class="cards-grid">
        <div class="info-card" style="--accent:linear-gradient(90deg,#0d47a1,#1976d2)">
          <div class="card-icon">πŸŒ€</div>
          <div class="card-label">Mechanism</div>
          <div class="card-heading">Distal Supinator Compression</div>
          <div class="card-body">
            Compression of the deep branch (PIN) at its exit from the <strong>distal edge of the supinator muscle</strong>, or by a <strong>sharp-edged tendon</strong> of its superficial part.<br><br>
            Also caused by fractures/dislocations of the proximal radius, lipomas, rheumatoid synovitis of the radiohumeral joint.
          </div>
          <div class="tag-list">
            <span class="tag blue">Distal Supinator</span>
            <span class="tag blue">Space-Occupying Lesions</span>
          </div>
        </div>

        <div class="info-card" style="--accent:linear-gradient(90deg,#01579b,#0288d1)">
          <div class="card-icon">πŸ€™</div>
          <div class="card-label">Clinical Result</div>
          <div class="card-heading">Selective Extensor Paresis</div>
          <div class="card-body">
            By the time PIN exits the supinator, it has <strong>already given off branches to</strong> ECRB, brachioradialis, ECRL, and supinator β†’ these are <strong>all preserved</strong>.<br><br>
            <strong>Paretic muscles:</strong> EPB, EPL, APL, EDC, EIP, ECU.<br><br>
            <strong>No wrist drop, no sensory disturbance</strong> (superficial sensory branch separated earlier).
          </div>
          <div class="tag-list">
            <span class="tag teal">No Wrist Drop</span>
            <span class="tag teal">No Sensory Loss</span>
            <span class="tag red">Thumb / Finger Ext Weak</span>
          </div>
        </div>
      </div>

      <div class="nav-row">
        <button class="btn btn-secondary" onclick="prevScene()">← Previous</button>
        <button class="btn btn-primary" onclick="nextScene()">Next Scene β†’</button>
      </div>
    </div>

    <!-- ══════════════════════════════════════
         SCENE 6 – Summary Table
    ══════════════════════════════════════ -->
    <div class="scene" id="scene-6">
      <div class="scene-header">
        <div class="scene-number">Scene 7 of 7</div>
        <div class="scene-title">πŸ“Š <span>Complete Summary</span></div>
      </div>

      <div style="background:linear-gradient(145deg,#0d1b35,#122040);border:1px solid #1e3a6e;border-radius:16px;overflow:hidden;margin-bottom:2rem;">
        <table class="summary-table">
          <thead>
            <tr>
              <th>#</th>
              <th>Site</th>
              <th>Cause</th>
              <th>Wrist Drop?</th>
              <th>Triceps?</th>
              <th>Sensory Loss?</th>
              <th>Unique Feature</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td><span class="tag red">β‘ </span></td>
              <td><strong>Axilla</strong></td>
              <td>Crutch palsy</td>
              <td style="color:#ef9a9a">βœ— Yes</td>
              <td style="color:#ef9a9a">βœ— Weak</td>
              <td style="color:#ef9a9a">Yes</td>
              <td>Only site with triceps weakness</td>
            </tr>
            <tr>
              <td><span class="tag amber">β‘‘</span></td>
              <td><strong>Radial Groove</strong></td>
              <td>Saturday night palsy, humeral #</td>
              <td style="color:#ef9a9a">βœ— Yes</td>
              <td style="color:#80cbc4">βœ“ Intact</td>
              <td style="color:#ef9a9a">Yes</td>
              <td>Triceps spared; most common trauma level</td>
            </tr>
            <tr>
              <td><span class="tag amber">β‘’</span></td>
              <td><strong>Radial Tunnel</strong></td>
              <td>Fascial bands, bridging vessels</td>
              <td style="color:#80cbc4">βœ“ None</td>
              <td style="color:#80cbc4">βœ“ Intact</td>
              <td style="color:#80cbc4">None</td>
              <td>Pain only β€” no deficit. Mimics tennis elbow</td>
            </tr>
            <tr>
              <td><span class="tag teal">β‘£</span></td>
              <td><strong>Arcade of Frohse</strong></td>
              <td>PIN syndrome (LEAFS)</td>
              <td style="color:#80cbc4">βœ“ None</td>
              <td style="color:#80cbc4">βœ“ Intact</td>
              <td style="color:#80cbc4">None</td>
              <td>Radial deviation on wrist ext; most common PIN site</td>
            </tr>
            <tr>
              <td><span class="tag blue">β‘€</span></td>
              <td><strong>Supinator (Distal)</strong></td>
              <td>Supinator syndrome, lipoma, RA</td>
              <td style="color:#80cbc4">βœ“ None</td>
              <td style="color:#80cbc4">βœ“ Intact</td>
              <td style="color:#80cbc4">None</td>
              <td>Selective finger/thumb extensor paresis</td>
            </tr>
          </tbody>
        </table>
      </div>

      <!-- Key mnemonic -->
      <div class="info-card revealed" style="--accent:linear-gradient(90deg,#4a148c,#7b1fa2);margin-bottom:1.5rem;">
        <div class="card-icon">🧠</div>
        <div class="card-label">Memory Aid</div>
        <div class="card-heading">PIN Compression Sites β€” LEAFS Mnemonic</div>
        <div class="card-body">
          <strong style="color:#ce93d8">L</strong> β€” Leash of Henry (recurrent radial vessels)<br>
          <strong style="color:#ce93d8">E</strong> β€” Edge of ECRB<br>
          <strong style="color:#ce93d8">A</strong> β€” <strong>Arcade of Frohse</strong> (most common)<br>
          <strong style="color:#ce93d8">F</strong> β€” Fascial band at radial head<br>
          <strong style="color:#ce93d8">S</strong> β€” Supinator distal edge
        </div>
      </div>

      <div class="info-card revealed" style="--accent:linear-gradient(90deg,#1a237e,#283593);">
        <div class="card-icon">πŸ“š</div>
        <div class="card-label">Sources</div>
        <div class="card-heading">References</div>
        <div class="card-body" style="font-size:0.82rem;">
          β€’ THIEME Atlas of Anatomy β€” General Anatomy &amp; Musculoskeletal System<br>
          β€’ Miller's Review of Orthopaedics, 9th Edition (pp. 693–695)<br>
          β€’ Sabiston Textbook of Surgery, Radial Nerve Compression section<br>
          β€’ Localization in Clinical Neurology, 8th Edition
        </div>
      </div>

      <div class="nav-row">
        <button class="btn btn-secondary" onclick="prevScene()">← Previous</button>
        <button class="btn btn-primary" onclick="restartAnimation()">β†Ί Restart</button>
      </div>
    </div>

  </div><!-- /scene-container -->
</div><!-- /app -->

<script>
  let currentScene = 0;
  const totalScenes = 7;

  // Particles
  (function createParticles() {
    const container = document.getElementById('particles');
    for (let i = 0; i < 20; i++) {
      const p = document.createElement('div');
      p.className = 'particle';
      const size = Math.random() * 8 + 3;
      p.style.cssText = `
        width:${size}px; height:${size}px;
        left:${Math.random()*100}%;
        animation-duration:${Math.random()*15+10}s;
        animation-delay:${Math.random()*10}s;
        opacity:0;
      `;
      container.appendChild(p);
    }
  })();

  function startAnimation() {
    const title = document.getElementById('title-screen');
    title.style.opacity = '0';
    setTimeout(() => {
      title.style.display = 'none';
      document.getElementById('app').style.display = 'block';
      revealCards(0);
      updateProgress();
    }, 800);
  }

  function revealCards(sceneIndex) {
    const scene = document.getElementById('scene-' + sceneIndex);
    if (!scene) return;

    // Reveal info-cards with stagger
    const cards = scene.querySelectorAll('.info-card:not(.revealed)');
    cards.forEach((card, i) => {
      setTimeout(() => card.classList.add('revealed'), 150 + i * 180);
    });

    // Reveal overview steps
    const steps = scene.querySelectorAll('.overview-step:not(.revealed)');
    steps.forEach((step, i) => {
      setTimeout(() => step.classList.add('revealed'), 200 + i * 200);
    });
  }

  function updateProgress() {
    const pct = ((currentScene) / (totalScenes - 1)) * 100;
    document.getElementById('progress-fill').style.width = pct + '%';
    document.getElementById('progress-label').innerHTML =
      `Scene ${currentScene + 1} / ${totalScenes}`;
    document.getElementById('btn-prev').disabled = currentScene === 0;
  }

  function showScene(index) {
    document.querySelectorAll('.scene').forEach(s => s.classList.remove('active'));
    const target = document.getElementById('scene-' + index);
    if (target) {
      target.classList.add('active');
      window.scrollTo({ top: 0, behavior: 'smooth' });
      revealCards(index);
      updateProgress();
    }
  }

  function nextScene() {
    if (currentScene < totalScenes - 1) {
      currentScene++;
      showScene(currentScene);
    }
  }

  function prevScene() {
    if (currentScene > 0) {
      currentScene--;
      showScene(currentScene);
    }
  }

  function restartAnimation() {
    currentScene = 0;
    // Reset all revealed states
    document.querySelectorAll('.info-card, .overview-step').forEach(el => el.classList.remove('revealed'));
    showScene(0);
  }
</script>
</body>
</html>
Running Command

ls -lh /home/daytona/workspace/radial-nerve-animation/index.html

Your animated guide is ready:

index

HTML File Β· HTML


What's inside the animation (7 scenes):

SceneContent
1 – Course OverviewAnimated SVG of the full radial nerve path from axilla β†’ wrist with all 5 compression sites pulsing in sequence
2 – Axilla CompressionCrutch/axillary pressure β†’ complete radial palsy + triceps weakness (only site where triceps is affected). Animated wrist drop illustration.
3 – Radial Groove (Spiral Canal)Saturday night palsy / park bench palsy / humeral shaft fracture β†’ wrist drop with triceps spared. Side-by-side level comparison diagram.
4 – Radial Tunnel (Lat. Intermuscular Septum)Fascial band compression β†’ pain only, no motor/sensory deficit. Mimics lateral epicondylitis.
5 – Arcade of Frohse (PIN)Most common PIN compression site β€” LEAFS mnemonic fully illustrated. No wrist drop, no sensory loss, radial deviation on wrist extension.
6 – Supinator Syndrome (Distal PIN)Distal supinator exit compression β†’ selective thumb/finger extensor paresis, no wrist drop, no sensory loss.
7 – Full Summary Table + MnemonicsComparative table across all 5 sites + LEAFS mnemonic + references.
Key anatomical rule visualized: The more proximal the lesion β†’ the more muscles affected. Triceps involvement localizes the lesion to above the spiral groove (axilla level).
Sources: THIEME Atlas of Anatomy, Miller's Review of Orthopaedics 9th Ed., Localization in Clinical Neurology 8th Ed.
This is a shared conversation. Sign in to Orris to start your own chat.