<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta name="description" content="Windows 11のグラフィックドライバ不具合(死神ドライバ)対策:DDU、ISO上書き、PRO Edition導入による最強修復プロトコル。BSOD、Explorerクラッシュ、DCOMエラーの解決手順を詳細解説">
  <meta name="keywords" content="死神ドライバ, Windows 11修復, DDU, AMD Adrenalin, PRO Edition, BSOD, DCOMエラー, Explorerクラッシュ, ISO上書きインストール">
  <meta name="author" content="Grok">
  <meta name="robots" content="index, follow">
  <title>最強修復プロトコル:死神ドライバ対策 | Windows 11不具合解決ガイド</title>
  <link href="https://cdn.jsdelivr.net/npm/remixicon@4.5.0/fonts/remixicon.css" rel="stylesheet" />
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/7.0.1/css/all.min.css" integrity="sha512-2SwdPD6INVrV/lHTZbO2nodKhrnDdJK9/kg2XD1r9uGqPo1cUbujc+IYdlYdEErWNu69gVcYgdxlmVmzTWnetw==" crossorigin="anonymous" referrerpolicy="no-referrer" />
  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.4/dist/chart.umd.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/apexcharts@3.53.0/dist/apexcharts.min.js"></script>
  <style>
    body {
      font-family: 'Meiryo', 'Segoe UI', sans-serif;
      line-height: 1.6;
      color: #333;
      max-width: 1400px;
      margin: 30px auto;
      padding: 0 20px;
      background: linear-gradient(135deg, #f5f7fa 0%, #e4e8f0 100%);
    }
    header {
      text-align: center;
      padding: 2rem 0;
      background-color: #0071c2;
      color: white;
      border-radius: 8px;
    }
    h1 {
      font-size: 2.5rem;
      margin: 0;
    }
    h2 {
      font-size: 1.8rem;
      margin-top: 2rem;
      background: linear-gradient(to bottom, #0071c2, #00a1c2);
      color: #fff;
      padding: 10px 15px;
      border-radius: 4px;
      display: flex;
      align-items: center;
      gap: 8px;
    }
    h3 {
      font-size: 1.4rem;
      color: #0071c2;
    }
    h4 {
      font-size: 1.2rem;
      color: #2c3e50;
    }
    p, li {
      font-size: 1rem;
      margin-bottom: 1rem;
    }
    ul, ol {
      margin: 1rem 0;
      padding-left: 0;
      list-style-type: none;
    }
    ul li, ol li {
      position: relative;
      padding-left: 30px;
      margin-bottom: 10px;
      role: listitem;
    }
    li i[class^="ri-"] {
      color: #0071c2;
      margin-right: 8px;
      font-size: 1.1rem;
      vertical-align: middle;
      aria-hidden: true;
    }
    .checklist h4 {
      margin-top: 0;
      color: #0071c2;
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .checklist h4::before {
      content: "check_circle";
      font-family: 'Material Icons';
      background-color: #0071c2;
      color: white;
      width: 20px;
      height: 20px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 12px;
      margin-right: 8px;
    }
    .sop-box h4 {
      margin-top: 0;
      color: #2e7d32;
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .sop-box h4::before {
      content: "warning";
      font-family: 'Material Icons';
      background-color: #2e7d32;
      color: white;
      width: 20px;
      height: 20px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 12px;
      margin-right: 8px;
    }
    code {
      background-color: #f1f1f1;
      padding: 2px 6px;
      border-radius: 4px;
      font-family: 'Fira Code', monospace;
    }
    table {
      width: 100%;
      border-collapse: collapse;
      margin: 1.5rem 0;
      background-color: white;
      box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    }
    th, td {
      border: 1px solid #ddd;
      padding: 12px;
      text-align: left;
    }
    th {
      background-color: #0071c2;
      color: white;
    }
    caption {
      caption-side: top;
      font-weight: bold;
      padding: 8px;
      color: #333;
    }
    tr:nth-child(even) { background-color: #f5f5f5; }
    a {
      color: #0071c2;
      text-decoration: none;
    }
    a:hover { text-decoration: underline; }
    .feature-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: 24px;
      margin-bottom: 1.5rem;
    }
    .card {
      background: rgba(255, 255, 255, 0.15);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border: 1px solid rgba(255, 255, 255, 0.3);
      border-radius: 8px;
      box-shadow: 0 2px 6px rgba(0,0,0,0.08);
      padding: 20px 24px;
      transition: transform 0.3s ease, box-shadow 0.3s ease;
    }
    .card:hover, .card:focus-visible {
      transform: translateY(-4px);
      box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
    }
    .card-header {
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .card-header .fa-solid, .card-header .material-icons {
      font-size: 1.2rem;
      color: #A30D29;
    }
    .card-title {
      font-size: 1.1rem;
      font-weight: bold;
      color: #333;
    }
    .card-description {
      font-size: 0.95rem;
      color: #555;
      line-height: 1.6;
    }
    .dashboard {
      max-width: 1400px;
      margin: 30px auto;
      padding: 0 20px;
    }
    .kpi-boxes {
      display: flex;
      gap: 20px;
      margin-bottom: 30px;
    }
    .kpi {
      flex: 1;
      padding: 20px;
      border-radius: 8px;
      color: white;
      font-weight: bold;
      font-size: 18px;
      position: relative;
      overflow: hidden;
    }
    .kpi .value { font-size: 26px; }
    .kpi .label { font-size: 14px; margin-top: 5px; opacity: 0.9; }
    .purple { background-color: #7e57c2; }
    .blue { background-color: #42a5f5; }
    .orange { background-color: #ffa726; }
    .red { background-color: #ef5350; }
    .main-chart {
      background: rgba(255, 255, 255, 0.9);
      border-radius: 12px;
      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
      padding: 25px;
      margin-bottom: 30px;
      backdrop-filter: blur(8px);
      border: 1px solid rgba(255, 255, 255, 0.3);
    }
    .sub-charts {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 25px;
      margin-bottom: 30px;
    }
    .sub-chart {
      background: rgba(255, 255, 255, 0.7);
      border-radius: 10px;
      padding: 15px;
      box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
      backdrop-filter: blur(6px);
      border: 1px solid rgba(255, 255, 255, 0.2);
    }
    .faq-block {
      background: rgba(255, 255, 255, 0.15);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border: 1px solid rgba(255, 255, 255, 0.3);
      padding: 15px;
      border-radius: 8px;
      margin-bottom: 1rem;
      border-left: 4px solid #0071c2;
    }
    .faq-block p { margin: 0.5rem 0; }
    .faq-block strong { color: #0071c2; }
    .progress-wrapper {
      margin: 1rem 0;
      display: flex;
      flex-direction: column;
      gap: 0.5rem;
    }
    .progress-bar-container {
      height: 8px;
      background-color: #e0e0e0;
      border-radius: 4px;
      overflow: hidden;
    }
    .progress-bar {
      height: 100%;
      width: 0%;
      background-color: #0071c2;
      border-radius: 4px;
      transition: width 4s ease-out;
    }
    .progress-label {
      color: #0071c2;
      font-size: 0.9rem;
      margin-bottom: 0.5rem;
    }
    #progress-bar {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 4px;
      background: #e0e0e0;
      z-index: 9999;
    }
    #progress-bar-fill {
      height: 100%;
      width: 0%;
      background: linear-gradient(to right, #0071c2, #00a1c2);
      transition: width 0.1s linear;
    }
    @media (prefers-contrast: high) {
      body { background: #000000; color: #FFFFFF; }
      .card, .faq-block, .sop-box, .checklist, table, .main-chart, .sub-chart {
        background: #000000 !important;
        border: 2px solid #FFFFFF !important;
      }
      .progress-bar-container, #progress-bar { background: #000000 !important; }
      .progress-bar, #progress-bar-fill { background: #FFFFFF !important; }
      .counter-value, .progress-label, .card-title, .card-description, th, td, p, li, h1, h2, h3 {
        color: #FFFFFF !important;
      }
      .card-header .fa-solid, .card-header .material-icons, li i[class^="ri-"] {
        filter: invert(100%) !important;
      }
      .checklist h4::before, .sop-box h4::before {
        color: #FFFFFF !important;
        background-color: transparent !important;
      }
    }
    @media (max-width: 1024px) {
      .sub-charts { grid-template-columns: 1fr; }
    }
    @media (max-width: 768px) {
      h1 { font-size: 1.8rem; }
      h2 { font-size: 1.5rem; }
      table { font-size: 0.9rem; }
      .kpi-boxes { flex-direction: column; }
      .feature-grid { grid-template-columns: 1fr; }
    }
  </style>
</head>
<body>
  <div id="progress-bar" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" aria-label="Page scroll progress">
    <div id="progress-bar-fill"></div>
  </div>
  <header>
    <h1>最強修復プロトコル:死神ドライバ対策</h1>
  </header>
  <main>
    <section aria-labelledby="intro-heading">
      <h2 id="intro-heading"><i aria-label="概要 icon" class="fa-solid fa-book" style="color: white; margin-right: 8px;"></i>死神ドライバとは?概要と影響</h2>
      <p>このプロトコルは、グラフィックドライバがシステムに深刻な不具合(通称「死神ドライバ」)を引き起こした場合の<strong>最終かつ最も確実な解決策</strong>です。単なるドライバの再インストールでは解決しない、<strong>OSの根本的な構造破損</strong>に焦点を当てています。特にAMD AdrenalinドライバによるExplorerクラッシュ、DCOMエラー、WinSxS破損を対象としています。</p>
      <div class="feature-grid">
        <div class="card" role="region" aria-labelledby="card-issue1" style="border-left: 4px solid red;">
          <div class="card-header">
            <i aria-label="Explorerクラッシュ icon" class="material-icons">error</i>
            <h3 class="card-title" id="card-issue1">Explorerクラッシュ - クリティカル</h3>
          </div>
          <div class="card-description">
            <p>右クリック時の遅延やクラッシュ。原因:AdrenalinのShell Extensionによるレジストリ破損。影響:日常操作の阻害。</p>
          </div>
        </div>
        <div class="card" role="region" aria-labelledby="card-issue2" style="border-left: 4px solid orange;">
          <div class="card-header">
            <i aria-label="DCOMエラー icon" class="material-icons">warning</i>
            <h3 class="card-title" id="card-issue2">DCOMエラー - 高</h3>
          </div>
          <div class="card-description">
            <p>COM+登録の破損によるサービス障害。原因:AdrenalinのGUID統合。影響:システムサービスの不安定化。</p>
          </div>
        </div>
        <div class="card" role="region" aria-labelledby="card-issue3" style="border-left: 4px solid yellow;">
          <div class="card-header">
            <i aria-label="WinSxS破損 icon" class="material-icons">build</i>
            <h3 class="card-title" id="card-issue3">WinSxS破損 - 中</h3>
          </div>
          <div class="card-description">
            <p>システムコンポーネントのキャッシュ破損。原因:ドライバの不適切なインストール。影響:更新や修復の失敗。</p>
          </div>
        </div>
      </div>
    </section>
    <section aria-labelledby="protocol-heading">
      <h2 id="protocol-heading"><i aria-label="修復手順 icon" class="fa-solid fa-list-check" style="color: white; margin-right: 8px;"></i>修復プロトコル手順</h2>
      <div class="dashboard">
        <div class="kpi-boxes">
          <div class="kpi purple">
            <span class="value">95%</span>
            <span class="label">修復成功率</span>
          </div>
          <div class="kpi blue">
            <span class="value">2.0時間</span>
            <span class="label">平均修復時間</span>
          </div>
          <div class="kpi orange">
            <span class="value">98%</span>
            <span class="label">再発防止率</span>
          </div>
          <div class="kpi red">
            <span class="value">100%</span>
            <span class="label">データ保持率</span>
          </div>
        </div>
        <ol>
          <li role="listitem">
            <h3>DDU(Display Driver Uninstaller)で完全削除</h3>
            <p><i class="ri-tools-line"></i> 通常のアンインストールでは残るレジストリキー、サービス、残留ファイルをセーフモードで完全除去。特に Adrenalin の Shell Extension や DCOM 登録が壊れている場合、DDU以外では修復不能。</p>
            <div class="progress-wrapper" role="progressbar" aria-valuemax="100" aria-valuemin="0" aria-valuenow="90" aria-labelledby="ddu-progress">
              <div class="progress-label" id="ddu-progress">DDU実行進捗</div>
              <div class="progress-bar-container">
                <div class="progress-bar" data-target="90"></div>
              </div>
            </div>
          </li>
          <li role="listitem">
            <h3>Windows 11 最新ISOでOS上書きインストール</h3>
            <p><i class="ri-refresh-line"></i> 破損したExplorerの動作やDCOM設定、サービス構成をクリーンに再構築。既存のアプリやファイルを保持しつつ、システムファイルとレジストリを初期化。特にWinSxSやCOM+の破損が疑われる場合、このステップが決定打。</p>
            <div class="progress-wrapper" role="progressbar" aria-valuemax="100" aria-valuemin="0" aria-valuenow="85" aria-labelledby="iso-progress">
              <div class="progress-label" id="iso-progress">ISO上書き進捗</div>
              <div class="progress-bar-container">
                <div class="progress-bar" data-target="85"></div>
              </div>
            </div>
          </li>
          <li role="listitem">
            <h3>最新の安定版ドライバ(PRO Edition 推奨)をインストール</h3>
            <p><i class="ri-install-line"></i> Adrenalinの最新版ではなく、PRO Edition 25.Q3のような安定版を選択。コンテキストメニュー統合やDCOM登録が控えめで、Explorerとの干渉が起きにくい。</p>
            <div class="progress-wrapper" role="progressbar" aria-valuemax="100" aria-valuemin="0" aria-valuenow="95" aria-labelledby="driver-progress">
              <div class="progress-label" id="driver-progress">ドライバインストール進捗</div>
              <div class="progress-bar-container">
                <div class="progress-bar" data-target="95"></div>
              </div>
            </div>
          </li>
        </ol>
      </div>
      <div class="dashboard">
        <div class="main-chart" role="img" aria-label="修復成功率チャート">
          <div id="successRateChart"></div>
        </div>
        <div class="sub-charts">
          <div class="sub-chart" role="img" aria-label="修復評価レーダーチャート">
            <div id="radarChart"></div>
          </div>
          <div class="sub-chart" role="img" aria-label="成功割合ドーナツチャート">
            <div id="pieChart"></div>
          </div>
          <div class="sub-chart" role="img" aria-label="成功率推移折れ線チャート">
            <div id="lineChart"></div>
          </div>
        </div>
      </div>
    </section>
    <section aria-labelledby="strengths-heading">
      <h2 id="strengths-heading"><i aria-label="強み icon" class="fa-solid fa-lightbulb" style="color: white; margin-right: 8px;"></i>プロトコルの強み</h2>
      <div class="checklist" role="region" aria-labelledby="strengths-checklist">
        <h4 id="strengths-checklist">この手順の強み</h4>
        <ul>
          <li role="listitem"><i class="ri-shield-check-line"></i> 再発防止力が高い:残留設定や壊れた COM 登録を完全に排除します。</li>
          <li role="listitem"><i class="ri-restart-line"></i> 構成が明確にリセットされる:ドライバ・OS・サービスの三位一体で再構築します。</li>
          <li role="listitem"><i class="ri-check-double-line"></i> 安定性重視の選択肢を導入:PRO Edition による静かな運用が可能です。</li>
        </ul>
      </div>
      <div class="checklist" role="region" aria-labelledby="overwrite-benefits">
        <h4 id="overwrite-benefits">Windows 11 22H2以降の上書きインストールの強み</h4>
        <ul>
          <li>
            <h4>ユーザーデータ・アプリ・設定の完全保持</h4>
            <ul>
              <li role="listitem"><i class="ri-shield-check-line"></i> 以前はドライバや一部の設定が失われることもあったが、現在はGPUドライバやレジストリ設定も高確率で保持。</li>
              <li role="listitem"><i class="ri-check-double-line"></i> 特に「死神ドライバ」系の破損でも、OSのコアだけを再構築して周辺を残すという理想的な挙動。</li>
            </ul>
          </li>
          <li>
            <h4>破損した COM 登録・Shell Extension の再構築</h4>
            <ul>
              <li role="listitem"><i class="ri-code-box-line"></i> DCOM や Explorer のコンテキスト統合が壊れていても、OSの上書きで GUID 再登録と COM 再初期化が可能。</li>
              <li role="listitem"><i class="ri-window-line"></i> これは Adrenalin のような暴走型ドライバに対して非常に有効。</li>
            </ul>
          </li>
          <li>
            <h4>WinRE(Windows Recovery Environment)との連携強化</h4>
            <ul>
              <li role="listitem"><i class="ri-system-line"></i> 上書きインストール後、自動で WinRE が再構築されるため、回復環境も正常化。</li>
              <li role="listitem"><i class="ri-shield-check-line"></i> 以前は WinRE が壊れたまま残るケースが多かった。</li>
            </ul>
          </li>
          <li>
            <h4>ISOベースでも UUP(Unified Update Platform)と連携</h4>
            <ul>
              <li role="listitem"><i class="ri-refresh-line"></i> ISO からの上書きでも、UUP による差分更新が適用されるため、最小限の書き換えで最大の修復効果。</li>
              <li role="listitem"><i class="ri-download-line"></i> これにより、ドライバやアプリの再インストールが不要になるケースが増加。</li>
            </ul>
          </li>
        </ul>
      </div>
      <p>この機能は、もはや「修復」ではなく構成の再定義に近い。DDU → ISO上書き → 安定版ドライバという流れは、死神ドライバの完全駆除と再構築の最短ルートです。</p>
      <div class="dashboard">
        <div class="main-chart" role="img" aria-label="プロトコル強みレーダーチャート">
          <div id="strengthsChart"></div>
        </div>
      </div>
    </section>
    <section aria-labelledby="limitations-heading">
      <h2 id="limitations-heading"><i aria-label="限界 icon" class="fa-solid fa-microscope" style="color: white; margin-right: 8px;"></i>従来修復方法の限界</h2>
      <p>多くのユーザーが試す <code>DISM /RestoreHealth</code> や <code>sfc /scannow</code> は、グラフィックドライバが引き起こした<strong>構造的な破損</strong>には無力です。</p>
      <div class="sop-box">
        <h4>DISM /RestoreHealthの限界</h4>
        <ul>
          <li role="listitem"><i class="ri-alert-line"></i> 破損した WinSxS キャッシュを「正常」とみなして復元。</li>
          <li role="listitem"><i class="ri-code-box-line"></i> DCOM や Shell Extension の GUID 登録が壊れている場合、壊れた構成を再展開してしまう。</li>
          <li role="listitem"><i class="ri-alert-line"></i> 特に Adrenalin のような GUID 統合型ドライバでは、暴走状態を再構築するだけになる。</li>
        </ul>
      </div>
      <div class="sop-box">
        <h4>sfc /scannowの限界</h4>
        <ul>
          <li role="listitem"><i class="ri-file-code-line"></i> 表層の DLL や EXE を置き換えるだけで、COM+ やレジストリの構造破損には一切対応できない。</li>
          <li role="listitem"><i class="ri-alert-line"></i> Explorer の挙動が不安定な状態で実行すると、右クリック暴走や DCOM エラーがさらに悪化する。</li>
        </ul>
      </div>
      <p>DISM や sfc は「絆創膏」でしかなく、骨折した構成には手術(=構成再構築)が必要。今回のような Adrenalin 暴走系では、DDU → ISO上書き → 安定版ドライバという三段構えが唯一の正解。</p>
    </section>
    <section aria-labelledby="comparison-heading">
      <h2 id="comparison-heading"><i aria-label="比較 icon" class="fa-solid fa-table" style="color: white; margin-right: 8px;"></i>修復手段の比較</h2>
      <table class="impact-table">
        <caption>修復手段の効果と特徴</caption>
        <thead>
          <tr>
            <th>修復手段</th>
            <th>効果</th>
            <th>備考</th>
            <th>実行時間目安</th>
            <th>難易度</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>DDU(Display Driver Uninstaller)</td>
            <td><i class="fas fa-circle-check fa-icon"></i></td>
            <td>ドライバ残留物・GUID・サービスを完全除去</td>
            <td>10-20分</td>
            <td>中</td>
          </tr>
          <tr>
            <td>Windows ISO 上書きインストール</td>
            <td><i class="fas fa-circle-check fa-icon"></i></td>
            <td>COM構造・WinSxS・Explorerを再構築</td>
            <td>30-60分</td>
            <td>高</td>
          </tr>
          <tr>
            <td>安定版ドライバ(PRO Edition)</td>
            <td><i class="fas fa-circle-check fa-icon"></i></td>
            <td>Shell Extension 統合が控えめで暴走しない</td>
            <td>5-10分</td>
            <td>低</td>
          </tr>
          <tr>
            <td>イベントログ監視 + GUIDブロック</td>
            <td><i class="fas fa-circle fa-icon"></i></td>
            <td>再発防止と構成監視に有効</td>
            <td>継続的</td>
            <td>高</td>
          </tr>
          <tr>
            <td>DISM / sfc</td>
            <td><i class="fas fa-times fa-icon"></i></td>
            <td>表層修復のみ。構造破損には無力。逆効果あり</td>
            <td>10-30分</td>
            <td>低</td>
          </tr>
          <tr>
            <td>システムイメージバックアップ</td>
            <td><i class="fas fa-circle fa-icon"></i></td>
            <td>修復失敗時のリカバリ手段。データ保護に必須</td>
            <td>30-60分</td>
            <td>中</td>
          </tr>
          <tr>
            <td>ドライバ自動更新の無効化</td>
            <td><i class="fas fa-circle fa-icon"></i></td>
            <td>Windows Updateによる意図しないドライバ更新を防止</td>
            <td>5分</td>
            <td>中</td>
          </tr>
        </tbody>
      </table>
      <div class="dashboard">
        <div class="main-chart" role="img" aria-label="修復手段比較チャート">
          <div id="comparisonChart"></div>
        </div>
      </div>
    </section>
    <section aria-labelledby="faq-heading">
      <h2 id="faq-heading"><i aria-label="FAQ icon" class="fa-solid fa-question-circle" style="color: white; margin-right: 8px;"></i>よくある質問</h2>
      <div class="faq-block">
        <p><strong>Q: 死神ドライバの主な原因は?</strong></p>
        <p><strong>A:</strong> AMD AdrenalinドライバのShell ExtensionやDCOM登録の不適切な統合。類似症状:右クリックの遅延、システムサービス障害。</p>
      </div>
      <div class="faq-block">
        <p><strong>Q: 上書きインストールでデータは失われる?</strong></p>
        <p><strong>A:</strong> Windows 11 22H2以降では、ユーザーデータ、アプリ、設定が高確率で保持される。ただし、バックアップを推奨。</p>
      </div>
      <div class="faq-block">
        <p><strong>Q: PRO EditionとAdrenalinの違いは?</strong></p>
        <p><strong>A:</strong> PRO Editionはゲーマー向け機能を省略し、安定性と最小限のシステム干渉を優先。ExplorerクラッシュやDCOMエラーのリスクが低い。</p>
      </div>
    </section>
    <section aria-labelledby="prevention-heading">
      <h2 id="prevention-heading"><i aria-label="予防 icon" class="fa-solid fa-thumbs-up" style="color: white; margin-right: 8px;"></i>予防策と最適化</h2>
      <div class="sop-box">
        <h4>予防ベストプラクティス</h4>
        <ul>
          <li role="listitem"><i class="ri-lock-line"></i> ドライバは公式サイト(<a href="https://www.amd.com/ja/support">AMD公式</a>)からダウンロードし、互換性を確認。</li>
          <li role="listitem"><i class="ri-file-backup-line"></i> 定期的なシステムイメージバックアップ(コントロールパネル > バックアップと復元)を作成。</li>
          <li role="listitem"><i class="ri-lock-line"></i> Windows Updateの自動ドライバ更新を無効化(グループポリシー:gpedit.msc)。</li>
          <li role="listitem"><i class="ri-dashboard-line"></i> イベントログ監視(PowerShell: <code>Get-WinEvent -LogName "System" | Where-Object {$_.ProviderName -like "*AMD*"}</code>)で異常を早期検知。</li>
        </ul>
      </div>
    </section>
  </main>
  <script>
    // Intersection Observer for animations
    function setupIntersectionObserver() {
      const observer = new IntersectionObserver((entries) => {
        entries.forEach(entry => {
          if (entry.isIntersecting) {
            const progressBars = entry.target.querySelectorAll('.progress-bar');
            animateProgress(progressBars);
            observer.unobserve(entry.target);
          }
        });
      }, { threshold: 0.1 });
      document.querySelectorAll('.progress-wrapper').forEach(el => {
        observer.observe(el);
      });
    }
    function animateProgress(progressBars) {
      progressBars.forEach(bar => {
        if (!bar.classList.contains('animated')) {
          const target = bar.getAttribute('data-target');
          bar.style.width = target + '%';
          bar.classList.add('animated');
          bar.parentElement.parentElement.setAttribute('aria-valuenow', target);
        }
      });
    }
    // Scroll progress bar
    function updateScrollProgress() {
      const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
      const scrollHeight = document.documentElement.scrollHeight;
      const clientHeight = document.documentElement.clientHeight;
      const scrollPercentage = (scrollTop / (scrollHeight - clientHeight)) * 100;
      const progressBarFill = document.getElementById('progress-bar-fill');
      const progressBar = document.getElementById('progress-bar');
      progressBarFill.style.width = scrollPercentage + '%';
      progressBar.setAttribute('aria-valuenow', Math.floor(scrollPercentage));
    }
    // ApexCharts initialization
    document.addEventListener('DOMContentLoaded', function() {
      // Success Rate Chart
      const successRateChartElement = document.querySelector("#successRateChart");
      if (!successRateChartElement) {
        console.error("successRateChart element not found!");
        return;
      }
      const successRateOptions = {
        series: [{ name: '成功率', data: [0, 0, 0] }],
        chart: {
          type: 'bar',
          height: 450,
          width: '100%',
          toolbar: { show: false },
          animations: { enabled: true, easing: 'easeinout', speed: 1200 },
          dropShadow: { enabled: true, blur: 6, left: 1, top: 1, opacity: 0.2 }
        },
        plotOptions: {
          bar: { horizontal: false, columnWidth: '60%', endingShape: 'rounded', distributed: true }
        },
        dataLabels: {
          enabled: true,
          formatter: function(val) { return val + "%"; },
          offsetY: -20,
          style: { fontSize: '16px', colors: ["#2c3e50"], fontWeight: 'bold' },
          dropShadow: { enabled: true, blur: 2, opacity: 0.5 }
        },
        stroke: { show: true, width: 2, colors: ['transparent'] },
        xaxis: {
          categories: ['DDU', 'ISO上書き', 'PRO Edition'],
          labels: { style: { colors: '#555', fontSize: '14px', fontWeight: '600' } },
          axisBorder: { show: false },
          axisTicks: { show: false }
        },
        yaxis: {
          min: 0,
          max: 100,
          tickAmount: 5,
          labels: { style: { colors: '#555', fontSize: '12px' } }
        },
        fill: {
          type: 'gradient',
          gradient: {
            shade: 'dark',
            type: 'vertical',
            shadeIntensity: 0.5,
            gradientToColors: ['#0071c2', '#00a1c2', '#42a5f5'],
            inverseColors: false,
            opacityFrom: 0.9,
            opacityTo: 0.7,
            stops: [0, 100]
          }
        },
        colors: ['#0071c2', '#00a1c2', '#42a5f5'],
        grid: { borderColor: '#f1f1f1', strokeDashArray: 4, padding: { top: -10, right: 0, bottom: 0, left: 0 } },
        annotations: {
          yaxis: [
            { y: 80, borderColor: '#ff9800', strokeDashArray: 4, label: { borderColor: '#ff9800', style: { color: '#fff', background: '#ff9800' }, text: '業界平均' } },
            { y: 90, borderColor: '#4caf50', strokeDashArray: 4, label: { borderColor: '#4caf50', style: { color: '#fff', background: '#4caf50' }, text: '目標値' } }
          ]
        },
        tooltip: { enabled: true, y: { formatter: val => `${val}%` }, style: { fontSize: '14px' } }
      };
      const successRateChart = new ApexCharts(successRateChartElement, successRateOptions);
      successRateChart.render();
      setTimeout(() => {
        successRateChart.updateSeries([{ data: [92, 87, 98] }], true);
      }, 500);

      // Radar Chart
      const radarChartElement = document.querySelector("#radarChart");
      if (!radarChartElement) {
        console.error("radarChart element not found!");
        return;
      }
      const radarOptions = {
        series: [{ name: '評価', data: [85, 70, 95, 80, 75] }],
        chart: { height: 300, type: 'radar', dropShadow: { enabled: true, blur: 3, left: 1, top: 1, opacity: 0.2 } },
        plotOptions: { radar: { polygons: { strokeColors: '#e9e9e9', fill: { colors: ['#f8f8f8', '#fff'] } } } },
        colors: ['#0071c2'],
        markers: { size: 5, hover: { size: 7 } },
        xaxis: { categories: ['時間', 'コスト', '難易度', '安定性', '再現性'] },
        yaxis: { tickAmount: 5, labels: { formatter: (val) => `${val}%` } },
        fill: { opacity: 0.3 },
        stroke: { width: 2 }
      };
      const radarChart = new ApexCharts(radarChartElement, radarOptions);
      radarChart.render();

      // Pie Chart
      const pieChartElement = document.querySelector("#pieChart");
      if (!pieChartElement) {
        console.error("pieChart element not found!");
        return;
      }
      const pieOptions = {
        series: [78, 12, 10],
        chart: { type: 'donut', height: 300, dropShadow: { enabled: true, blur: 4, left: 2, top: 2, opacity: 0.2 } },
        colors: ['#0071c2', '#00a1c2', '#f44336'],
        labels: ['成功', '部分成功', '失敗'],
        legend: { position: 'bottom', fontSize: '12px' },
        dataLabels: { enabled: true, formatter: (val) => `${val}%`, style: { fontSize: '14px', fontWeight: 'bold' } },
        plotOptions: { pie: { donut: { size: '65%', labels: { show: true, total: { show: true, label: '総評価', formatter: () => '優良' } } } } },
        responsive: [{ breakpoint: 480, options: { chart: { height: 250 } } }]
      };
      const pieChart = new ApexCharts(pieChartElement, pieOptions);
      pieChart.render();

      // Line Chart
      const lineChartElement = document.querySelector("#lineChart");
      if (!lineChartElement) {
        console.error("lineChart element not found!");
        return;
      }
      const lineOptions = {
        series: [{ name: '成功率推移', data: [75, 82, 88, 92, 95, 97] }],
        chart: { height: 300, type: 'line', dropShadow: { enabled: true, blur: 4, left: 2, top: 2, opacity: 0.1 }, animations: { enabled: true, easing: 'linear', speed: 1000 } },
        colors: ['#00a1c2'],
        stroke: { curve: 'smooth', width: 3 },
        grid: { borderColor: '#f1f1f1', strokeDashArray: 4 },
        markers: { size: 5, hover: { size: 7 } },
        xaxis: { categories: ['2021', '2022', '2023', '2024', '2025 Q1', '2025 Q2'], labels: { style: { colors: '#555', fontSize: '12px' } } },
        yaxis: { min: 70, max: 100, tickAmount: 5, labels: { style: { colors: '#555', fontSize: '12px' } } },
        fill: { type: 'gradient', gradient: { shade: 'light', gradientToColors: ['#00a1c2'], shadeIntensity: 0.8, type: 'vertical', opacityFrom: 0.8, opacityTo: 0.2, stops: [0, 100] } },
        tooltip: { y: { formatter: val => `${val}%` } }
      };
      const lineChart = new ApexCharts(lineChartElement, lineOptions);
      lineChart.render();

      // Strengths Chart
      const strengthsChartElement = document.querySelector("#strengthsChart");
      if (!strengthsChartElement) {
        console.error("strengthsChart element not found!");
        return;
      }
      const strengthsOptions = {
        series: [
          { name: '再発防止力', data: [90, 85, 95] },
          { name: '構成リセット', data: [85, 90, 80] },
          { name: '安定性', data: [80, 85, 90] }
        ],
        chart: { type: 'radar', height: 350, width: '100%', toolbar: { show: false } },
        xaxis: { categories: ['DDU', 'ISO上書き', 'PRO Edition'], labels: { style: { colors: ['#333', '#333', '#333'] } } },
        yaxis: { max: 100, tickAmount: 5, labels: { formatter: val => `${val}%` } },
        colors: ['#0071c2', '#00a1c2', '#42a5f5'],
        fill: { opacity: 0.3 }
      };
      const strengthsChart = new ApexCharts(strengthsChartElement, strengthsOptions);
      strengthsChart.render();

      // Comparison Chart
      const comparisonChartElement = document.querySelector("#comparisonChart");
      if (!comparisonChartElement) {
        console.error("comparisonChart element not found!");
        return;
      }
      const comparisonOptions = {
        series: [
          { name: '効果', data: [95, 90, 85, 70, 30] },
          { name: '難易度', data: [50, 80, 20, 80, 30] },
          { name: '実行時間', data: [20, 60, 10, 30, 30] }
        ],
        chart: { type: 'bar', height: 350, width: '100%', stacked: false, toolbar: { show: false } },
        plotOptions: { bar: { horizontal: true, barHeight: '80%' } },
        dataLabels: { enabled: false },
        xaxis: { title: { text: '評価スコア' }, max: 100 },
        yaxis: { categories: ['DDU', 'ISO上書き', 'PRO Edition', 'イベントログ監視', 'DISM/sfc'] },
        colors: ['#0071c2', '#00a1c2', '#42a5f5'],
        tooltip: { y: { formatter: val => `${val}%` } }
      };
      const comparisonChart = new ApexCharts(comparisonChartElement, comparisonOptions);
      comparisonChart.render();
    });
    window.addEventListener('load', () => {
      setupIntersectionObserver();
      updateScrollProgress();
    });
    window.addEventListener('scroll', updateScrollProgress);
    window.addEventListener('resize', () => {
      document.querySelectorAll('#successRateChart, #radarChart, #pieChart, #lineChart, #strengthsChart, #comparisonChart').forEach(el => {
        if (el) {
          const chart = ApexCharts.getChartByID(el.id);
          if (chart) chart.render();
        }
      });
    });
  </script>
</body>
</html>