{
  "version": 3,
  "sources": ["/cdn/shop/t/36/assets/tg-gss-main.js?flow=usage-first-20260824"],
  "sourcesContent": ["/* TITAN AI\u8A3A\u65AD \u672C\u4F53\u30B9\u30AF\u30EA\u30D7\u30C8\n   \u672C\u4F53 section \u304C Shopify \u306E 256KB \u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u5236\u9650\u306B\u9054\u3057\u305F\u305F\u3081\u5916\u90E8\u30A2\u30BB\u30C3\u30C8\u5316 (2026-07-24)\n   Liquid\u4F9D\u5B58\u306F section \u5074\u304C #gs-boot \u306B\u57CB\u3081\u308B JSON (window.__GS_BOOT) \u7D4C\u7531\u3067\u53D7\u3051\u53D6\u308B\n   - sid     : \u30BB\u30AF\u30B7\u30E7\u30F3\u56FA\u6709ID (\u30BB\u30EC\u30AF\u30BF\u7528)\n   - verb    : '\u76F8\u8AC7' or '\u8A3A\u65AD' (consult\u8A2D\u5B9A\u306B\u3088\u308B\u6587\u8A00\u5207\u66FF)\n   - imgBase : \u30B2\u30FC\u30E0\u753B\u50CF\u306Easset base URL\n   - catalog : Shopify\u5B9F\u5546\u54C1\u30AB\u30BF\u30ED\u30B0 */\n(function(){\n  var CFG = (window.__GS_BOOT || {});\n(function(){\n  function addRipple(btn, e) {\n    var rect = btn.getBoundingClientRect();\n    var ripple = document.createElement('span');\n    ripple.className = 'wz-ripple';\n    var size = Math.max(rect.width, rect.height);\n    ripple.style.width = ripple.style.height = size + 'px';\n    ripple.style.left = (e.clientX - rect.left - size/2) + 'px';\n    ripple.style.top = (e.clientY - rect.top - size/2) + 'px';\n    btn.appendChild(ripple);\n    setTimeout(function(){ ripple.remove(); }, 500);\n  }\n  document.querySelectorAll('.wz-btn-cta, .wz-btn-next, .wz-rbtn').forEach(function(btn){\n    btn.addEventListener('click', function(e){ addRipple(btn, e); });\n  });\n\n  document.getElementById('WzApp').addEventListener('click', function(e){\n    var btn = e.target.closest('.wz-rbtn');\n    if (!btn) return;\n    e.preventDefault();\n    var card = btn.closest('.wz-rcard');\n    if (card) { card.classList.add('wz-launching'); addRipple(btn, e); }\n    var href = btn.getAttribute('href');\n    setTimeout(function(){ if (href) window.location.href = href; }, 350);\n  });\n  document.getElementById('WzApp').addEventListener('error', function(e){\n    var img = e.target;\n    if (!img || !img.classList) return;\n    var isCaseThumb = img.classList.contains('gs-rank__case-thumb');\n    var isProductImage = img.classList.contains('gs-rank__img');\n    if (!isCaseThumb && !isProductImage) return;\n    var fallback = img.getAttribute('data-fallback-src') || '';\n    if (fallback && img.getAttribute('src') !== fallback) {\n      img.removeAttribute('data-fallback-src');\n      img.src = fallback;\n      return;\n    }\n    if (isCaseThumb) img.replaceWith(caseThumbPlaceholder());\n    else {\n      var productPlaceholder = document.createElement('div');\n      productPlaceholder.className = 'gs-rank__img gs-rank__img--none';\n      productPlaceholder.setAttribute('aria-hidden', 'true');\n      productPlaceholder.textContent = 'TITAN';\n      img.replaceWith(productPlaceholder);\n    }\n  }, true);\n  window.addEventListener('pageshow', function(){\n    document.querySelectorAll('.wz-launching').forEach(function(el){ el.classList.remove('wz-launching'); });\n  });\n\n  (function(){\n    var m = document.getElementById('wzMascot');\n    if (!m) return;\n    var srcDef = m.dataset.srcDefault, srcAlt = m.dataset.srcAlt;\n    var busy = false;\n    var preload = new Image(); preload.src = srcAlt;\n    function swapTo(src, duration) {\n      if (busy) return; busy = true; m.src = src;\n      if (duration) { setTimeout(function(){ m.src = srcDef; busy = false; }, duration); }\n      else { busy = false; }\n    }\n    m.addEventListener('click', function(){ swapTo(srcAlt, 2000); });\n    m.addEventListener('mouseenter', function(){ if (!busy) m.src = srcAlt; });\n    m.addEventListener('mouseleave', function(){ if (!busy) m.src = srcDef; });\n    setInterval(function(){ swapTo(srcAlt, 5000); }, 60000);\n  })();\n\n  var API = 'https://pc-ai-relay.vercel.app/api/chat';\n  var SESSION_KEY = 'wz_session_id';\n  var GUARD_KEY = 'wz_guard_v1';\n  var BLOCK_KEY = 'wz_blocked_v1';\n  var RATE_MS = 3000;\n  var SPAM_WINDOW = 60 * 1000;\n  var _SALT = 'T1t4nG#2025xQ';\n  function _djb2(s){var h=5381;for(var i=0;i<s.length;i++){h=((h<<5)+h+s.charCodeAt(i))>>>0;}return h.toString(36);}\n  function _sign(){var t=Math.floor(Date.now()/1000);return{_t:t,_k:_djb2(_SALT+':'+t)};}\n  var SPAM_LIMIT = 8;\n  var BLOCK_TTL = 24 * 60 * 60 * 1000;\n  var DIAG_HOUR_KEY = 'wz_diag_hour_v1';\n  var DIAG_HOUR_LIMIT = 10;\n  var DIAG_HOUR_WINDOW = 60 * 60 * 1000;\n  var GS_PRODUCT_CATALOG = CFG.catalog || [];\n\n  function checkDiagLimit() {\n    try {\n      var raw = localStorage.getItem(DIAG_HOUR_KEY);\n      var data = raw ? JSON.parse(raw) : { ts: [] };\n      var now = Date.now();\n      data.ts = (data.ts || []).filter(function(t){ return now - t < DIAG_HOUR_WINDOW; });\n      if (data.ts.length >= DIAG_HOUR_LIMIT) return false;\n      data.ts.push(now);\n      localStorage.setItem(DIAG_HOUR_KEY, JSON.stringify(data));\n      return true;\n    } catch(e) { return true; }\n  }\n  function getDiagRemaining() {\n    try {\n      var raw = localStorage.getItem(DIAG_HOUR_KEY);\n      var data = raw ? JSON.parse(raw) : { ts: [] };\n      var now = Date.now();\n      data.ts = (data.ts || []).filter(function(t){ return now - t < DIAG_HOUR_WINDOW; });\n      return Math.max(0, DIAG_HOUR_LIMIT - data.ts.length);\n    } catch(e) { return DIAG_HOUR_LIMIT; }\n  }\n\n  var sessionId = localStorage.getItem(SESSION_KEY);\n  if (!sessionId) { sessionId = 'wz_' + Math.random().toString(36).slice(2) + Date.now(); localStorage.setItem(SESSION_KEY, sessionId); }\n\n  function isBlocked() {\n    var raw = localStorage.getItem(BLOCK_KEY);\n    if (!raw) return false;\n    try { var o = JSON.parse(raw); if (Date.now() - (o.ts || 0) >= BLOCK_TTL) { localStorage.removeItem(BLOCK_KEY); return false; } return true; }\n    catch(e) { localStorage.removeItem(BLOCK_KEY); return false; }\n  }\n  function setBlocked() { localStorage.setItem(BLOCK_KEY, JSON.stringify({ts: Date.now()})); }\n  function getGuard() { try { return JSON.parse(localStorage.getItem(GUARD_KEY) || '{\"events\":[]}'); } catch(e) { return {events:[]}; } }\n  function checkAndRecordSpam() {\n    var now = Date.now(), g = getGuard();\n    g.events = (g.events || []).filter(function(t){ return now - t < SPAM_WINDOW; });\n    g.events.push(now);\n    localStorage.setItem(GUARD_KEY, JSON.stringify(g));\n    if (g.events.length > SPAM_LIMIT) { setBlocked(); return true; }\n    return false;\n  }\n\n  var lastCallTime = 0, calling = false;\n\n  var GAME_IMG_BASE = CFG.imgBase;\n  var GAMES = [\n    {k:'valorant',n:'VALORANT',short:'VALORANT',img:'game-valorant.png',genre:'fps'},\n    {k:'apex',n:'Apex Legends',short:'APEX LEGENDS',img:'game-apex.png',genre:'fps'},\n    {k:'fortnite',n:'Fortnite',short:'\u30D5\u30A9\u30FC\u30C8\u30CA\u30A4\u30C8',img:'game-fortnite.png',genre:'fps'},\n    {k:'gtav',n:'GTA V',short:'GTA V',img:'game-gta5.png',genre:'open'},\n    {k:'minecraft',n:'Minecraft',short:'\u30DE\u30A4\u30F3\u30AF\u30E9\u30D5\u30C8',img:'game-minecraft.png',genre:'sandbox'},\n    {k:'genshin',n:'\u539F\u795E',short:'\u539F\u795E',img:'game-genshin.png',genre:'mmo'},\n    {k:'mhwilds',n:'\u30E2\u30F3\u30B9\u30BF\u30FC\u30CF\u30F3\u30BF\u30FC\u30EF\u30A4\u30EB\u30BA',short:'MH WILDS',img:'game-mhwilds.png',genre:'action'},\n    {k:'sf6',n:'\u30B9\u30C8\u30EA\u30FC\u30C8\u30D5\u30A1\u30A4\u30BF\u30FC6',short:'STREET FIGHTER 6',img:'game-sf6.png',genre:'fight'},\n    {k:'cyberpunk',n:'Cyberpunk 2077',short:'CYBERPUNK 2077',img:'game-cyberpunk-2077.png',genre:'open'},\n    {k:'lol',n:'\u30EA\u30FC\u30B0\u30FB\u30AA\u30D6\u30FB\u30EC\u30B8\u30A7\u30F3\u30C9',short:'LoL',img:'game-lol.png',genre:'moba'},\n    {k:'bf6',n:'\u30D0\u30C8\u30EB\u30D5\u30A3\u30FC\u30EB\u30C96',short:'BATTLEFIELD 6',img:'game-bf6.png',genre:'fps'},\n    {k:'ark',n:'ARK',short:'ARK',img:'game-ark.png',genre:'sandbox'},\n    {k:'wuwa',n:'\u9CF4\u6F6E',short:'\u9CF4\u6F6E',img:'game-wuwa.png',genre:'mmo'},\n    {k:'tarkov',n:'Escape from Tarkov',short:'ESCAPE FROM TARKOV',img:'game-tarkov.png',genre:'fps'},\n    {k:'nte',n:'Neverness to Everness',short:'NTE',img:'game-nte.png',genre:'mmo'},\n    {k:'zzz',n:'\u30BC\u30F3\u30EC\u30B9\u30BE\u30FC\u30F3\u30BC\u30ED',short:'ZZZ',img:'game-zzz.png',genre:'action'},\n    {k:'forza6',n:'Forza Horizon 6',short:'FORZA HORIZON 6',img:'game-forza-horizon-6-v3.jpg',genre:'racing'},\n    {k:'meccha_chameleon',n:'\u3081\u3063\u3061\u3083\u30AB\u30E1\u30EC\u30AA\u30F3',short:'\u3081\u3063\u3061\u3083\u30AB\u30E1\u30EC\u30AA\u30F3',img:'game-meccha-chameleon-v3.jpg',genre:'party'},\n    {k:'beast_reincarnation',n:'Beast of Reincarnation',short:'BEAST OF REINCARNATION',img:'game-beast-of-reincarnation-v3.jpg',genre:'action'},\n    {k:'marvel_tokon',n:'MARVEL T\u014CKON: Fighting Souls',short:'MARVEL T\u014CKON',img:'game-marvel-tokon-v3.jpg',genre:'fight'}\n  ];\n\n  /* 2026-10-06: \u30B2\u30FC\u30E0\u5373\u63D0\u6848\uFF08sections/tg-game-quick-v1\uFF09\u304C\u540C\u3058\u5FC5\u8981\u6027\u80FD\u3068\u5546\u54C1\u7D5E\u308A\u8FBC\u307F\u3092\u4F7F\u3046\u305F\u3081\u306E\u8AAD\u307F\u53D6\u308A\u53E3\u3002 */\n  window.TGGameQuick = {\n    games: GAMES,\n    whitelist: function(L){ return buildGpuWhitelist(L); }\n  };\n\n  /* Time Spy\u57FA\u6E96\u3002\u89E3\u50CF\u5EA6\u30FB\u914D\u4FE1\u306E\u4E0B\u9650\u3068\u6BD4\u8F03\u3057\u3001\u6700\u3082\u91CD\u3044\u6761\u4EF6\u3092\u63A1\u7528\u3059\u308B */\n  var GAME_MIN_SCORES = {\n    valorant: {FHD:6000, WQHD:6000, '4K':7000},\n    apex: {FHD:8800, WQHD:10500, '4K':13900},\n    fortnite: {FHD:8800, WQHD:10500, '4K':13900},\n    gtav: {FHD:6278, WQHD:8800, '4K':10500},\n    minecraft: {FHD:6278, WQHD:8800, '4K':10500},\n    genshin: {FHD:6278, WQHD:8800, '4K':10500},\n    mhwilds: {FHD:13900, WQHD:17500, '4K':22500},\n    sf6: {FHD:8800, WQHD:10500, '4K':13900},\n    cyberpunk: {FHD:13900, WQHD:17500, '4K':27700},\n    lol: {FHD:6000, WQHD:6000, '4K':7000},\n    bf6: {FHD:13900, WQHD:17500, '4K':22500},\n    ark: {FHD:13900, WQHD:17500, '4K':22500},\n    wuwa: {FHD:10259, WQHD:13900, '4K':17500},\n    tarkov: {FHD:10259, WQHD:13900, '4K':17500},\n    nte: {FHD:13900, WQHD:17500, '4K':22500},\n    zzz: {FHD:7000, WQHD:8800, '4K':10500},\n    forza6: {FHD:11690, WQHD:15650, '4K':22500},\n    meccha_chameleon: {FHD:6000, WQHD:6000, '4K':7000},\n    beast_reincarnation: {FHD:11690, WQHD:15650, '4K':22500},\n    marvel_tokon: {FHD:8800, WQHD:10500, '4K':13900},\n    'Cyberpunk 2077': {FHD:13900, WQHD:17500, '4K':27700},\n    '\u30E2\u30F3\u30B9\u30BF\u30FC\u30CF\u30F3\u30BF\u30FC\u30EF\u30A4\u30EB\u30BA': {FHD:13900, WQHD:17500, '4K':22500},\n    'Forza Horizon 6': {FHD:11690, WQHD:15650, '4K':22500},\n    '\u3081\u3063\u3061\u3083\u30AB\u30E1\u30EC\u30AA\u30F3': {FHD:6000, WQHD:6000, '4K':7000},\n    'Beast of Reincarnation': {FHD:11690, WQHD:15650, '4K':22500},\n    'MARVEL T\u014CKON: Fighting Souls': {FHD:8800, WQHD:10500, '4K':13900},\n    'Black Myth: Wukong': {FHD:15200, WQHD:22500, '4K':27700},\n    'FF7 \u30EA\u30D0\u30FC\u30B9': {FHD:13900, WQHD:17500, '4K':22500}\n  };\n\n  /* AI-010: \u81EA\u7531\u5165\u529B\u30B5\u30B8\u30A7\u30B9\u30C8\u8F9E\u66F8 (\u8868\u8A18\u63FA\u308C\u5438\u53CE\u30FBGAMES\u5916\u306E\u4EBA\u6C17\u30BF\u30A4\u30C8\u30EB) */\n  var GAME_SUGGEST = [\n    {n:'Cyberpunk 2077', a:['cyberpunk','\u30B5\u30A4\u30D0\u30FC\u30D1\u30F3\u30AF','cyber','cp2077','\u30B5\u30A4\u30D1\u30F3']},\n    {n:'Apex Legends', a:['apex','\u30A8\u30FC\u30DA\u30C3\u30AF\u30B9','apexlegends']},\n    {n:'VALORANT', a:['valorant','\u30F4\u30A1\u30ED\u30E9\u30F3\u30C8','\u30F4\u30A1\u30ED','\u30D0\u30ED']},\n    {n:'Fortnite', a:['fortnite','\u30D5\u30A9\u30FC\u30C8\u30CA\u30A4\u30C8','\u30D5\u30A9\u30C8\u30CA']},\n    {n:'Minecraft', a:['minecraft','\u30DE\u30A4\u30F3\u30AF\u30E9\u30D5\u30C8','\u30DE\u30A4\u30AF\u30E9']},\n    {n:'\u539F\u795E', a:['genshin','\u539F\u795E','genshinimpact','\u3052\u3093\u3057\u3093']},\n    {n:'\u5D29\u58CA\uFF1A\u30B9\u30BF\u30FC\u30EC\u30A4\u30EB', a:['starrail','\u30B9\u30BF\u30FC\u30EC\u30A4\u30EB','\u5D29\u58CA','honkai','\u30B9\u30BF\u30EC']},\n    {n:'\u30BC\u30F3\u30EC\u30B9\u30BE\u30FC\u30F3\u30BC\u30ED', a:['zenless','zzz','\u30BC\u30F3\u30EC\u30B9','\u30BE\u30FC\u30F3\u30BC\u30ED']},\n    {n:'Forza Horizon 6', a:['forza','forza6','fh6','\u30D5\u30A9\u30EB\u30C4\u30A1','\u30D5\u30A9\u30EB\u30C4\u30A1\u30DB\u30E9\u30A4\u30BE\u30F36']},\n    {n:'\u3081\u3063\u3061\u3083\u30AB\u30E1\u30EC\u30AA\u30F3', a:['meccha','mecchachameleon','\u3081\u3063\u3061\u3083\u30AB\u30E1\u30EC\u30AA\u30F3','\u30E1\u30C3\u30C1\u30E3\u30AB\u30E1\u30EC\u30AA\u30F3','\u30AB\u30E1\u30EC\u30AA\u30F3']},\n    {n:'Beast of Reincarnation', a:['beast','beastofreincarnation','\u30D3\u30FC\u30B9\u30C8\u30AA\u30D6\u30EA\u30F3\u30AB\u30CD\u30FC\u30B7\u30E7\u30F3','\u30D3\u30FC\u30B9\u30C8','\u8F2A\u5EFB\u306E\u7363']},\n    {n:'MARVEL T\u014CKON: Fighting Souls', a:['marveltokon','marvel tokon','tokon','t\u014Dkon','\u30DE\u30FC\u30D9\u30EB\u30C8\u30FC\u30B3\u30F3','\u30C8\u30FC\u30B3\u30F3','fighting souls']},\n    {n:'\u9CF4\u6F6E', a:['wuwa','wutheringwaves','\u9CF4\u6F6E','\u306A\u308B\u3057\u304A','\u3081\u3044\u3061\u3087\u3046']},\n    {n:'FF14', a:['ff14','ffxiv','\u30D5\u30A1\u30A4\u30CA\u30EB\u30D5\u30A1\u30F3\u30BF\u30B8\u30FC14','\u30A8\u30AA\u30EB\u30BC\u30A2','ff 14']},\n    {n:'FF7 \u30EA\u30D0\u30FC\u30B9', a:['ff7','ff7rebirth','ff7r','rebirth','\u30D5\u30A1\u30A4\u30CA\u30EB\u30D5\u30A1\u30F3\u30BF\u30B8\u30FC7']},\n    {n:'\u30E2\u30F3\u30B9\u30BF\u30FC\u30CF\u30F3\u30BF\u30FC\u30EF\u30A4\u30EB\u30BA', a:['mhwilds','mhwl','wilds','\u30E2\u30F3\u30CF\u30F3\u30EF\u30A4\u30EB\u30BA','\u30E2\u30F3\u30CF\u30F3']},\n    {n:'\u30E2\u30F3\u30B9\u30BF\u30FC\u30CF\u30F3\u30BF\u30FC\u30E9\u30A4\u30BA', a:['mhrise','rise','\u30E2\u30F3\u30CF\u30F3\u30E9\u30A4\u30BA']},\n    {n:'\u30E2\u30F3\u30B9\u30BF\u30FC\u30CF\u30F3\u30BF\u30FC\u30EF\u30FC\u30EB\u30C9', a:['mhw','world','\u30E2\u30F3\u30CF\u30F3\u30EF\u30FC\u30EB\u30C9','\u30E2\u30F3\u30B9\u30BF\u30FC\u30CF\u30F3\u30BF\u30FC\u30EF\u30FC\u30EB\u30C9','worldiceborne','iceborne']},\n    {n:'ELDEN RING', a:['eldenring','elden','\u30A8\u30EB\u30C7\u30F3\u30EA\u30F3\u30B0','\u30A8\u30EB\u30C7\u30F3']},\n    {n:'Dark Souls III', a:['darksouls','\u30C0\u30AF\u30BD','ds3','dark souls']},\n    {n:'SEKIRO', a:['sekiro','\u96BB\u72FC','\u305B\u304D\u308D']},\n    {n:'Black Myth: Wukong', a:['wukong','blackmyth','\u9ED2\u795E\u8A71','\u609F\u7A7A']},\n    {n:'GTA V', a:['gta','gtav','gta5','grandtheftauto','\u30B0\u30E9\u30F3\u30C9\u30BB\u30D5\u30C8\u30AA\u30FC\u30C8']},\n    {n:'GTA VI', a:['gta6','gtavi','gta 6']},\n    {n:'Red Dead Redemption 2', a:['rdr2','reddead','\u30EC\u30C3\u30C9\u30C7\u30C3\u30C9','rdr']},\n    {n:'\u30B9\u30C8\u30EA\u30FC\u30C8\u30D5\u30A1\u30A4\u30BF\u30FC6', a:['sf6','streetfighter6','\u30B9\u30C8\u30D5\u30A1\u30A4','street fighter']},\n    {n:'\u9244\u62F38', a:['tekken','tekken8','\u9244\u62F3']},\n    {n:'\u30B9\u30DE\u30D6\u30E9SP', a:['smash','smashbros','\u30B9\u30DE\u30D6\u30E9','sb']},\n    {n:'Roblox', a:['roblox','\u30ED\u30D6\u30ED\u30C3\u30AF\u30B9']},\n    {n:'Among Us', a:['amongus','\u30A2\u30E2\u30A2\u30B9','\u30A2\u30E2\u30F3\u30B0\u30A2\u30B9']},\n    {n:'Counter-Strike 2', a:['cs2','counterstrike','\u30AB\u30A6\u30F3\u30BF\u30FC\u30B9\u30C8\u30E9\u30A4\u30AF','cs']},\n    {n:'Call of Duty: Modern Warfare III', a:['cod','codmw','callofduty','\u30B3\u30FC\u30EB \u30AA\u30D6 \u30C7\u30E5\u30FC\u30C6\u30A3','mw3','warzone']},\n    {n:'Overwatch 2', a:['overwatch','ow2','\u30AA\u30FC\u30D0\u30FC\u30A6\u30A9\u30C3\u30C1']},\n    {n:'Rainbow Six Siege', a:['r6','r6s','rainbowsix','\u30EC\u30A4\u30F3\u30DC\u30FC\u30B7\u30C3\u30AF\u30B9','\u30B7\u30FC\u30B8']},\n    {n:'Battlefield 2042', a:['bf','battlefield','\u30D0\u30C8\u30EB\u30D5\u30A3\u30FC\u30EB\u30C9','bf2042','bf6']},\n    {n:'PUBG', a:['pubg','pl\u30FC\u3073\u30FC','pubgmobile']},\n    {n:'Diablo IV', a:['diablo','diablo4','\u30C7\u30A3\u30A2\u30D6\u30ED']},\n    {n:'Lost Ark', a:['lostark','\u30ED\u30B9\u30C8\u30A2\u30FC\u30AF']},\n    {n:'Path of Exile 2', a:['poe','poe2','pathofexile','\u30D1\u30B9\u30AA\u30D6\u30A8\u30B0\u30B6\u30A4\u30EB']},\n    {n:'World of Warcraft', a:['wow','warcraft','worldofwarcraft','\u30EF\u30A6']},\n    {n:'League of Legends', a:['lol','leagueoflegends','\u30EA\u30FC\u30B0\u30AA\u30D6\u30EC\u30B8\u30A7\u30F3\u30C9']},\n    {n:'Dota 2', a:['dota','dota2','\u30C9\u30FC\u30BF']},\n    {n:'Marvel Rivals', a:['rivals','marvelrivals','\u30DE\u30FC\u30D9\u30EB\u30E9\u30A4\u30D0\u30EB\u30BA']},\n    {n:'Helldivers 2', a:['helldivers','helldivers2','\u30D8\u30EB\u30C0\u30A4\u30D0\u30FC','\u30D8\u30EB\u30C0\u30A4\u30D0\u30FC\u30BA']},\n    {n:'BALATRO', a:['balatro','\u30D0\u30E9\u30C8\u30ED']},\n    {n:'Stardew Valley', a:['stardew','stardewvalley','\u30B9\u30BF\u30FC\u30C7\u30E5\u30FC']},\n    {n:'Hogwarts Legacy', a:['hogwarts','hogwartslegacy','\u30DB\u30B0\u30EF\u30FC\u30C4']},\n    {n:'Starfield', a:['starfield','\u30B9\u30BF\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9']},\n    {n:'Baldurs Gate 3', a:['bg3','baldursgate','\u30D0\u30EB\u30C0\u30FC\u30BA\u30B2\u30FC\u30C8']},\n    {n:'Resident Evil 4 Remake', a:['re4','residentevil','\u30D0\u30A4\u30AA\u30CF\u30B6\u30FC\u30C9','re4remake']},\n    {n:'Diablo Immortal', a:['immortal','\u30C7\u30A3\u30A2\u30D6\u30ED\u30A4\u30E2\u30FC\u30BF\u30EB']},\n    {n:'\u30A6\u30DE\u5A18 \u30D7\u30EA\u30C6\u30A3\u30FC\u30C0\u30FC\u30D3\u30FC', a:['\u30A6\u30DE\u5A18','umamusume','umamusumeprettyderby']},\n    {n:'Wuthering Waves', a:['wuwa','wutheringwaves','\u9CF4\u6F6E']},\n    {n:'Phasmophobia', a:['phasmo','phasmophobia','\u30D5\u30A1\u30BA\u30E2']},\n    {n:'Palworld', a:['palworld','\u30D1\u30EB\u30EF\u30FC\u30EB\u30C9','\u30D1\u30EB']}\n  ];\n\n  var TOTAL = 4; /* \u8CEA\u554F\u306F4\u30B9\u30C6\u30C3\u30D7 (S1\u301CS4)\u3002S5\u306F\u78BA\u8A8D\u753B\u9762\u306A\u306E\u3067\u5225\u8868\u793A */\n  var LABELS = {\n    /* comfort */\n    fhd_smooth:'\u30D5\u30EBHD\u3067\u6ED1\u3089\u304B\u306B', wqhd_quality:'WQHD\u3067\u9AD8\u753B\u8CEA', '4k':'4K\u3067\u9AD8\u753B\u8CEA', vr:'VR\u3067\u904A\u3076', unsure:'\u304A\u3059\u3059\u3081\u306B\u4EFB\u305B\u308B',\n    /* 2026-08-17: casual \u304C\u672A\u5B9A\u7FA9\u3067\u300CGTA V \u3092 casual \u3067\u904A\u3076\u300D\u3068\u751F\u30AD\u30FC\u304C\u9732\u51FA\u3057\u3066\u3044\u305F */\n    casual:'\u30B2\u30FC\u30E0\u306F\u8EFD\u3081\u3067\u5341\u5206',\n    /* usage */\n    gaming_only:'\u30B2\u30FC\u30E0', streaming:'\u30B2\u30FC\u30E0\u914D\u4FE1', creation:'\u52D5\u753B\u7DE8\u96C6', ai_use:'\u751F\u6210AI\u30FB\u30ED\u30FC\u30AB\u30EBAI', work_study:'\u4ED5\u4E8B\u30FB\u5B66\u696D',\n    /* budget */\n    '0':'\u4E88\u7B97\u304A\u307E\u304B\u305B','150000':'10\u301C15\u4E07','200000':'15\u301C20\u4E07','250000':'20\u301C25\u4E07','300000':'25\u301C30\u4E07','999999':'30\u4E07\u4EE5\u4E0A',\n    /* buyMode */\n    'new':'\u65B0\u54C1\u306E\u307F', 'cheap':'\u5B89\u3055\u512A\u5148',\n    /* \u65E7 \u2192 \u4E92\u63DB (\u30B7\u30A7\u30A2\u30C6\u30AD\u30B9\u30C8\u7B49\u3067\u53C2\u7167) */\n    FHD:'\u30D5\u30EBHD', WQHD:'WQHD', '4K':'4K',\n    competitive:'\u9AD8fps\u512A\u5148', fps:'\u5FEB\u9069fps', quality:'\u9AD8\u753B\u8CEA', balance:'\u30D0\u30E9\u30F3\u30B9',\n    no:'\u3057\u306A\u3044', sometimes:'\u305F\u307E\u306B', yes:'\u304C\u3063\u3064\u308A', any:'\u3069\u3061\u3089\u3067\u3082OK'\n  };\n\n  /* \u65B0state */\n  var sel = {games:[], comfort:null, usage:null, usages:[], usageDetails:{}, budget:null, budgetMin:'0', budgetAnswered:false, buyMode:'new',\n    /* \u898B\u305F\u76EE\u306E\u5E0C\u671B(\u4EFB\u610F): rgb = yes|no|null, size = big|small|null */\n    look:{rgb:null, size:null}};\n\n  /* \u4E88\u7B97\u30B9\u30E9\u30A4\u30C0\u30FC\u5B9A\u6570 (max\u7AEF = \u4E0A\u9650\u306A\u3057) */\n  var BUDGET_MIN = 100000, BUDGET_MAX = 450000, BUDGET_STEP = 10000;\n\n  /* \u4E88\u7B97\u8868\u793A\u306E\u5171\u901A\u30D5\u30A9\u30FC\u30DE\u30C3\u30BF: LABELS\u56FA\u5B9A\u30DE\u30C3\u30D7\u306B\u4F9D\u5B58\u3057\u306A\u3044 */\n  function formatBudget(v){\n    var s = String(v == null ? '' : v);\n    if (s === '' ) return '\u672A\u8A2D\u5B9A';\n    if (s === '0' || s === '999999' || s === 'unlimited') return '\u4E88\u7B97\u4E0A\u9650\u306A\u3057';\n    var n = parseInt(s, 10);\n    if (!isFinite(n)) return '\u672A\u8A2D\u5B9A';\n    if (n >= BUDGET_MAX) return '\u4E88\u7B97\u4E0A\u9650\u306A\u3057';\n    return (n / 10000) + '\u4E07\u5186\u4EE5\u4E0B';\n  }\n\n  /* \u65E7wz_prev / \u65E7\u96E2\u6563\u5024\u304B\u3089\u306E\u6B63\u898F\u5316 */\n  function normalizeBudget(raw){\n    var s = String(raw == null ? '' : raw);\n    if (s === '0' || s === '999999' || s === 'unlimited') return { budget:'0', answered:true };\n    var n = parseInt(s, 10);\n    if (!isFinite(n)) return { budget:null, answered:false };\n    if (n >= BUDGET_MAX) return { budget:'0', answered:true };\n    if (n < BUDGET_MIN) n = BUDGET_MIN;\n    return { budget:String(n), answered:true };\n  }\n\n  /* \u65B0state \u2192 \u65E7\u5F62\u5F0F\u4E92\u63DB\u306E\u30EC\u30AC\u30B7\u30FC\u30D3\u30E5\u30FC (preImpossible/\u30D7\u30ED\u30F3\u30D7\u30C8 \u3067\u4F7F\u3046) */\n  function legacy() {\n    var resMap = {fhd_smooth:'FHD', wqhd_quality:'WQHD', '4k':'4K', vr:'WQHD', unsure:'FHD'};\n    var priMap = {fhd_smooth:'fps', wqhd_quality:'quality', '4k':'quality', vr:'quality', unsure:'balance'};\n    var strMap = {gaming_only:'no', streaming:'yes', creation:'sometimes', ai_use:'no', work_study:'no'};\n    var condMap = {new:'new', cheap:'new'};\n    /* usages\u304B\u3089\u4EE3\u8868\u5024\u62BD\u51FA (\u512A\u5148\u5EA6: ai_use > streaming > creation > work_study > gaming_only) */\n    var usagesList = (sel.usages && sel.usages.length) ? sel.usages : (sel.usage ? [sel.usage] : []);\n    var priority = ['ai_use','streaming','creation','work_study','gaming_only'];\n    var repUsage = null;\n    for (var pi = 0; pi < priority.length; pi++){\n      if (usagesList.indexOf(priority[pi]) >= 0){ repUsage = priority[pi]; break; }\n    }\n    return {\n      games: sel.games,\n      res: resMap[sel.comfort] || 'FHD',\n      pri: priMap[sel.comfort] || 'balance',\n      str: usagesList.indexOf('streaming') >= 0\n        ? 'yes'\n        : (usagesList.indexOf('creation') >= 0 ? 'sometimes' : 'no'),\n      usages: usagesList,\n      usageDetailUsage: activeUsageDetailType(usagesList),\n      usageDetailValue: sel.usageDetails && sel.usageDetails[activeUsageDetailType(usagesList)] || null,\n      usageDetailLabel: selectedUsageDetailLabel(usagesList),\n      bud: (!sel.budget || sel.budget === '0' || sel.budget === 0) ? 'unlimited' : sel.budget,\n      cond: condMap[sel.buyMode] || 'any'\n    };\n  }\n  var cur = 0;\n  var __budCeil = Infinity;\n  /* \u76F4\u8FD1\u306E\u8A3A\u65AD\u3067\u4F7F\u3063\u305F\u5FC5\u8981GPU\u30B9\u30B3\u30A2(Time Spy)\u3002\u7D50\u679C\u30AB\u30FC\u30C9\u306E\u6027\u80FD\u4F59\u88D5\u30D0\u30FC\u306B\u4F7F\u3046 */\n  var __minS = 0;\n  var root = document.getElementById('WzApp');\n  if (!root) return;\n\n  var $ = function(id){ return document.getElementById(id); };\n  var steps = root.querySelectorAll('.wz-s');\n  var bar = $('wzBar'), counter = $('wzCount');\n\n  var USAGE_DETAIL_COPY = {\n    ai_use: {\n      question: '\u4F7F\u3044\u305F\u3044AI\u30E2\u30C7\u30EB\u3084\u30BD\u30D5\u30C8\u306F\u3042\u308A\u307E\u3059\u304B\uFF1F',\n      label: '\u5E0C\u671B\u3059\u308BAI\u30FB\u30BD\u30D5\u30C8',\n      example: 'Stable Diffusion\u3001ComfyUI\u3001Ollama\u3001\u52D5\u304B\u3057\u305F\u3044\u30E2\u30C7\u30EB\u540D'\n    },\n    streaming: {\n      question: '\u914D\u4FE1\u3057\u305F\u3044\u30B2\u30FC\u30E0\u3084\u3001\u914D\u4FE1\u753B\u8CEA\u306E\u5E0C\u671B\u306F\u3042\u308A\u307E\u3059\u304B\uFF1F',\n      label: '\u914D\u4FE1\u5185\u5BB9',\n      example: 'OBS\u3067VALORANT\u3092\u30D5\u30EBHD\u30FB60fps\u914D\u4FE1\u3001YouTube'\n    },\n    creation: {\n      question: '\u7DE8\u96C6\u3059\u308B\u52D5\u753B\u306E\u89E3\u50CF\u5EA6\u3084\u3001\u4F7F\u7528\u30BD\u30D5\u30C8\u306F\u3042\u308A\u307E\u3059\u304B\uFF1F',\n      label: '\u7DE8\u96C6\u5185\u5BB9',\n      example: 'Premiere Pro\u30674K\u7DE8\u96C6\u3001TikTok\u52D5\u753B\u4E2D\u5FC3'\n    },\n    work_study: {\n      question: '\u3088\u304F\u4F7F\u3046\u30BD\u30D5\u30C8\u3084\u3001\u540C\u6642\u306B\u884C\u3046\u4F5C\u696D\u306F\u3042\u308A\u307E\u3059\u304B\uFF1F',\n      label: '\u4F7F\u7528\u30BD\u30D5\u30C8\u30FB\u4F5C\u696D\u5185\u5BB9',\n      example: 'Chrome\u3092\u591A\u304F\u958B\u304F\u3001Excel\u3001CAD'\n    },\n    gaming_only: {\n      question: '\u307B\u304B\u306B\u904A\u3073\u65B9\u306E\u5E0C\u671B\u306F\u3042\u308A\u307E\u3059\u304B\uFF1F',\n      label: '\u30B2\u30FC\u30E0\u306E\u8A73\u7D30',\n      example: 'MOD\u3092\u4F7F\u3046\u3001\u9332\u753B\u3082\u3059\u308B\u3001\u9759\u97F3\u91CD\u8996'\n    }\n  };\n\n  var USAGE_DETAIL_CONFIG = {\n    ai_use: {\n      question: 'AI\u3067\u4F55\u3092\u3057\u305F\u3044\u3067\u3059\u304B\uFF1F',\n      help: '\u4F7F\u3046\u30BD\u30D5\u30C8\u304C\u6C7A\u307E\u3063\u3066\u3044\u306A\u304F\u3066\u3082\u5927\u4E08\u592B\u3067\u3059\u3002\u8FD1\u3044\u3082\u306E\u30921\u3064\u9078\u3093\u3067\u304F\u3060\u3055\u3044\u3002',\n      options: [\n        ['ai_image_try', '\u753B\u50CF\u751F\u6210\u3092\u8A66\u3057\u3066\u307F\u305F\u3044'],\n        ['ai_image_pro', '\u9AD8\u89E3\u50CF\u5EA6\u30FB\u5927\u91CF\u306E\u753B\u50CF\u3092\u751F\u6210\u3057\u305F\u3044'],\n        ['ai_video_train', '\u52D5\u753B\u751F\u6210\u3084\u8FFD\u52A0\u5B66\u7FD2\u3082\u3057\u305F\u3044'],\n        ['ai_local_llm', '\u6587\u7AE0AI\u3092\u81EA\u5206\u306EPC\u3067\u52D5\u304B\u3057\u305F\u3044'],\n        ['ai_unsure', '\u307E\u3060\u6C7A\u3081\u3066\u3044\u306A\u3044\u30FB\u304A\u307E\u304B\u305B']\n      ]\n    },\n    creation: {\n      question: '\u3069\u3093\u306A\u52D5\u753B\u3092\u7DE8\u96C6\u3057\u307E\u3059\u304B\uFF1F',\n      help: '\u6271\u3046\u52D5\u753B\u306B\u6700\u3082\u8FD1\u3044\u3082\u306E\u30921\u3064\u9078\u3093\u3067\u304F\u3060\u3055\u3044\u3002',\n      options: [\n        ['edit_fhd_short', '\u30D5\u30EBHD\u306E\u77ED\u3044\u52D5\u753B\u3092\u7DE8\u96C6\u3059\u308B'],\n        ['edit_daily_4k', 'YouTube\u5411\u3051\u306B\u30D5\u30EBHD\u301C4K\u3092\u65E5\u5E38\u7684\u306B\u7DE8\u96C6\u3059\u308B'],\n        ['edit_heavy_4k', '4K\u4EE5\u4E0A\u30FB\u9577\u5C3A\u30FB\u30A8\u30D5\u30A7\u30AF\u30C8\u591A\u3081'],\n        ['edit_unsure', '\u307E\u3060\u6C7A\u3081\u3066\u3044\u306A\u3044\u30FB\u304A\u307E\u304B\u305B']\n      ]\n    },\n    streaming: {\n      question: '\u914D\u4FE1\u30B9\u30BF\u30A4\u30EB\u306B\u8FD1\u3044\u3082\u306E\u306F\u3069\u308C\u3067\u3059\u304B\uFF1F',\n      help: '\u914D\u4FE1\u3068\u540C\u6642\u306B\u884C\u3046\u4F5C\u696D\u3092\u57FA\u6E96\u306B\u9078\u3093\u3067\u304F\u3060\u3055\u3044\u3002',\n      options: [\n        ['stream_fhd_game', '\u30B2\u30FC\u30E0\u3092\u3057\u306A\u304C\u3089\u30D5\u30EBHD\u3067\u914D\u4FE1'],\n        ['stream_advanced', '\u9AD8\u753B\u8CEA\u30FB\u8907\u6570\u30AB\u30E1\u30E9\u30FB\u51DD\u3063\u305F\u753B\u9762\u3067\u914D\u4FE1'],\n        ['stream_talk', '\u96D1\u8AC7\u30FB\u9854\u51FA\u3057\u4E2D\u5FC3'],\n        ['stream_unsure', '\u307E\u3060\u6C7A\u3081\u3066\u3044\u306A\u3044\u30FB\u304A\u307E\u304B\u305B']\n      ]\n    },\n    work_study: {\n      question: 'PC\u3067\u3088\u304F\u4F7F\u3046\u4F5C\u696D\u306F\u3069\u308C\u3067\u3059\u304B\uFF1F',\n      help: '\u6700\u3082\u8CA0\u8377\u304C\u9AD8\u305D\u3046\u306A\u4F5C\u696D\u30921\u3064\u9078\u3093\u3067\u304F\u3060\u3055\u3044\u3002',\n      options: [\n        ['work_office', 'Office\u30FB\u30D6\u30E9\u30A6\u30B6\u30FB\u30AA\u30F3\u30E9\u30A4\u30F3\u4F1A\u8B70'],\n        ['work_multitask', '\u4F1A\u8B70\u3092\u3057\u306A\u304C\u3089\u8907\u6570\u306E\u4F5C\u696D'],\n        ['work_heavy', 'CAD\u30FB3D\u30FB\u30A4\u30E9\u30B9\u30C8\u30FB\u958B\u767A'],\n        ['work_light', '\u7279\u306B\u91CD\u3044\u4F5C\u696D\u306F\u3057\u306A\u3044']\n      ]\n    }\n  };\n\n  function activeUsageDetailType(usages){\n    usages = Array.isArray(usages) ? usages : [];\n    var priority = ['ai_use', 'creation', 'streaming', 'work_study'];\n    for (var i = 0; i < priority.length; i++){\n      if (usages.indexOf(priority[i]) >= 0) return priority[i];\n    }\n    return null;\n  }\n\n  function selectedUsageDetailLabel(usages){\n    var usage = activeUsageDetailType(usages);\n    var value = usage && sel.usageDetails ? sel.usageDetails[usage] : null;\n    var config = usage && USAGE_DETAIL_CONFIG[usage];\n    if (!value || !config) return '';\n    var option = config.options.find(function(item){ return item[0] === value; });\n    return option ? (LABELS[usage] + ': ' + option[1]) : '';\n  }\n\n  function updateUsageDetailChoices(){\n    var block = $('gsUsageDetail');\n    var question = $('gsUsageDetailQuestion');\n    var help = $('gsUsageDetailHelp');\n    var options = $('gsUsageDetailOptions');\n    if (!block || !question || !help || !options) return;\n\n    var usages = (sel.usages && sel.usages.length) ? sel.usages.slice() : (sel.usage ? [sel.usage] : []);\n    var usage = activeUsageDetailType(usages);\n    var config = usage && USAGE_DETAIL_CONFIG[usage];\n    if (!config){\n      block.hidden = true;\n      options.innerHTML = '';\n      return;\n    }\n\n    block.hidden = false;\n    block.dataset.usage = usage;\n    question.textContent = config.question;\n    help.textContent = config.help;\n    var selected = sel.usageDetails && sel.usageDetails[usage];\n    options.innerHTML = config.options.map(function(item){\n      var isOn = item[0] === selected;\n      return '<button type=\"button\" class=\"gs-usage-detail__opt' + (isOn ? ' is-on' : '') + '\" data-usage-detail=\"' + item[0] + '\" aria-pressed=\"' + (isOn ? 'true' : 'false') + '\">' + esc(item[1]) + '</button>';\n    }).join('');\n  }\n\n  function updateUsageDetailPrompt(){\n    var station = root.querySelector('.gs-station[data-station=\"budget\"]');\n    var request = $('wzRequest');\n    if (!station || !request) return;\n\n    var usages = (sel.usages && sel.usages.length) ? sel.usages.slice() : (sel.usage ? [sel.usage] : []);\n    var question = station.querySelector('.gs-station__q');\n    var help = station.querySelector('.gs-station__help');\n    var label = station.querySelector('label[for=\"wzRequest\"]');\n    var questionText = '\u4E88\u7B97\u3084\u898B\u305F\u76EE\u306A\u3069\u3001\u5E0C\u671B\u6761\u4EF6\u306F\u3042\u308A\u307E\u3059\u304B\uFF1F';\n    var helpText = '\u6307\u5B9A\u3057\u305F\u6761\u4EF6\u3092\u5019\u88DC\u9078\u3073\u306B\u53CD\u6620\u3057\u307E\u3059\u3002\u672A\u6307\u5B9A\u3067\u3082\u8A3A\u65AD\u3067\u304D\u307E\u3059\u3002';\n    var labelText = '\u305D\u306E\u4ED6\u306E\u5E0C\u671B';\n    var placeholder = '\u4F8B\uFF1A\u9759\u97F3\u91CD\u8996\u3001\u30E1\u30E2\u30EA32GB\u3001\u767D\u3044\u30B1\u30FC\u30B9';\n\n    if (usages.length === 1 && USAGE_DETAIL_COPY[usages[0]]) {\n      var copy = USAGE_DETAIL_COPY[usages[0]];\n      questionText = copy.question;\n      helpText = '\u5206\u304B\u308B\u7BC4\u56F2\u3067\u5165\u529B\u3059\u308B\u3068\u3001\u5FC5\u8981\u306A\u6027\u80FD\u3092\u3088\u308A\u6B63\u78BA\u306B\u63D0\u6848\u3067\u304D\u307E\u3059\u3002\u672A\u6307\u5B9A\u3067\u3082\u8A3A\u65AD\u3067\u304D\u307E\u3059\u3002';\n      labelText = copy.label;\n      placeholder = '\u4F8B\uFF1A' + copy.example;\n    } else if (usages.length > 1) {\n      questionText = '\u4F7F\u3044\u305F\u3044\u30BD\u30D5\u30C8\u3084\u3001\u4F5C\u696D\u5185\u5BB9\u3092\u6559\u3048\u3066\u304F\u3060\u3055\u3044\u3002';\n      helpText = '\u7528\u9014\u3054\u3068\u306E\u4F7F\u3044\u65B9\u3092\u5206\u304B\u308B\u7BC4\u56F2\u3067\u5165\u529B\u3059\u308B\u3068\u3001\u5FC5\u8981\u306A\u6027\u80FD\u3092\u3088\u308A\u6B63\u78BA\u306B\u63D0\u6848\u3067\u304D\u307E\u3059\u3002';\n      labelText = '\u7528\u9014\u306E\u8A73\u7D30';\n      var examples = usages.map(function(usage){\n        return USAGE_DETAIL_COPY[usage] ? USAGE_DETAIL_COPY[usage].example : '';\n      }).filter(Boolean).slice(0, 2);\n      if (examples.length) placeholder = '\u4F8B\uFF1A' + examples.join('\uFF0F');\n    }\n\n    questionText = '\u7528\u9014\u306B\u5408\u308F\u305B\u3066\u3001\u5E0C\u671B\u6761\u4EF6\u3092\u6559\u3048\u3066\u304F\u3060\u3055\u3044\u3002';\n    helpText = '\u7528\u9014\u306E\u8A73\u3057\u3055\u3001\u4E88\u7B97\u3001\u898B\u305F\u76EE\u3092\u5019\u88DC\u9078\u3073\u306B\u53CD\u6620\u3057\u307E\u3059\u3002\u672A\u6307\u5B9A\u3067\u3082\u8A3A\u65AD\u3067\u304D\u307E\u3059\u3002';\n\n    if (question) question.textContent = questionText;\n    if (help) help.textContent = helpText;\n    if (label) {\n      var textNode = Array.prototype.find.call(label.childNodes, function(node){ return node.nodeType === 3; });\n      if (textNode) textNode.nodeValue = labelText + ' ';\n    }\n    request.placeholder = placeholder;\n    updateUsageDetailChoices();\n  }\n\n  function gameName(k) { var g = GAMES.find(function(x){return x.k===k;}); return g ? g.n : k; }\n\n  function setPitIntroLoading(isLoading){\n    [\n      ['.gs-pit__intro-tag', '\u8A3A\u65AD\u4E2D'],\n      ['.gs-pit__intro-title', '\u304A\u3059\u3059\u3081\u3092\u9078\u3093\u3067\u3044\u307E\u3059'],\n      ['.gs-pit__intro-guide', '\u56DE\u7B54\u5185\u5BB9\u3068\u3001\u8CA9\u58F2\u4E2D\u306E\u30E2\u30C7\u30EB\u3092\u7167\u5408\u3057\u3066\u3044\u307E\u3059\u3002']\n    ].forEach(function(item){\n      var el = root.querySelector(item[0]);\n      if (!el) return;\n      if (isLoading){\n        if (!el.dataset.gsIdleText) el.dataset.gsIdleText = el.textContent;\n        el.textContent = item[1];\n      } else if (el.dataset.gsIdleText){\n        el.textContent = el.dataset.gsIdleText;\n        delete el.dataset.gsIdleText;\n      }\n    });\n  }\n\n  /* \u30ED\u30FC\u30C9\u6F14\u51FA\u306E\u8868\u793A\u5236\u5FA1 */\n  function showLoader(){\n    var loader = document.getElementById('gsLoader');\n    if (!loader) return;\n    loader.hidden = false;\n    loader.removeAttribute('hidden');\n    loader.classList.remove('is-hidden');\n    loader.setAttribute('aria-hidden', 'false');\n    /* AI\u5F85\u3061\u4E2D\u306F\u5165\u529B\u30A6\u30A3\u30B6\u30FC\u30C9\u3092\u96A0\u3059(\u8CEA\u554F\u3068\u9032\u6357\u304C\u4E8C\u91CD\u306B\u898B\u3048\u308B\u305F\u3081) */\n    var pitEl = document.getElementById('gsPit');\n    if (pitEl) pitEl.classList.add('is-loading');\n    setPitIntroLoading(true);\n    runPitLoader();\n    /* \u30DC\u30FC\u30C9\u81EA\u4F53\u3092\u30ED\u30FC\u30C7\u30A3\u30F3\u30B0\u72B6\u614B\u306B + \u8868\u793A */\n    var board = root.querySelector('.gs-board');\n    if (board){\n      board.classList.add('is-loading');\n      board.style.display = '';\n    }\n    /* CTA \u3092\u5909\u8EAB */\n    var cta = document.getElementById('wzDiagnose');\n    if (cta){\n      cta.disabled = true;\n      var m = cta.querySelector('.gs-pit__cta-main');\n      var s = cta.querySelector('.gs-pit__cta-sub');\n      if (m){ cta.dataset.origMain = m.textContent; m.textContent = '\u8A3A\u65AD\u4E2D\u2026'; }\n      if (s){ cta.dataset.origSub = s.textContent; s.textContent = '\u4E0A\u306E\u9032\u6357\u3092\u3054\u89A7\u304F\u3060\u3055\u3044'; }\n    }\n  }\n  function hideLoader(){\n    var loader = document.getElementById('gsLoader');\n    if (!loader) return;\n    loader.hidden = true;\n    loader.setAttribute('hidden', '');\n    loader.classList.add('is-hidden');\n    loader.setAttribute('aria-hidden', 'true');\n    var pitEl2 = document.getElementById('gsPit');\n    if (pitEl2) pitEl2.classList.remove('is-loading');\n    setPitIntroLoading(false);\n    resetPitLoader();\n    var board = root.querySelector('.gs-board');\n    if (board){\n      board.classList.remove('is-loading');\n      if (board.classList.contains('gs-board--loaderonly')) board.style.display = 'none';\n    }\n    /* CTA \u6587\u5B57\u3092\u5143\u306B\u623B\u3059 */\n    var cta = document.getElementById('wzDiagnose');\n    if (cta && cta.dataset.origMain){\n      var m = cta.querySelector('.gs-pit__cta-main');\n      var s = cta.querySelector('.gs-pit__cta-sub');\n      if (m) m.textContent = cta.dataset.origMain;\n      if (s) s.textContent = cta.dataset.origSub;\n      delete cta.dataset.origMain;\n      delete cta.dataset.origSub;\n    }\n  }\n\n  /* PIT LANE: 1\u753B\u9762\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u578B\u306A\u306E\u3067 go(n) \u306F\u6700\u5C0F\u9650\u3002\n     - n=6: PIT\u672C\u4F53\u3092\u96A0\u3057\u3066\u30ED\u30FC\u30C9\u6F14\u51FA\u3092\u51FA\u3059\n     - n=7: \u30ED\u30FC\u30C9\u3092\u96A0\u3057\u3066\u7D50\u679CS7\u3092\u8868\u793A\n     - n=0/1\u301C5: PIT\u672C\u4F53\u3092\u8868\u793A\u72B6\u614B\u306B\u623B\u3059 (\u518D\u8A3A\u65AD\u306E\u30EA\u30BB\u30C3\u30C8) */\n  function go(n) {\n    cur = n;\n    var pit = document.getElementById('gsPit');\n    var loader = document.getElementById('gsLoader');\n    var results = root.querySelector('[data-s=\"7\"]');\n    if (pit){ pit.style.display = (n === 7) ? 'none' : ''; }\n    if (loader){\n      if (n === 6) showLoader();\n      else hideLoader();\n    }\n    /* \u7D50\u679C\u30B9\u30C6\u30C3\u30D7 active \u30AF\u30E9\u30B9\u3067\u30A2\u30CB\u30E1\u30FC\u30B7\u30E7\u30F3 */\n    if (results){\n      results.classList.remove('active','wz-slide-back');\n      if (n === 7) results.classList.add('active');\n    }\n    /* \u30B9\u30C6\u30C3\u30D7\u30A4\u30F3\u30B8\u30B1\u30FC\u30BF\u30FC\u66F4\u65B0: 01=\u5165\u529B(0\u301C5)\u300102=AI\u89E3\u6790(6)\u300103=\u7D50\u679C(7) */\n    (function(){\n      var s1=$('gsStep1'), s2=$('gsStep2'), s3=$('gsStep3');\n      [s1,s2,s3].forEach(function(s){ if (s) s.classList.remove('is-active','is-done'); });\n      if (n <= 5){ if (s1) s1.classList.add('is-active'); }\n      else if (n === 6){ if (s1) s1.classList.add('is-done'); if (s2) s2.classList.add('is-active'); }\n      else if (n === 7){ if (s1) s1.classList.add('is-done'); if (s2) s2.classList.add('is-done'); if (s3) s3.classList.add('is-active'); }\n    })();\n    /* \u30B9\u30AF\u30ED\u30FC\u30EB\u8ABF\u6574:\n       - n=6 (\u30ED\u30FC\u30C9) \u306F PIT LANE \u30DC\u30FC\u30C9 (loader\u542B\u3080) \u3092\u753B\u9762\u4E2D\u592E\u4ED8\u8FD1\u306B\u51FA\u3059\n       - n=7 (\u7D50\u679C) \u306F\u7D50\u679C\u30BB\u30AF\u30B7\u30E7\u30F3\u3092\u753B\u9762\u306B\u5165\u308C\u308B */\n    if (n === 6) {\n      var board3 = root.querySelector('.gs-board');\n      if (board3){\n        var rectB = board3.getBoundingClientRect();\n        var inViewB = rectB.top >= 0 && rectB.top <= window.innerHeight * 0.3;\n        if (!inViewB){\n          window.scrollTo({top: rectB.top + window.scrollY - 60, behavior:'smooth'});\n        }\n      }\n    } else if (n === 7 && results) {\n      var rect = results.getBoundingClientRect();\n      var inView = rect.top >= 0 && rect.top <= window.innerHeight * 0.5;\n      if (!inView){\n        window.scrollTo({top: rect.top + window.scrollY - 24, behavior:'smooth'});\n      }\n      requestAnimationFrame(function(){\n        var resultTitle = $('wzResultTitle');\n        if (resultTitle) resultTitle.focus({ preventScroll: true });\n      });\n    }\n  }\n\n  /* \u8868\u793A\u4E2D\u306E%\u3068\u540C\u3058\u3057\u304D\u3044\u5024\u3067\u3001\u78BA\u8A8D\u9805\u76EE\u3092 active \u2192 locked \u306B\u9032\u3081\u308B\u3002 */\n  function resetPitLoader(){\n    root.querySelectorAll('.gs-loader__lamp').forEach(function(el){\n      el.classList.remove('is-active','is-locked');\n      var st = el.querySelector('.gs-loader__state'); if (st) st.textContent = '\u2026';\n    });\n  }\n  function syncPitLoaderToPct(pct, complete){\n    var locksAt = [30, 55, 80];\n    root.querySelectorAll('.gs-loader__lamp').forEach(function(el, idx){\n      var locked = complete || (idx < locksAt.length && pct >= locksAt[idx]);\n      var active = !locked && (idx === 0 || pct >= locksAt[idx - 1]);\n      el.classList.toggle('is-locked', locked);\n      el.classList.toggle('is-active', active);\n      var st = el.querySelector('.gs-loader__state');\n      if (st) st.textContent = locked ? '\u78BA\u8A8D\u6E08\u307F' : (active ? '\u78BA\u8A8D\u4E2D' : '\u2026');\n    });\n  }\n  function runPitLoader(){\n    resetPitLoader();\n    syncPitLoaderToPct(0, false);\n  }\n\n  function finishPitLoader(){\n    syncPitLoaderToPct(100, true);\n  }\n\n  /* \u65E7 wzStart \u4E92\u63DB (\u524D\u56DE\u8A3A\u65AD\u30E2\u30FC\u30C0\u30EB\u7B49\u3067\u4F7F\u7528)\u3002PIT\u7248\u3067\u306F1\u753B\u9762\u306A\u306E\u3067\u4F55\u3082\u3057\u306A\u3044 */\n  var startBtn = $('wzStart'); if (startBtn) startBtn.addEventListener('click', function(){ /* noop */ });\n\n  /* Windows\u30D5\u30EC\u30FC\u30E0\u306F\u64A4\u53BB\u6E08\u307F\u306E\u305F\u3081 close \u30CF\u30F3\u30C9\u30E9\u4E0D\u8981 */\n\n  var gGrid = $('wzGames');\n  /* \u30B2\u30FC\u30E0\u30A2\u30FC\u30C8\u30BF\u30A4\u30EB\u751F\u6210: 16:9 \u30C0\u30FC\u30AF\u80CC\u666F + tone\u8272\u30B0\u30E9\u30C7 + \u4E2D\u592E\u30BF\u30A4\u30C8\u30EB\n     \u30E2\u30D0\u30A4\u30EB\u521D\u671F\u8868\u793A\u306F\u4E0A\u4F4D4\u30BF\u30A4\u30C8\u30EB\u3001\u305D\u308C\u4EE5\u964D\u306F data-extra=\"1\" \u3067 hidden (AI-012) */\n  var GAME_INITIAL_MOBILE = 4;\n  gGrid.innerHTML = GAMES.map(function(g, idx){\n    var genre = g.genre || 'other';\n    var label = g.short || g.n;\n    var extra = idx >= GAME_INITIAL_MOBILE ? ' data-extra=\"1\"' : '';\n    var imgUrl = g.img ? (GAME_IMG_BASE + g.img) : '';\n    var loading = idx < GAME_INITIAL_MOBILE ? 'eager' : 'lazy';\n    return '<button class=\"wz-tile gs-tile gs-art gs-art--photo\" data-gk=\"'+g.k+'\" data-genre=\"'+genre+'\"'+extra+' type=\"button\" aria-label=\"'+label+'\" aria-pressed=\"false\">'\n      + (imgUrl ? '<img class=\"gs-art__img\" src=\"'+imgUrl+'\" alt=\"\" loading=\"'+loading+'\" decoding=\"async\" width=\"640\" height=\"360\">' : '<span class=\"gs-art__bg\" aria-hidden=\"true\"></span>')\n      + '<span class=\"gs-art__shade\" aria-hidden=\"true\"></span>'\n      + '<span class=\"gs-art__label gs-art__label--sr\">'+label+'</span>'\n      + '<span class=\"gs-art__check\" aria-hidden=\"true\"></span>'\n      + '</button>';\n  }).join('');\n  /* \u30E2\u30D0\u30A4\u30EB\u6642\u306E\u300C\u3082\u3063\u3068\u898B\u308B\u300D\u5C55\u958B\u30C8\u30B0\u30EB */\n  (function(){\n    var moreBtn = document.getElementById('gsGameExpand');\n    if (!moreBtn) return;\n    var expanded = false;\n    moreBtn.addEventListener('click', function(){\n      expanded = !expanded;\n      gGrid.classList.toggle('is-expanded', expanded);\n      moreBtn.textContent = expanded ? '\u30B2\u30FC\u30E0\u4E00\u89A7\u3092\u9589\u3058\u308B' : '\u30B2\u30FC\u30E0\u3092\u3082\u3063\u3068\u898B\u308B\uFF08\u6B8B\u308A'+(GAMES.length - GAME_INITIAL_MOBILE)+'\u4EF6\uFF09';\n      moreBtn.setAttribute('aria-expanded', expanded ? 'true' : 'false');\n    });\n    moreBtn.textContent = '\u30B2\u30FC\u30E0\u3092\u3082\u3063\u3068\u898B\u308B\uFF08\u6B8B\u308A'+(GAMES.length - GAME_INITIAL_MOBILE)+'\u4EF6\uFF09';\n  })();\n\n  function syncGames() {\n    gGrid.querySelectorAll('.wz-tile').forEach(function(t){\n      var selected = sel.games.indexOf(t.dataset.gk) >= 0;\n      t.classList.toggle('on', selected);\n      t.setAttribute('aria-pressed', selected ? 'true' : 'false');\n    });\n    var custom = sel.games.filter(function(k){ return !GAMES.some(function(g){return g.k===k;}); });\n    $('wzGameChips').innerHTML = custom.map(function(k){ return '<span class=\"wz-chip gs-chip\">'+esc(k)+'<button type=\"button\" class=\"wz-chip-x gs-chip-x\" data-rm=\"'+esc(k)+'\" aria-label=\"'+esc(k)+'\u3092\u9078\u629E\u304B\u3089\u524A\u9664\">\u00D7</button></span>'; }).join('');\n    /* PIT LANE: \u65E7 wzN1 disabled \u306F\u4E0D\u8981\u3002\u65B0\u30B9\u30C6\u30FC\u30C8\u95A2\u6570\u3092\u547C\u3076 */\n    if (typeof updateStationStates === 'function') updateStationStates();\n    if (typeof updateLiveMeter === 'function') updateLiveMeter();\n    if (typeof updateCtaState === 'function') updateCtaState();\n    /* \u4E92\u63DB: \u65E7 wzN1 \u304C\u5B58\u5728\u3059\u308C\u3070 disabled \u5236\u5FA1 */\n    var n1 = $('wzN1'); if (n1) n1.disabled = sel.games.length === 0;\n  }\n\n  function syncChoiceControls(){\n    root.querySelectorAll('.gs-opt-list[data-field]').forEach(function(grid){\n      var field = grid.dataset.field;\n      grid.querySelectorAll('.gs-opt, .wz-opt').forEach(function(opt){\n        var selected = field === 'usage'\n          ? sel.usages.indexOf(opt.dataset.v) >= 0\n          : sel[field] === opt.dataset.v;\n        opt.classList.toggle('on', selected);\n        opt.setAttribute('aria-pressed', selected ? 'true' : 'false');\n      });\n    });\n    root.querySelectorAll('.gs-look__opt').forEach(function(btn){\n      var group = btn.getAttribute('data-look-group');\n      var selected = !!group && sel.look[group] === btn.getAttribute('data-look-val');\n      btn.classList.toggle('is-on', selected);\n      btn.setAttribute('aria-pressed', selected ? 'true' : 'false');\n    });\n  }\n\n  gGrid.addEventListener('click', function(e){\n    var t = e.target.closest('[data-gk]'); if (!t) return;\n    var k = t.dataset.gk, i = sel.games.indexOf(k);\n    if (i >= 0) sel.games.splice(i, 1); else { sel.games.push(k); t.classList.add('wz-just-selected'); setTimeout(function(){ t.classList.remove('wz-just-selected'); }, 250); }\n    syncGames();\n  });\n  $('wzGameChips').addEventListener('click', function(e){ var rm = e.target.dataset.rm; if (!rm) return; var i = sel.games.indexOf(rm); if (i >= 0) sel.games.splice(i, 1); syncGames(); });\n  $('wzGameAdd').addEventListener('click', function(){\n    var inp = $('wzGameInput'), v = inp.value.trim();\n    if (v && sel.games.indexOf(v) < 0) { sel.games.push(v); inp.value = ''; hideSuggest(); syncGames(); }\n  });\n  $('wzGameInput').addEventListener('keydown', function(e){\n    if (e.key === 'Enter') { e.preventDefault(); $('wzGameAdd').click(); }\n    else if (e.key === 'Escape') { hideSuggest(); }\n  });\n  /* AI-010: \u5165\u529B\u30E9\u30A4\u30D6\u30B5\u30B8\u30A7\u30B9\u30C8 */\n  (function(){\n    var inp = $('wzGameInput');\n    var list = document.getElementById('gsSuggestList');\n    if (!inp || !list) return;\n    function norm(s){ return String(s||'').toLowerCase().replace(/\\s+/g,'').replace(/[\u30FC\uFF0D\u2014\\-]/g,''); }\n    function search(q){\n      var nq = norm(q); if (!nq) return [];\n      var hits = [];\n      for (var i = 0; i < GAME_SUGGEST.length && hits.length < 6; i++){\n        var g = GAME_SUGGEST[i];\n        var keys = [g.n].concat(g.a || []).map(norm);\n        var matched = false;\n        for (var j = 0; j < keys.length; j++){\n          if (keys[j].indexOf(nq) >= 0){ matched = true; break; }\n        }\n        if (matched) hits.push(g.n);\n      }\n      return hits;\n    }\n    function render(items){\n      if (!items.length){ hideSuggest(); return; }\n      list.innerHTML = items.map(function(n){\n        return '<li class=\"gs-suggest-item\" role=\"option\" tabindex=\"0\">'+n.replace(/</g,'&lt;')+'</li>';\n      }).join('');\n      list.hidden = false;\n    }\n    function hideSuggest(){ list.hidden = true; list.innerHTML = ''; }\n    window.__gsHideSuggest = hideSuggest;\n    inp.addEventListener('input', function(){\n      var v = this.value.trim();\n      if (v.length === 0){ hideSuggest(); return; }\n      render(search(v));\n    });\n    list.addEventListener('click', function(e){\n      var li = e.target.closest('.gs-suggest-item'); if (!li) return;\n      inp.value = li.textContent;\n      hideSuggest();\n      inp.focus();\n    });\n    inp.addEventListener('blur', function(){\n      setTimeout(hideSuggest, 150);\n    });\n  })();\n  function hideSuggest(){ if (window.__gsHideSuggest) window.__gsHideSuggest(); }\n  $('wzN1').addEventListener('click', function(){ go(2); });\n\n  (function(){\n    var hints = {};\n    root.querySelectorAll('.wz-nav').forEach(function(nav){\n      var btn = nav.querySelector('.wz-btn-next');\n      if (!btn) return;\n      var h = document.createElement('div'); h.className = 'wz-nav-hint'; h.textContent = '\u9078\u629E\u3059\u308B\u3068\u6B21\u3078\u9032\u3081\u307E\u3059';\n      nav.appendChild(h); hints[btn.id] = h;\n    });\n    function updateHints(){ Object.keys(hints).forEach(function(id){ var btn = $(id); if (btn) hints[id].classList.toggle('show', btn.disabled); }); }\n    new MutationObserver(updateHints).observe(root, {subtree:true, attributes:true, attributeFilter:['disabled']});\n    updateHints();\n  })();\n\n  $('wzGameMore').addEventListener('click', function(){ $('wzGameOther').style.display = ''; this.style.display = 'none'; $('wzGameInput').focus(); });\n\n  /* PIT LANE: \u5404\u30B9\u30C6\u30FC\u30B7\u30E7\u30F3\u306E\u9078\u629E\u30A4\u30D9\u30F3\u30C8\u3002\u9078\u629E\u3054\u3068\u306B LIVE METER \u66F4\u65B0 + CTA \u72B6\u614B\u66F4\u65B0\n     - data-multi=\"1\" \u306E grid \u306F\u8907\u6570\u9078\u629E\u30C8\u30B0\u30EB\u3002usage \u306F usages[] \u306B\u3082\u53CD\u6620 */\n  root.querySelectorAll('.gs-opt-list[data-field]').forEach(function(grid){\n    var field = grid.dataset.field;\n    var isMulti = grid.dataset.multi === '1';\n    grid.addEventListener('click', function(e){\n      var opt = e.target.closest('.gs-opt, .wz-opt'); if (!opt) return;\n      var v = opt.dataset.v;\n      if (isMulti){\n        /* \u8907\u6570\u9078\u629E\u30C8\u30B0\u30EB */\n        if (field === 'usage'){\n          if (!Array.isArray(sel.usages)) sel.usages = [];\n          var idx = sel.usages.indexOf(v);\n          if (idx >= 0){ sel.usages.splice(idx, 1); opt.classList.remove('on'); opt.setAttribute('aria-pressed', 'false'); }\n          else { sel.usages.push(v); opt.classList.add('on'); opt.setAttribute('aria-pressed', 'true'); opt.classList.add('wz-just-selected'); }\n          /* \u4EE3\u8868\u5024\u3092 sel.usage \u306B\u4FDD\u6301: \u512A\u5148\u5EA6 ai_use > streaming > creation > work_study > gaming_only */\n          var priority = ['ai_use','streaming','creation','work_study','gaming_only'];\n          var picked = null;\n          for (var i = 0; i < priority.length; i++){\n            if (sel.usages.indexOf(priority[i]) >= 0){ picked = priority[i]; break; }\n          }\n          sel.usage = picked;\n        } else {\n          /* \u4ED6\u306Emulti field\u306F\u6C4E\u7528\u51E6\u7406 (\u4ECA\u306F\u306A\u3044\u304C\u62E1\u5F35\u7528) */\n          sel[field] = v;\n        }\n      } else {\n        /* \u5358\u4E00\u9078\u629E */\n        sel[field] = v;\n        grid.querySelectorAll('.gs-opt, .wz-opt').forEach(function(o){ o.classList.remove('on'); o.setAttribute('aria-pressed', 'false'); });\n        opt.classList.add('on'); opt.setAttribute('aria-pressed', 'true'); opt.classList.add('wz-just-selected');\n      }\n      setTimeout(function(){ opt.classList.remove('wz-just-selected'); }, 250);\n      updateStationStates();\n      updateLiveMeter();\n      updateCtaState();\n      /* AI-015: \u9078\u629E\u30A4\u30D9\u30F3\u30C8 */\n      if (typeof pushGA === 'function') pushGA('ai_diag_select', { field: field, value: v });\n    });\n  });\n  (function(){\n    var options = $('gsUsageDetailOptions');\n    if (!options) return;\n    options.addEventListener('click', function(e){\n      var button = e.target.closest ? e.target.closest('.gs-usage-detail__opt') : null;\n      var block = $('gsUsageDetail');\n      var usage = block && block.dataset.usage;\n      var value = button && button.getAttribute('data-usage-detail');\n      if (!button || !usage || !value) return;\n      if (!sel.usageDetails) sel.usageDetails = {};\n      sel.usageDetails[usage] = value;\n      options.querySelectorAll('.gs-usage-detail__opt').forEach(function(option){\n        var selected = option === button;\n        option.classList.toggle('is-on', selected);\n        option.setAttribute('aria-pressed', selected ? 'true' : 'false');\n      });\n      updateLiveMeter();\n      if (typeof pushGA === 'function') pushGA('ai_diag_select', { field:'usage_detail_' + usage, value:value });\n    });\n  })();\n  /* \u898B\u305F\u76EE\u306E\u5E0C\u671B(\u4EFB\u610F) 2026-08-17\n     \u540C\u3058\u5024\u3092\u3082\u3046\u4E00\u5EA6\u62BC\u3059\u3068\u89E3\u9664\u3067\u304D\u308B(\u4EFB\u610F\u9805\u76EE\u306A\u306E\u3067\u53D6\u308A\u6D88\u305B\u308B\u5FC5\u8981\u304C\u3042\u308B)\u3002 */\n  (function(){\n    var wrap = document.querySelector('[data-field-look]');\n    if(!wrap) return;\n    wrap.addEventListener('click', function(e){\n      var btn = e.target.closest ? e.target.closest('.gs-look__opt') : null;\n      if(!btn || !wrap.contains(btn)) return;\n      var group = btn.getAttribute('data-look-group');\n      var val = btn.getAttribute('data-look-val');\n      if(!group || !val) return;\n      var isOn = btn.classList.contains('is-on');\n      wrap.querySelectorAll('.gs-look__opt[data-look-group=\"' + group + '\"]')\n        .forEach(function(b){ b.classList.remove('is-on'); b.setAttribute('aria-pressed','false'); });\n      if(isOn){\n        sel.look[group] = null;               /* \u518D\u30AF\u30EA\u30C3\u30AF\u3067\u89E3\u9664 */\n      } else {\n        btn.classList.add('is-on');\n        btn.setAttribute('aria-pressed','true');\n        sel.look[group] = val;\n      }\n      if (typeof pushGA === 'function') pushGA('ai_diag_select', { field:'look_' + group, value: sel.look[group] || 'none' });\n    });\n  })();\n\n  /* \u4E88\u7B97\u30B9\u30E9\u30A4\u30C0\u30FC: \u4E0B\u9650/\u4E0A\u9650\u306E2\u672C (2026-08-17)\n     - \u52D5\u304B\u3059\u307E\u3067\u306F budgetAnswered=false = \u4E88\u7B97\u6761\u4EF6\u306A\u3057\u3067\u8A3A\u65AD\u3059\u308B\n       (\u521D\u671F\u5024\u304C\u5165\u3063\u3066\u3044\u308B\u3068\u89E6\u3063\u3066\u3044\u306A\u3044\u306E\u306B20\u4E07\u5186\u6307\u5B9A\u306B\u898B\u3048\u3066\u3057\u307E\u3046)\n     - \u4E0B\u9650\u306F sel.budgetMin \u306B\u4FDD\u6301\u3002\u4E0A\u9650\u3092\u8D85\u3048\u306A\u3044\u3088\u3046\u30AF\u30E9\u30F3\u30D7\u3059\u308B */\n  (function(){\n    var range = $('gsBudgetRange');\n    var rangeMin = $('gsBudgetMin');\n    var valueEl = $('gsBudgetValue');\n    var pair = $('gsBudgetPair');\n    if (!range) return;\n\n    /* \u9078\u629E\u7BC4\u56F2(\u4E0B\u9650\u301C\u4E0A\u9650)\u3092\u89AA\u306E1\u672C\u30D0\u30FC\u306B\u5857\u308B */\n    function paintTrack(){\n      if(!pair) return;\n      function pct(v){ return ((v - BUDGET_MIN) / (BUDGET_MAX - BUDGET_MIN)) * 100; }\n      var lo = rangeMin ? pct(parseInt(rangeMin.value, 10)) : 0;\n      var hi = pct(parseInt(range.value, 10));\n      if (lo > hi) { var t = lo; lo = hi; hi = t; }\n      pair.style.setProperty('--gs-lo', lo + '%');\n      pair.style.setProperty('--gs-hi', hi + '%');\n    }\n\n    /* \u8868\u793A\u6587: \u4E0B\u9650/\u4E0A\u9650\u306E\u7D44\u307F\u5408\u308F\u305B\u3067\u51FA\u3057\u5206\u3051\u308B */\n    function budgetLabel(){\n      if (!sel.budgetAnswered) return '\u6307\u5B9A\u306A\u3057';\n      var lo = parseInt(sel.budgetMin, 10) || 0;\n      var hiRaw = parseInt(range.value, 10);\n      var noHi = hiRaw >= BUDGET_MAX;\n      if (lo <= BUDGET_MIN && noHi) return '\u6307\u5B9A\u306A\u3057';\n      if (lo <= BUDGET_MIN) return formatBudget(sel.budget);\n      if (noHi) return (lo / 10000) + '\u4E07\u5186\u4EE5\u4E0A';\n      return (lo / 10000) + '\u4E07\u301C' + (hiRaw / 10000) + '\u4E07\u5186';\n    }\n\n    function syncBudgetUI(){\n      paintTrack();\n      if (!valueEl) return;\n      var unset = !sel.budgetAnswered;\n      var txt = budgetLabel();\n      valueEl.textContent = txt;\n      valueEl.classList.toggle('is-unset', unset);\n      range.classList.toggle('is-unset', unset);\n      if (rangeMin) rangeMin.classList.toggle('is-unset', unset);\n      if (pair) pair.classList.toggle('is-unset', unset);\n      range.setAttribute('aria-valuetext', txt);\n      if (rangeMin) rangeMin.setAttribute('aria-valuetext', txt);\n    }\n    window.__gsSyncBudgetUI = syncBudgetUI;\n\n    /* max\u7AEF\u306F\u300C\u4E0A\u9650\u306A\u3057\u300D= \u5185\u90E8\u7684\u306B '0' (legacy()\u304C unlimited \u306B\u5909\u63DB) */\n    function readRange(){\n      var n = parseInt(range.value, 10);\n      return (n >= BUDGET_MAX) ? '0' : String(n);\n    }\n\n    /* \u4E0B\u9650\u304C\u4E0A\u9650\u3092\u8FFD\u3044\u8D8A\u3055\u306A\u3044\u3088\u3046\u306B\u3059\u308B(1\u30B9\u30C6\u30C3\u30D7\u5206\u306E\u9593\u9694\u3092\u78BA\u4FDD) */\n    function clamp(movedMin){\n      if (!rangeMin) return;\n      var lo = parseInt(rangeMin.value, 10);\n      var hi = parseInt(range.value, 10);\n      if (lo <= hi - BUDGET_STEP) return;\n      if (movedMin) range.value = Math.min(BUDGET_MAX, lo + BUDGET_STEP);\n      else rangeMin.value = Math.max(BUDGET_MIN, hi - BUDGET_STEP);\n    }\n\n    function commit(movedMin, fire){\n      clamp(movedMin);\n      sel.budget = readRange();\n      sel.budgetMin = String(rangeMin ? (parseInt(rangeMin.value, 10) || 0) : 0);\n      sel.budgetAnswered = true;\n      syncBudgetUI();\n      updateStationStates();\n      if (fire) updateLiveMeter();\n      updateCtaState();\n      if (fire && typeof pushGA === 'function'){\n        pushGA('ai_diag_select', { field:'budget', value: sel.budgetMin + '-' + sel.budget });\n      }\n    }\n\n    range.addEventListener('input',  function(){ commit(false, false); });\n    range.addEventListener('change', function(){ commit(false, true); });\n    if (rangeMin){\n      rangeMin.addEventListener('input',  function(){ commit(true, false); });\n      rangeMin.addEventListener('change', function(){ commit(true, true); });\n    }\n    syncBudgetUI();\n  })();\n\n  /* \u65E7 wz-btn-back / wz-btn-next \u306F PIT LANE \u3067\u306F\u4E0D\u8981\u3060\u304C\u3001\u5FF5\u306E\u305F\u3081\u30D5\u30A9\u30FC\u30EB\u30D0\u30C3\u30AF */\n  root.querySelectorAll('.wz-btn-back[data-go]').forEach(function(btn){\n    btn.addEventListener('click', function(){ go(parseInt(this.dataset.go) || 0); });\n  });\n\n  /* \u30B9\u30C6\u30FC\u30B7\u30E7\u30F3\u5145\u8DB3\u30B9\u30C6\u30FC\u30C8 (\u5DE6\u306E\u8D64\u30E9\u30A4\u30F3\u70B9\u706F) */\n  function selectedUsageList(){\n    return (sel.usages && sel.usages.length) ? sel.usages : (sel.usage ? [sel.usage] : []);\n  }\n  function requiresGameProfile(){\n    var usageList = selectedUsageList();\n    return usageList.indexOf('gaming_only') >= 0 || usageList.indexOf('streaming') >= 0;\n  }\n  function updateStationStates(){\n    updateUsageDetailPrompt();\n    var hasUsage = (sel.usages && sel.usages.length > 0) || !!sel.usage;\n    var needsGame = requiresGameProfile();\n    var stations = {\n      title:  !needsGame || sel.games.length > 0,\n      comfort: !needsGame || !!sel.comfort,\n      usage:   hasUsage,\n      budget:  sel.budgetAnswered\n    };\n    Object.keys(stations).forEach(function(k){\n      var el = root.querySelector('.gs-station[data-station=\"'+k+'\"]');\n      if (el) el.classList.toggle('is-filled', stations[k]);\n    });\n    if (typeof window.__gsWizRefresh === 'function') window.__gsWizRefresh();\n    var seal = root.querySelector('.gs-pit__seal');\n    var filledCount = Object.keys(stations).filter(function(k){ return stations[k]; }).length;\n    var allReady = filledCount === 4;\n    if (seal){\n      seal.classList.toggle('is-ready', allReady);\n      var label = seal.querySelector('.gs-pit__seal-label');\n      if (label) label.textContent = allReady ? '\u6E96\u5099OK' : ('\u5165\u529B ' + filledCount + ' / 4');\n    }\n  }\n\n  /* LIVE METER: \u9078\u629E\u5185\u5BB9\u304B\u3089 GPU/CPU/RAM/\u51B7\u5374 \u306E\u5FC5\u8981\u5EA6\u3092\u6982\u7B97\u3057\u3066\u30D0\u30FC\u53CD\u6620 */\n  function updateLiveMeter(){\n    /* \u30D0\u30FC\u8981\u7D20\u304C\u5B58\u5728\u3057\u306A\u3051\u308C\u3070\u65E9\u671Freturn (\u30DC\u30FC\u30C9\u7C21\u7D20\u5316\u6E08\u307F) */\n    if (!document.getElementById('gsBarFillGpu')) return;\n    /* \u4F55\u3082\u9078\u3093\u3067\u306A\u3044\u6642\u306F\u30D7\u30EC\u30FC\u30B9\u30DB\u30EB\u30C0\u8868\u793A\u306B\u3057\u3066\u300C\u672A\u78BA\u5B9A\u611F\u300D\u3092\u51FA\u3059 */\n    var hasAnyInput = sel.games.length > 0 || sel.comfort || sel.usage || sel.budget;\n    var board = document.querySelector('#tg-gss-' + CFG.sid + ' .gs-board');\n    if (board) board.classList.toggle('is-pristine', !hasAnyInput);\n    if (!hasAnyInput){\n      ['Gpu','Cpu','Ram','Cool'].forEach(function(p){\n        var fill = document.getElementById('gsBarFill'+p);\n        var val  = document.getElementById('gsBarVal'+p);\n        if (fill) fill.style.width = '0%';\n        if (val) val.textContent = '\u2014';\n      });\n      var statusEl0 = document.getElementById('gsMeterStatus');\n      if (statusEl0) statusEl0.textContent = '\u672A\u9078\u629E';\n      var sumEl0 = document.getElementById('gsMeterSummary');\n      if (sumEl0) sumEl0.innerHTML = '<p class=\"gs-meter__hint\">\u904A\u3076\u30B2\u30FC\u30E0\u3068\u753B\u8CEA\u3092\u9078\u3076\u3068\u3053\u3053\u306B\u76EE\u5B89\u304C\u51FA\u307E\u3059</p>';\n      return;\n    }\n    /* \u57FA\u6E96\u5024 */\n    var gpu = 15, cpu = 15, ram = 15, cool = 15;\n    /* \u30B2\u30FC\u30E0\u6570 (\u91CD\u307F\u3065\u3051): 1\u672C\u3054\u3068\u306B+8\u30014\u672C\u4EE5\u4E0A\u306F\u98FD\u548C */\n    var gn = Math.min(sel.games.length, 6);\n    gpu += gn * 6;\n    cpu += gn * 3;\n    /* \u91CD\u3044\u30BF\u30A4\u30C8\u30EB\u540D\u304B\u3089\u63A8\u6E2C (\u7C21\u6613) */\n    var heavyKeywords = ['cyberpunk','cyber','elden','starfield','mhwilds','wilds','\u9ED2\u795E\u8A71','mh wilds'];\n    var aaaCount = 0;\n    sel.games.forEach(function(k){\n      var s = String(k).toLowerCase();\n      if (heavyKeywords.some(function(h){ return s.indexOf(h) >= 0; })) aaaCount++;\n    });\n    gpu += aaaCount * 8;\n    /* \u753B\u8CEA */\n    if (sel.comfort === 'fhd_smooth')   { gpu += 18; cpu += 12; cool += 8; }\n    else if (sel.comfort === 'wqhd_quality') { gpu += 32; cpu += 14; cool += 14; }\n    else if (sel.comfort === '4k')      { gpu += 50; cpu += 18; cool += 22; ram += 8; }\n    else if (sel.comfort === 'vr')      { gpu += 42; cpu += 16; cool += 16; ram += 12; }\n    else if (sel.comfort === 'unsure')  { gpu += 22; cpu += 12; cool += 10; }\n    else if (sel.comfort === 'casual')  { gpu += 5;  cpu += 8;  cool += 4; }\n    /* \u7528\u9014 (\u8907\u6570\u53EF): \u8EF8\u3054\u3068\u306E\u6700\u5927\u5024\u3092\u63A1\u7528\u3057\u3001\u7528\u9014\u6570\u3060\u3051\u3067\u904E\u5270\u52A0\u7B97\u3057\u306A\u3044 */\n    var usageList = (sel.usages && sel.usages.length) ? sel.usages : (sel.usage ? [sel.usage] : []);\n    var uGpu = 0, uCpu = 0, uRam = 0, uCool = 0;\n    usageList.forEach(function(u){\n      var detail = sel.usageDetails && sel.usageDetails[u];\n      var profile = {gpu:0, cpu:0, ram:0, cool:0};\n      if (u === 'streaming') profile = detail === 'stream_talk'\n        ? {gpu:0, cpu:10, ram:8, cool:6}\n        : detail === 'stream_advanced'\n          ? {gpu:14, cpu:28, ram:22, cool:16}\n          : {gpu:8, cpu:18, ram:12, cool:10};\n      else if (u === 'creation') profile = detail === 'edit_fhd_short'\n        ? {gpu:4, cpu:15, ram:10, cool:6}\n        : detail === 'edit_heavy_4k'\n          ? {gpu:18, cpu:35, ram:32, cool:18}\n          : {gpu:8, cpu:25, ram:22, cool:8};\n      else if (u === 'ai_use') profile = detail === 'ai_image_try'\n        ? {gpu:14, cpu:10, ram:22, cool:10}\n        : detail === 'ai_video_train' || detail === 'ai_local_llm'\n          ? {gpu:28, cpu:22, ram:32, cool:22}\n          : {gpu:18, cpu:12, ram:30, cool:14};\n      else if (u === 'work_study') profile = detail === 'work_heavy'\n        ? {gpu:8, cpu:22, ram:22, cool:8}\n        : detail === 'work_multitask'\n          ? {gpu:0, cpu:12, ram:18, cool:0}\n          : {gpu:0, cpu:6, ram:8, cool:0};\n      uGpu = Math.max(uGpu, profile.gpu);\n      uCpu = Math.max(uCpu, profile.cpu);\n      uRam = Math.max(uRam, profile.ram);\n      uCool = Math.max(uCool, profile.cool);\n    });\n    /* \u7528\u9014\u7531\u6765\u306E\u88DC\u6B63\u5024\u306B\u4E0A\u9650\u3092\u8A2D\u5B9A */\n    uGpu  = Math.min(uGpu, 35);\n    uCpu  = Math.min(uCpu, 35);\n    uRam  = Math.min(uRam, 32);\n    uCool = Math.min(uCool, 22);\n    gpu += uGpu; cpu += uCpu; ram += uRam; cool += uCool;\n    /* \u4E88\u7B97 (\u30AD\u30E3\u30C3\u30D7) */\n    var bud = parseInt(sel.budget || 0);\n    var cap = 100;\n    if (bud === 150000) cap = 55;\n    else if (bud === 200000) cap = 68;\n    else if (bud === 250000) cap = 80;\n    else if (bud === 300000) cap = 90;\n    else if (bud === 999999) cap = 100;\n    gpu = Math.min(gpu, cap);\n    cpu = Math.min(cpu, cap);\n    ram = Math.min(ram, cap);\n    cool = Math.min(cool, cap);\n    /* \u53CD\u6620 */\n    var setBar = function(prefix, pct, label){\n      var fill = document.getElementById('gsBarFill' + prefix);\n      var val  = document.getElementById('gsBarVal'  + prefix);\n      if (fill) fill.style.width = Math.max(8, Math.round(pct)) + '%';\n      if (val) val.textContent = label;\n    };\n    setBar('Gpu', gpu, gpuLabel(gpu));\n    setBar('Cpu', cpu, cpuLabel(cpu));\n    setBar('Ram', ram, ramLabel(ram));\n    setBar('Cool', cool, coolLabel(cool));\n    /* \u30B9\u30C6\u30FC\u30BF\u30B9\u30C6\u30AD\u30B9\u30C8 */\n    var statusEl = document.getElementById('gsMeterStatus');\n    var allReady = sel.games.length && sel.comfort && sel.usage;\n    if (statusEl) statusEl.textContent = allReady ? '\u6E96\u5099OK' : '\u9078\u3076\u3068\u52D5\u304D\u307E\u3059';\n    /* \u8981\u7D04\u30B3\u30E1\u30F3\u30C8 */\n    var sumEl = document.getElementById('gsMeterSummary');\n    if (sumEl){\n      var lines = [];\n      if (sel.games.length && sel.comfort){\n        lines.push('<p class=\"gs-meter__line\">\u60F3\u5B9A: ' + (LABELS[sel.comfort] || sel.comfort) + ' \u3067' + sel.games.length + '\u672C\u306E\u30BF\u30A4\u30C8\u30EB</p>');\n      }\n      {\n        var extraUsages = (sel.usages && sel.usages.length)\n          ? sel.usages.filter(function(u){ return u !== 'gaming_only'; })\n          : (sel.usage && sel.usage !== 'gaming_only' ? [sel.usage] : []);\n        if (extraUsages.length){\n          var extraLabels = extraUsages.map(function(u){ return LABELS[u]||u; }).join(' / ');\n          lines.push('<p class=\"gs-meter__line\">\u4ED8\u52A0\u7528\u9014: ' + extraLabels + '</p>');\n        }\n      }\n      if (sel.budgetAnswered){\n        lines.push('<p class=\"gs-meter__line\">\u4E88\u7B97\u4E0A\u9650: ' + formatBudget(sel.budget) + '</p>');\n      }\n      if (!lines.length) lines.push('<p class=\"gs-meter__hint\">\u904A\u3076\u30B2\u30FC\u30E0\u3068\u753B\u8CEA\u3092\u9078\u3076\u3068\u3053\u3053\u306B\u76EE\u5B89\u304C\u51FA\u307E\u3059</p>');\n      sumEl.innerHTML = lines.join('');\n    }\n  }\n  function gpuLabel(p){ if (p>=85) return 'RTX 4070 Ti\u301C\u7D1A'; if (p>=70) return 'RTX 4070\u7D1A'; if (p>=55) return 'RTX 4060 Ti\u7D1A'; if (p>=40) return 'RTX 4060\u7D1A'; return '\u30A8\u30F3\u30C8\u30EA\u30FC'; }\n  function cpuLabel(p){ if (p>=80) return 'Ryzen 7 7800X3D'; if (p>=60) return 'Ryzen 7 7700'; if (p>=45) return 'Ryzen 7 5700X'; return 'Ryzen 5 5500'; }\n  function ramLabel(p){ if (p>=70) return '32GB'; if (p>=40) return '16GB+'; return '16GB'; }\n  function coolLabel(p){ if (p>=70) return '\u7A7A\u51B7\u5F37\u5316\u301C\u6C34\u51B7'; if (p>=45) return '\u7A7A\u51B7\u5F37\u5316'; return '\u6A19\u6E96\u7A7A\u51B7'; }\n\n  /* CTA \u6709\u52B9/\u7121\u52B9\u3068\u6587\u8A00 + \u9032\u6357\u30D0\u30FC */\n  function updateCtaState(){\n    var btn = $('wzDiagnose'); if (!btn) return;\n    var hint = $('gsCtaHint');\n    var fill = $('gsCtaProgress');\n    var hasUsage = (sel.usages && sel.usages.length > 0) || !!sel.usage;\n    var checks = requiresGameProfile()\n      ? [hasUsage, sel.games.length > 0, !!sel.comfort]\n      : [hasUsage];\n    var done = checks.filter(Boolean).length;\n    var total = checks.length;\n    var remain = total - done;\n    var ready = remain === 0;\n    btn.disabled = !ready;\n    if (fill){\n      var pct = Math.round((done / total) * 100);\n      fill.style.width = pct + '%';\n      fill.classList.toggle('is-full', ready);\n    }\n    if (hint){\n      if (ready) {\n        hint.innerHTML = '<span style=\"color:var(--pit-mag);font-weight:700;\">\u5FC5\u9808\u9805\u76EE\u306E\u9078\u629E\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F</span>';\n      } else {\n        hint.innerHTML = '\u5FC5\u9808\u9805\u76EE\u3092\u3042\u3068 <span id=\"gsCtaCount\">' + remain + '</span> \u3064\u9078\u3093\u3067\u304F\u3060\u3055\u3044';\n      }\n    }\n  }\n\n  /* \u30C8\u30C3\u30D7\u306E\u7528\u9014\u30AB\u30FC\u30C9\u304B\u3089\u6E21\u3055\u308C\u305F\u5024\u3092\u8CEA\u554F3\u3078\u53CD\u6620\u3059\u308B\u3002\n     DOM\u306E\u898B\u305F\u76EE\u3060\u3051\u3067\u306A\u304Fstate\u3082\u5148\u306B\u66F4\u65B0\u3057\u3001\u30A6\u30A3\u30B6\u30FC\u30C9\u306E\u5FC5\u9808\u5224\u5B9A\u306B\u3082\u540C\u671F\u3059\u308B\u3002 */\n  (function applyUsageFromQuery(){\n    var requestedUsage = null;\n    try {\n      requestedUsage = new URLSearchParams(location.search).get('usage');\n    } catch(e) {\n      return;\n    }\n    var allowedUsages = ['gaming_only', 'streaming', 'creation', 'ai_use', 'work_study'];\n    if (allowedUsages.indexOf(requestedUsage) < 0) return;\n    sel.usages = [requestedUsage];\n    sel.usage = requestedUsage;\n    syncChoiceControls();\n  })();\n\n  /* \u30B9\u30C6\u30C3\u30D7\u30A6\u30A3\u30B6\u30FC\u30C9\u3002\n     \u6700\u521D\u306B\u7528\u9014\u3092\u78BA\u8A8D\u3057\u3001\u30B2\u30FC\u30E0/\u30B2\u30FC\u30E0\u914D\u4FE1\u306A\u3089\u30BF\u30A4\u30C8\u30EB\u3068\u753B\u8CEA\u3092\u8FFD\u52A0\u3067\u8CEA\u554F\u3059\u308B\u3002\n     \u52D5\u753B\u7DE8\u96C6\u30FB\u751F\u6210AI\u30FB\u4ED5\u4E8B\u3060\u3051\u306E\u4EBA\u3092\u30B2\u30FC\u30E0\u9078\u629E\u3067\u6B62\u3081\u306A\u3044\u3002 */\n  (function(){\n    var wiz = document.getElementById('gsWiz');\n    if (!wiz) return;\n    function buildOrder(){\n      return requiresGameProfile()\n        ? ['usage', 'title', 'comfort', 'budget']\n        : ['usage', 'budget'];\n    }\n    var ORDER = buildOrder();\n    var backBtn = document.getElementById('gsWizBack');\n    var nextBtn = document.getElementById('gsWizNext');\n    var navEl = document.getElementById('gsWizNav');\n    var labelEl = document.getElementById('gsWizLabel');\n    var fillEl = document.getElementById('gsWizFill');\n    var step = 0;\n    function stationFilled(key){\n      if (key === 'title') return !requiresGameProfile() || sel.games.length > 0;\n      if (key === 'comfort') return !requiresGameProfile() || !!sel.comfort;\n      if (key === 'usage') return (sel.usages && sel.usages.length > 0) || !!sel.usage;\n      return true; /* budget \u306F\u4EFB\u610F */\n    }\n    function render(scroll){\n      ORDER = buildOrder();\n      if (step >= ORDER.length) step = ORDER.length - 1;\n      wiz.querySelectorAll('.gs-station[data-station]').forEach(function(el){\n        var i = ORDER.indexOf(el.dataset.station);\n        el.classList.toggle('is-current', i === step);\n        var number = el.querySelector('.gs-station__no');\n        if (number && i >= 0) number.textContent = String(i + 1).padStart(2, '0');\n      });\n      if (labelEl) labelEl.textContent = '\u8CEA\u554F ' + (step + 1) + ' / ' + ORDER.length;\n      if (fillEl) fillEl.style.width = Math.round(((step + 1) / ORDER.length) * 100) + '%';\n      if (backBtn) backBtn.disabled = (step === 0);\n      if (navEl) navEl.classList.toggle('is-last', step === ORDER.length - 1);\n      refreshNext();\n      if (scroll){\n        var pit = document.getElementById('gsPit');\n        if (pit && pit.getBoundingClientRect().top < -10) {\n          pit.scrollIntoView({ behavior: 'smooth', block: 'start' });\n        }\n        var currentStation = wiz.querySelector('.gs-station.is-current');\n        var heading = currentStation && currentStation.querySelector('.gs-station__q');\n        if (heading){\n          heading.setAttribute('tabindex', '-1');\n          heading.focus({ preventScroll: true });\n        }\n      }\n    }\n    function refreshNext(){\n      if (nextBtn) nextBtn.disabled = !stationFilled(ORDER[step]);\n    }\n    if (backBtn) backBtn.addEventListener('click', function(){\n      if (step > 0) { step--; render(true); }\n    });\n    if (nextBtn) nextBtn.addEventListener('click', function(){\n      if (!stationFilled(ORDER[step])) return;\n      if (step < ORDER.length - 1) { step++; render(true); }\n    });\n    /* \u9078\u629E\u5909\u66F4\u306E\u305F\u3073\u306B\u6B21\u3078\u30DC\u30BF\u30F3\u306E\u6D3B\u6027\u3092\u66F4\u65B0 (updateStationStates\u304B\u3089\u547C\u3070\u308C\u308B) */\n    window.__gsWizRefresh = function(){ render(false); };\n    /* \u518D\u8A3A\u65AD\u30FB\u30EA\u30BB\u30C3\u30C8\u6642\u306B\u5148\u982D\u30B9\u30C6\u30C3\u30D7\u3078\u623B\u3059 */\n    window.__gsWizGo = function(n){\n      step = Math.max(0, Math.min(ORDER.length - 1, n | 0));\n      render(true);\n    };\n    render(false);\n  })();\n\n  /* \u521D\u671F\u53CD\u6620 */\n  updateStationStates(); updateLiveMeter(); updateCtaState();\n  if (typeof updateDiagRemain === 'function') updateDiagRemain();\n  /* AI-015: \u8A3A\u65AD\u753B\u9762\u8868\u793A\u30A4\u30D9\u30F3\u30C8 (1\u56DE\u306E\u307F) */\n  try {\n    if (!window.__gsDiagStartFired){\n      window.__gsDiagStartFired = true;\n      window.dataLayer = window.dataLayer || [];\n      window.dataLayer.push({ event: 'ai_diag_start' });\n    }\n  } catch(e){}\n\n  function buildConfirm() {\n    var items = [\n      {l:'\u30B2\u30FC\u30E0', v:sel.games.map(gameName).join(', '), s:1},\n      {l:'\u76EE\u6307\u3059\u5FEB\u9069\u3055', v:LABELS[sel.comfort]||sel.comfort, s:2},\n      {l:'\u4F7F\u3044\u65B9', v:((sel.usages && sel.usages.length) ? sel.usages.map(function(u){return LABELS[u]||u;}).join(' / ') : (LABELS[sel.usage]||sel.usage)), s:3},\n      {l:'\u4E88\u7B97', v:formatBudget(sel.budget), s:4}\n    ];\n    $('wzConfirm').innerHTML = items.map(function(it){\n      return '<button class=\"wz-conf-item\" data-go=\"'+it.s+'\"><span class=\"wz-conf-label\">'+esc(it.l)+'</span><span class=\"wz-conf-val\">'+esc(it.v)+'</span></button>';\n    }).join('');\n  }\n  function updateDiagRemain() {\n    var el = $('wzDiagRemain'); if (!el) return;\n    var rem = getDiagRemaining();\n    if (rem <= 0) {\n      el.textContent = '1\u6642\u9593\u3042\u305F\u308A\u306E\u4E0A\u9650\u306B\u9054\u3057\u307E\u3057\u305F\uFF08\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044\uFF09';\n      el.className = 'gs-pit__remain wz-low';\n    } else if (rem <= 2) {\n      el.textContent = '\u3053\u306E\u7AEF\u672B\u30671\u6642\u9593\u306B' + DIAG_HOUR_LIMIT + '\u56DE\u307E\u3067\u30FB\u6B8B\u308A' + rem + '\u56DE';\n      el.className = 'gs-pit__remain wz-low';\n    } else {\n      el.textContent = '1\u6642\u9593\u306B' + DIAG_HOUR_LIMIT + '\u56DE\u307E\u3067\u30FB\u6B8B\u308A' + rem + '\u56DE';\n      el.className = 'gs-pit__remain';\n    }\n  }\n  /* \u521D\u671F\u8868\u793A */\n  setTimeout(function(){ try { updateDiagRemain(); } catch(e){} }, 0);\n\n  $('wzConfirm').addEventListener('click', function(e){ var item = e.target.closest('[data-go]'); if (!item) return; go(parseInt(item.dataset.go)); });\n  new MutationObserver(function(){ var s5 = root.querySelector('[data-s=\"5\"]'); if (s5 && s5.classList.contains('active')) { buildConfirm(); updateDiagRemain(); } }).observe(root.querySelector('[data-s=\"5\"]'), {attributes:true, attributeFilter:['class']});\n  $('wzRequest').addEventListener('input', function(){ $('wzReqCount').textContent = this.value.length; });\n\n  var loadTimer = null;\n  var loadDelayTimers = [];\n  var loadStartTime = 0;\n  var loadPhase = 0; /* 0=send, 1=thinking, 2=parse */\n\n  function clearLoadDelayTimers() {\n    loadDelayTimers.forEach(function(timer){ clearTimeout(timer); });\n    loadDelayTimers = [];\n  }\n\n  function setLoadPhase(phase, msg) {\n    loadPhase = phase;\n    $('wzLoadMsg').textContent = msg;\n    var fill = $('wzLoadFill');\n    var pcts = [15, 50, 90, 100];\n    var pct = pcts[Math.min(phase, 3)];\n    fill.style.setProperty('width', pct + '%', 'important');\n    var pctEl = $('wzLoadPct');\n    if (pctEl) pctEl.textContent = pct + '%';\n    syncPitLoaderToPct(pct, false);\n    /* height/background \u306F CSS \u5074\u306B\u4EFB\u305B\u308B (\u30B0\u30E9\u30C7\u8868\u73FE\u3092\u6D3B\u304B\u3059\u305F\u3081 inline \u6CE8\u5165\u3057\u306A\u3044) */\n  }\n\n  var LOAD_MSGS=[[0,'\u6761\u4EF6\u3092\u9001\u4FE1\u4E2D'],[1500,'\u30B2\u30FC\u30E0\u8981\u4EF6\u3092\u78BA\u8A8D\u4E2D'],[3000,'GPU\u6027\u80FD\u3092\u7167\u5408\u4E2D'],[5000,'CPU/\u30E1\u30E2\u30EA\u306E\u30D0\u30E9\u30F3\u30B9\u8ABF\u6574\u4E2D'],[7000,'\u4E88\u7B97\u3068\u306E\u30C8\u30EC\u30FC\u30C9\u30AA\u30D5\u8A08\u7B97\u4E2D'],[9000,'\u96FB\u6E90\u3068\u51B7\u5374\u3092\u6700\u7D42\u78BA\u8A8D\u4E2D']];\n  function startLoad() {\n    clearLoadDelayTimers();\n    loadPhase = 0;\n    loadStartTime = Date.now();\n    var fill = $('wzLoadFill');\n    fill.style.setProperty('transition', 'width .5s ease', 'important');\n    fill.style.setProperty('width', '0%', 'important');\n    var pctEl0 = $('wzLoadPct');\n    if (pctEl0) pctEl0.textContent = '0%';\n    $('wzLoadElapsed').textContent = '';\n    loadDelayTimers.push(setTimeout(function(){ setLoadPhase(0, LOAD_MSGS[0][1]); }, 50));\n    if (loadTimer) clearInterval(loadTimer);\n    loadTimer = setInterval(function(){\n      var el = Date.now() - loadStartTime;\n      var sec = Math.floor(el / 1000);\n      if (sec >= 3) $('wzLoadElapsed').textContent = sec + '\u79D2\u7D4C\u904E';\n      if (loadPhase < 2) {\n        for (var i = LOAD_MSGS.length - 1; i >= 0; i--) {\n          if (el >= LOAD_MSGS[i][0]) {\n            var m = $('wzLoadMsg');\n            if (m.textContent !== LOAD_MSGS[i][1]) m.textContent = LOAD_MSGS[i][1];\n            break;\n          }\n        }\n      }\n      if (loadPhase === 1) {\n        var raw = fill.style.getPropertyValue('width');\n        var current = parseFloat(raw) || 50;\n        if (current < 85) {\n          var next = Math.min(current + 2, 85);\n          fill.style.setProperty('width', next + '%', 'important');\n          var pctElDyn = $('wzLoadPct');\n          if (pctElDyn) pctElDyn.textContent = Math.round(next) + '%';\n          syncPitLoaderToPct(next, false);\n        }\n      }\n    }, 500);\n  }\n\n  function stopLoad(callback) {\n    if (loadTimer) { clearInterval(loadTimer); loadTimer = null; }\n    clearLoadDelayTimers();\n    finishPitLoader();\n    $('wzLoadFill').style.setProperty('width', '100%', 'important');\n    var pctElEnd = $('wzLoadPct');\n    if (pctElEnd) pctElEnd.textContent = '100%';\n    $('wzLoadMsg').textContent = '\u5B8C\u4E86';\n    /* 500ms\u306E\u30D0\u30FC\u9077\u79FB\u3092\u898B\u5C4A\u3051\u3066\u304B\u3089\u7D50\u679C\u3078\u5207\u308A\u66FF\u3048\u308B\u3002 */\n    setTimeout(function(){ if (callback) callback(); }, 550);\n  }\n\n  /* SNS Share helpers */\n  var SHARE_URL = 'https://www.titan-pc.net/pages/%E3%82%B2%E3%83%BC%E3%83%A0%E3%81%8B%E3%82%89%E9%81%B8%E3%81%B6';\n\n  function buildShareText() {\n    var lastItems = window.__wzLastItems || [];\n    var names = sel.games.map(gameName);\n    var gamesText = names.length > 3 ? names.slice(0,3).join('\u30FB') + '\u4ED6' : names.join('\u30FB');\n    var _L0 = legacy(); var resL = LABELS[_L0.res] || _L0.res;\n    var bestGpu = lastItems[0] && lastItems[0].gpu ? String(lastItems[0].gpu).trim() : '';\n    var text = '\uD83D\uDDA5\uFE0F TITAN Gaming AI\u8A3A\u65AD\u306E\u7D50\u679C\\n';\n    text += gamesText + ' \u00D7 ' + resL + ' \u3067\u8A3A\u65AD\u3057\u305F\u3089';\n    if (bestGpu) text += '\u300C' + bestGpu + '\u300D\u304C\u304A\u3059\u3059\u3081\u3067\u3057\u305F\uFF01';\n    else text += '\u304A\u3059\u3059\u3081PC\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F\uFF01';\n    text += '\\n\\n#TITANGaming #\u30B2\u30FC\u30DF\u30F3\u30B0PC\u8A3A\u65AD';\n    return text;\n  }\n\n  function showToast(msg) {\n    var toast = $('wzToast');\n    if (!toast) return;\n    toast.textContent = msg || '\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F';\n    toast.classList.add('wz-toast-show');\n    setTimeout(function(){ toast.classList.remove('wz-toast-show'); }, 2500);\n  }\n\n  $('wzShareX').addEventListener('click', function(){\n    var text = buildShareText();\n    var url = 'https://x.com/intent/tweet?text=' + encodeURIComponent(text) + '&url=' + encodeURIComponent(SHARE_URL);\n    window.open(url, '_blank');\n  });\n\n  $('wzShareLine').addEventListener('click', function(){\n    var text = buildShareText() + '\\n' + SHARE_URL;\n    var url = 'https://social-plugins.line.me/lineit/share?url=' + encodeURIComponent(SHARE_URL) + '&text=' + encodeURIComponent(text);\n    window.open(url, '_blank');\n  });\n\n  $('wzShareCopy').addEventListener('click', function(){\n    var text = buildShareText() + '\\n' + SHARE_URL;\n    var btn = this;\n    if (navigator.clipboard && navigator.clipboard.writeText) {\n      navigator.clipboard.writeText(text).then(function(){\n        btn.classList.add('wz-copied');\n        btn.querySelector('span').textContent = '\u30B3\u30D4\u30FC\u6E08\u307F';\n        showToast('\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F');\n        setTimeout(function(){ btn.classList.remove('wz-copied'); btn.querySelector('span').textContent = '\u30B3\u30D4\u30FC'; }, 3000);\n      }).catch(function(){\n        fallbackCopy(text, btn);\n      });\n    } else {\n      fallbackCopy(text, btn);\n    }\n  });\n\n  function fallbackCopy(text, btn) {\n    var ta = document.createElement('textarea');\n    ta.value = text; ta.style.position = 'fixed'; ta.style.opacity = '0';\n    document.body.appendChild(ta); ta.select();\n    try { document.execCommand('copy');\n      btn.classList.add('wz-copied');\n      btn.querySelector('span').textContent = '\u30B3\u30D4\u30FC\u6E08\u307F';\n      showToast('\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F');\n      setTimeout(function(){ btn.classList.remove('wz-copied'); btn.querySelector('span').textContent = '\u30B3\u30D4\u30FC'; }, 3000);\n    } catch(e){}\n    document.body.removeChild(ta);\n  }\n\n  function showShareSection() {\n    var sec = $('wzShareSection');\n    if (sec) sec.style.display = '';\n    setShareOpen(false);\n  }\n  function hideShareSection() {\n    var sec = $('wzShareSection');\n    if (sec) sec.style.display = 'none';\n    setShareOpen(false);\n  }\n  function setShareOpen(open) {\n    var toggle = $('wzShareToggle');\n    var panel = $('wzSharePanel');\n    if (toggle) toggle.setAttribute('aria-expanded', open ? 'true' : 'false');\n    if (panel) panel.hidden = !open;\n  }\n\n  var shareToggle = $('wzShareToggle');\n  if (shareToggle) shareToggle.addEventListener('click', function(){\n    setShareOpen(this.getAttribute('aria-expanded') !== 'true');\n  });\n\n  $('wzDiagnose').addEventListener('click', function(){\n    if (calling) return;\n    if (isBlocked()) { showFallback('\u77ED\u6642\u9593\u306B\u591A\u6570\u306E\u8A3A\u65AD\u304C\u5B9F\u884C\u3055\u308C\u305F\u305F\u3081\u3001\u4E00\u6642\u7684\u306B\u5229\u7528\u5236\u9650\u4E2D\u3067\u3059\u3002\\n\u6642\u9593\u3092\u304A\u3044\u3066\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002', true); go(7); return; }\n    var now = Date.now();\n    if (now - lastCallTime < RATE_MS) { showFallback('\u5C11\u3057\u5F85\u3063\u3066\u304B\u3089\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002', true); go(7); return; }\n    if (checkAndRecordSpam()) { showFallback('\u77ED\u6642\u9593\u306B\u591A\u6570\u306E\u8A3A\u65AD\u304C\u5B9F\u884C\u3055\u308C\u305F\u305F\u3081\u3001\u4E00\u6642\u7684\u306B\u5229\u7528\u5236\u9650\u4E2D\u3067\u3059\u3002\\n\u6642\u9593\u3092\u304A\u3044\u3066\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002', true); go(7); return; }\n    if (!checkDiagLimit()) { showFallback('1\u6642\u9593\u3042\u305F\u308A\u306E\u8A3A\u65AD\u56DE\u6570\uFF08' + DIAG_HOUR_LIMIT + '\u56DE\uFF09\u306B\u9054\u3057\u307E\u3057\u305F\u3002\\n\u3057\u3070\u3089\u304F\u6642\u9593\u3092\u304A\u3044\u3066\u304B\u3089\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002', true); go(7); return; }\n    calling = true;\n    /* AI-015: \u8A3A\u65AD\u5B9F\u884C\u30A4\u30D9\u30F3\u30C8 */\n    if (typeof pushGA === 'function') pushGA('ai_diag_submit', {\n      games: sel.games.length,\n      comfort: sel.comfort || '',\n      usages: (sel.usages || []).join('|'),\n      budget: sel.budget || '',\n      buyMode: sel.buyMode || ''\n    });\n    var L = legacy();\n    var budUnlimited = (L.bud === 'unlimited' || L.bud === '999999');\n    var bud = budUnlimited ? Infinity : parseInt(L.bud);\n    __budCeil = bud;\n    var preImpossible = null;\n    if (!budUnlimited){\n      if (L.res === '4K' && bud <= 150000) { preImpossible = { reason: '4K\u3092\u5FEB\u9069\u306B\u904A\u3076\u306B\u306FRTX4070\u7D1A\u4EE5\u4E0A\u306EGPU\u304C\u5FC5\u8981\u3067\u300115\u4E07\u5186\u4EE5\u5185\u3067\u306F\u69CB\u6210\u304C\u96E3\u3057\u3044\u3067\u3059\u3002', suggestion: '\u4E88\u7B97\u309220\u4E07\u5186\u4EE5\u4E0A\u306B\u5F15\u304D\u4E0A\u3052\u308B\u304B\u3001\u76EE\u6307\u3059\u5FEB\u9069\u3055\u3092\u300CWQHD\u3067\u9AD8\u753B\u8CEA\u300D\u307E\u305F\u306F\u300C\u30D5\u30EBHD\u3067\u6ED1\u3089\u304B\u306B\u300D\u306B\u5909\u66F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002' }; }\n      else if (L.res === '4K' && L.str === 'yes' && bud <= 200000) { preImpossible = { reason: '4K\uFF0B\u914D\u4FE1\u306B\u306FRTX4070Ti\u7D1A\u4EE5\u4E0A\u304C\u5FC5\u8981\u3067\u300120\u4E07\u5186\u4EE5\u5185\u3067\u306F\u96E3\u3057\u3044\u3067\u3059\u3002', suggestion: '\u4E88\u7B97\u309225\u4E07\u5186\u4EE5\u4E0A\u306B\u3059\u308B\u304B\u3001\u76EE\u6307\u3059\u5FEB\u9069\u3055\u3092WQHD\u306B\u4E0B\u3052\u3066\u304F\u3060\u3055\u3044\u3002' }; }\n      else if (L.res === 'WQHD' && L.str === 'yes' && bud <= 150000) { preImpossible = { reason: 'WQHD\uFF0B\u914D\u4FE1\u306B\u306F\u5341\u5206\u306AGPU\u6027\u80FD\u304C\u5FC5\u8981\u3067\u300115\u4E07\u5186\u4EE5\u5185\u3067\u306F\u69CB\u6210\u304C\u53B3\u3057\u3044\u3067\u3059\u3002', suggestion: '\u4E88\u7B97\u309220\u4E07\u5186\u4EE5\u4E0A\u306B\u3059\u308B\u304B\u3001\u76EE\u6307\u3059\u5FEB\u9069\u3055\u3092\u30D5\u30EBHD\u306B\u5909\u66F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002' }; }\n    }\n    if (preImpossible) { go(6); startLoad(); setTimeout(function(){ stopLoad(function(){ calling = false; showImpossible(preImpossible.reason, preImpossible.suggestion); }); }, 1500); return; }\n    go(6); startLoad(); callAI();\n  });\n\n  function isAiUnlimitedHeavy(L){\n    var usages = L && Array.isArray(L.usages) ? L.usages : [];\n    var unlimited = L && (L.bud === '999999' || L.bud === 'unlimited');\n    return !!(unlimited && usages.indexOf('ai_use') >= 0 && L.usageDetailValue !== 'ai_image_try');\n  }\n\n  function usageDetailRequirement(L){\n    if (isAiUnlimitedHeavy(L)) {\n      return '\u751F\u6210AI\u3092\u672C\u683C\u7684\u306B\u4F7F\u3046\u4E88\u7B97\u4E0A\u9650\u306A\u3057\u306E\u69CB\u6210\u3002RTX 5080\u3001Ryzen 7 9700X\u3001\u30E1\u30E2\u30EA64GB\u3001SSD2TB\u4EE5\u4E0A\u3092\u57FA\u6E96';\n    }\n    var requirements = {\n      ai_image_try: '\u753B\u50CF\u751F\u6210\u306E\u5165\u9580\u7528\u9014\u3002VRAM12GB\u4EE5\u4E0A\u3001\u30E1\u30E2\u30EA32GB\u3001SSD1TB\u4EE5\u4E0A',\n      ai_image_pro: '\u9AD8\u89E3\u50CF\u5EA6\u30FB\u5927\u91CF\u306E\u753B\u50CF\u751F\u6210\u3002VRAM16GB\u4EE5\u4E0A\u3001\u30E1\u30E2\u30EA32GB\u3001SSD2TB\u4EE5\u4E0A',\n      ai_video_train: '\u52D5\u753B\u751F\u6210\u30FB\u8FFD\u52A0\u5B66\u7FD2\u3002VRAM16GB\u4EE5\u4E0A\u3001\u30E1\u30E2\u30EA64GB\u3001SSD2TB\u4EE5\u4E0A',\n      ai_local_llm: '\u30ED\u30FC\u30AB\u30EB\u6587\u7AE0AI\u3002VRAM16GB\u4EE5\u4E0A\u3001\u30E1\u30E2\u30EA64GB\u3001SSD2TB\u4EE5\u4E0A',\n      ai_unsure: '\u751F\u6210AI\u7528\u9014\u306F\u304A\u307E\u304B\u305B\u3002VRAM16GB\u4EE5\u4E0A\u3001\u30E1\u30E2\u30EA32GB\u3001SSD2TB\u4EE5\u4E0A',\n      edit_fhd_short: '\u30D5\u30EBHD\u306E\u77ED\u5C3A\u7DE8\u96C6\u3002\u30E1\u30E2\u30EA16GB\u3001SSD1TB\u4EE5\u4E0A',\n      edit_daily_4k: '\u30D5\u30EBHD\u301C4K\u306E\u65E5\u5E38\u7DE8\u96C6\u3002VRAM12GB\u4EE5\u4E0A\u3001\u30E1\u30E2\u30EA32GB\u3001SSD2TB\u4EE5\u4E0A',\n      edit_heavy_4k: '4K\u4EE5\u4E0A\u30FB\u9577\u5C3A\u30FB\u30A8\u30D5\u30A7\u30AF\u30C8\u591A\u3081\u3002VRAM16GB\u4EE5\u4E0A\u3001\u30E1\u30E2\u30EA64GB\u3001SSD2TB\u4EE5\u4E0A',\n      edit_unsure: '\u52D5\u753B\u7DE8\u96C6\u7528\u9014\u306F\u304A\u307E\u304B\u305B\u3002VRAM12GB\u4EE5\u4E0A\u3001\u30E1\u30E2\u30EA32GB\u3001SSD1TB\u4EE5\u4E0A',\n      stream_fhd_game: '\u30B2\u30FC\u30E0\u3092\u3057\u306A\u304C\u3089\u30D5\u30EBHD\u914D\u4FE1\u3002\u30E1\u30E2\u30EA32GB\u3001SSD1TB\u4EE5\u4E0A',\n      stream_advanced: '\u9AD8\u753B\u8CEA\u30FB\u8907\u6570\u30AB\u30E1\u30E9\u914D\u4FE1\u3002VRAM12GB\u4EE5\u4E0A\u3001\u30E1\u30E2\u30EA32GB\u3001SSD2TB\u4EE5\u4E0A',\n      stream_talk: '\u96D1\u8AC7\u30FB\u9854\u51FA\u3057\u4E2D\u5FC3\u3002\u30E1\u30E2\u30EA16GB\u3001SSD1TB\u4EE5\u4E0A',\n      stream_unsure: '\u30B2\u30FC\u30E0\u914D\u4FE1\u7528\u9014\u306F\u304A\u307E\u304B\u305B\u3002\u30E1\u30E2\u30EA32GB\u3001SSD1TB\u4EE5\u4E0A',\n      work_office: 'Office\u30FB\u30D6\u30E9\u30A6\u30B6\u30FB\u30AA\u30F3\u30E9\u30A4\u30F3\u4F1A\u8B70\u3002\u30E1\u30E2\u30EA16GB\u3001SSD1TB\u4EE5\u4E0A',\n      work_multitask: '\u4F1A\u8B70\u3092\u3057\u306A\u304C\u3089\u8907\u6570\u4F5C\u696D\u3002\u30E1\u30E2\u30EA32GB\u3001SSD1TB\u4EE5\u4E0A',\n      work_heavy: 'CAD\u30FB3D\u30FB\u30A4\u30E9\u30B9\u30C8\u30FB\u958B\u767A\u3002VRAM8GB\u4EE5\u4E0A\u3001\u30E1\u30E2\u30EA32GB\u3001SSD2TB\u4EE5\u4E0A',\n      work_light: '\u8EFD\u3044\u4ED5\u4E8B\u30FB\u5B66\u696D\u7528\u9014\u3002\u30E1\u30E2\u30EA16GB\u3001SSD1TB\u4EE5\u4E0A'\n    };\n    return requirements[L.usageDetailValue] || '';\n  }\n\n  /* Shopify\u5B9F\u5546\u54C1\u304B\u3089\u3001\u6761\u4EF6\u3092\u6E80\u305F\u3059\u5019\u88DC\u3060\u3051\u3092\u751F\u6210\u3059\u308B */\n  function buildGpuWhitelist(L){\n    var minS = 0, minV = 6;\n    if (L.res === '4K') {\n      minS = (L.str === 'yes') ? 27000 : 22000;\n      minV = 12;\n    } else if (L.res === 'WQHD') {\n      minS = (L.str === 'yes') ? 18000 : 14000;\n      minV = 8;\n    } else { /* FHD */\n      if (L.pri === 'competitive')    minS = 13000;\n      else if (L.pri === 'fps')       minS = 11000; /* 144fps\u60F3\u5B9A */\n      else if (L.pri === 'quality')   minS = 10000;\n      else                            minS = 7000;  /* casual/unsure/balance */\n      if (L.str === 'yes')            minS = Math.max(minS, 12500); /* FHD\u914D\u4FE1\u306F\u6700\u4F4E\u9650\u4E0A\u632F\u308C */\n      minV = 8;\n    }\n    var usageList = L.usages || [];\n    if (usageList.indexOf('ai_use') >= 0) {\n      minS = Math.max(minS, 10000);\n      minV = Math.max(minV, 12);\n    }\n    if (L.usageDetailValue === 'ai_image_pro' || L.usageDetailValue === 'ai_local_llm' || L.usageDetailValue === 'ai_unsure') {\n      minS = Math.max(minS, 13000);\n      minV = Math.max(minV, 16);\n    } else if (L.usageDetailValue === 'ai_video_train') {\n      minS = Math.max(minS, 18000);\n      minV = Math.max(minV, 16);\n    } else if (L.usageDetailValue === 'edit_daily_4k' || L.usageDetailValue === 'stream_advanced') {\n      minS = Math.max(minS, 14000);\n      minV = Math.max(minV, 12);\n    } else if (L.usageDetailValue === 'edit_heavy_4k') {\n      minS = Math.max(minS, 18000);\n      minV = Math.max(minV, 16);\n    } else if (L.usageDetailValue === 'stream_fhd_game') {\n      minS = Math.max(minS, 12500);\n      minV = Math.max(minV, 8);\n    } else if (L.usageDetailValue === 'stream_talk') {\n      /* \u96D1\u8AC7\u30FB\u9854\u51FA\u3057\u4E2D\u5FC3\u3067\u306F\u3001\u914D\u4FE1\u3068\u3044\u3046\u3060\u3051\u3067\u4E2D\u4E0A\u4F4DGPU\u3078\u56FA\u5B9A\u3057\u306A\u3044\u3002\n         \u30B2\u30FC\u30E0\u3082\u9078\u3070\u308C\u3066\u3044\u308B\u5834\u5408\u306F\u3001\u3053\u306E\u5F8C\u306E\u30B2\u30FC\u30E0\u5225\u6700\u4F4E\u30B9\u30B3\u30A2\u3067\u5FC5\u8981\u5206\u3060\u3051\u5F15\u304D\u4E0A\u3052\u308B\u3002 */\n      minS = 7000;\n      minV = 8;\n    }\n    var engine = window.TitanRecommendationEngine;\n    if (!engine) return { list: [], products: [], resultProducts: [], overBudget: [], minS: minS, minV: minV };\n    minS = engine.resolveMinimumScore(minS, L.games, GAME_MIN_SCORES, L.res);\n    var budgetUnlimited = L.bud === '999999' || L.bud === 'unlimited';\n    var budget = budgetUnlimited ? Infinity : parseInt(L.bud, 10);\n    var aiUsage = usageList.indexOf('ai_use') >= 0;\n    var candidateCatalog = aiUsage ? GS_PRODUCT_CATALOG.filter(function(product){\n      return /^RTX/i.test(normalizeGpuName(product && product.key));\n    }) : GS_PRODUCT_CATALOG;\n    var selected = engine.selectCandidates(candidateCatalog, {\n      minScore: minS,\n      minVramGb: minV,\n      condition: L.cond || 'any',\n      budget: budget,\n      budgetUnlimited: budgetUnlimited\n    });\n    var list = selected.candidates.map(function(product){\n      return { n: product.key, s: product.gpuScore, v: product.vramGb, gen: product.condition, productId: product.id };\n    });\n    var resultProducts = selected.candidates.map(function(product){\n      return Object.assign({}, product, { budgetDelta: 0 });\n    }).concat(selected.overBudget.slice(0, 3).map(function(product){\n      return Object.assign({}, product, { budgetDelta: budgetUnlimited ? 0 : Math.max(0, product.price - budget) });\n    }));\n    /* \u6587\u7AE0AI\uFF08\u30ED\u30FC\u30AB\u30EBLLM\uFF09\u3060\u3051\u3001\u30B2\u30FC\u30E0\u6027\u80FD\u306E\u6570\u5024\u3067\u306F\u306A\u304FVRAM 32GB\u3067\u9078\u3076\u67A0\u3092\u63A2\u3059\u30023\u67A0\u306E\u9078\u5B9A\u306B\u306F\u6DF7\u305C\u305A\u3001\u7D50\u679C\u306E\u6700\u5F8C\u306B\u51FA\u3059\u3002 */\n    var largeVram = L.usageDetailValue === 'ai_local_llm' && engine.selectLargeVramProduct\n      ? engine.selectLargeVramProduct(GS_PRODUCT_CATALOG, { minVramGb: 32 })\n      : null;\n    return { list: list, products: selected.candidates, resultProducts: resultProducts, overBudget: selected.overBudget, minS: minS, minV: minV, largeVram: largeVram };\n  }\n\n  /* VRAM 32GB\u306E\u67A0\u306E\u69CB\u6210\u3002\u7528\u9014\u306E\u6700\u4F4E\u6761\u4EF6\uFF08\u30E1\u30E2\u30EA\u30FBSSD\u30FBCPU\uFF09\u306F\u9078\u3079\u308B\u7BC4\u56F2\u3067\u5408\u308F\u305B\u3001\n     \u9078\u629E\u80A2\u306B\u7121\u3044\u3082\u306E\u306F\u6A19\u6E96\u306E\u307E\u307E\u3002\u5408\u8A08\u304C\u4E88\u7B97\u3092\u8D85\u3048\u308B\u6642\u306F\u51FA\u3055\u306A\u3044\u3002 */\n  function largeVramItem(product, L, budgetCeil){\n    if (!product) return null;\n    var minimum = usageMinimumConfig(L) || {};\n    var addons = product.addons || {};\n    var specs = productTitleSpecs(product.title, '', '16GB');\n    var item = {\n      productId: product.id,\n      rank: 'vram',\n      largeVram: true,\n      gpu: product.key,\n      price: product.price,\n      cpu: specs.cpu,\n      mem: specs.memory,\n      ssd: '',\n      total: 0,\n      cond: '\u65B0\u54C1',\n      budgetDelta: 0,\n      why: '16GB\u306B\u53CE\u307E\u3089\u306A\u3044\u5927\u304D\u306A\u30E2\u30C7\u30EB\u3092\u3001GPU1\u679A\u306EVRAM\u306B\u8AAD\u307F\u8FBC\u3081\u307E\u3059\u3002',\n      tip: '',\n      tags: []\n    };\n    if (minimum.cpu && !cpuMeets9700Minimum(item.cpu)) {\n      var cpu = resolveOptionValue(addons.cpu, minimum.cpu, 'cpu');\n      if (cpu) item.cpu = cpu;\n    }\n    if (minimum.mem && optionCapacityGb(item.mem) < minimum.mem) {\n      var mem = resolveOptionValue(addons.mem, minimum.mem + 'GB', 'mem', memoryGenerationForCpu(item.cpu));\n      if (mem) item.mem = mem;\n    }\n    if (minimum.ssd) {\n      var ssd = resolveOptionValue(addons.ssd, minimum.ssd + 'TB', 'ssd');\n      if (ssd) item.ssd = ssd;\n    }\n    item.total = configuredItemTotal(item, product);\n    if (Number.isFinite(budgetCeil) && budgetCeil > 0 && item.total > budgetCeil) return null;\n    return item;\n  }\n\n  function withLargeVramItem(items, item){\n    return item ? (Array.isArray(items) ? items : []).concat([item]) : items;\n  }\n\n  function enforceAiUnlimitedHeavyItems(items, candidates, L){\n    if (!isAiUnlimitedHeavy(L)) return Array.isArray(items) ? items : [];\n    var products = Array.isArray(candidates) ? candidates : [];\n    var product = products.find(function(candidate){\n      return normalizeGpuName(candidate && candidate.key) === 'RTX5080';\n    });\n    if (!product) return Array.isArray(items) ? items : [];\n\n    var forced = {\n      productId: product.id,\n      rank: 'best',\n      label: '\u672C\u547D',\n      gpu: product.key,\n      price: product.price,\n      cpu: 'Ryzen 7 9700X',\n      mem: '64GB',\n      ssd: 'Gen 3 NVMe SSD 2TB',\n      total: 0,\n      cond: '\u65B0\u54C1',\n      budgetDelta: 0,\n      why: '\u751F\u6210AI\u3092\u672C\u683C\u7684\u306B\u4F7F\u3046\u524D\u63D0\u3067\u3001\u51E6\u7406\u6027\u80FD\u3068\u30E1\u30E2\u30EA\u5BB9\u91CF\u306B\u4F59\u88D5\u3092\u6301\u305F\u305B\u305F\u69CB\u6210\u3067\u3059\u3002',\n      tip: '',\n      tags: []\n    };\n    var comparisons = (Array.isArray(items) ? items : []).filter(function(item){\n      return item && item.productId !== product.id;\n    }).slice(0, 2).map(function(item, index){\n      return Object.assign({}, item, { rank:index === 0 ? 'value' : 'alt' });\n    });\n    return [forced].concat(comparisons);\n  }\n\n  /* AI\u306E\u6587\u7AE0\u56DE\u7B54\u306B\u63FA\u308C\u304C\u3042\u3063\u3066\u3082\u3001\u7528\u9014\u5225\u8CEA\u554F\u3067\u7D04\u675F\u3057\u305F\u6700\u4F4E\u69CB\u6210\u306F\u30B3\u30FC\u30C9\u5074\u3067\u5B88\u308B\u3002 */\n  function usageMinimumConfig(L){\n    var configs = {\n      ai_image_try:     { mem:32, ssd:1 },\n      ai_image_pro:     { mem:32, ssd:2 },\n      ai_video_train:   { cpu:'9700X', mem:64, ssd:2 },\n      ai_local_llm:     { cpu:'9700X', mem:64, ssd:2 },\n      ai_unsure:        { mem:32, ssd:2 },\n      edit_fhd_short:   { mem:16, ssd:1 },\n      edit_daily_4k:    { cpu:'9700X', mem:32, ssd:2 },\n      edit_heavy_4k:    { cpu:'9700X', mem:64, ssd:2 },\n      edit_unsure:      { mem:32, ssd:1 },\n      stream_fhd_game:  { cpu:'9700X', mem:32, ssd:1 },\n      stream_advanced:  { cpu:'9700X', mem:32, ssd:2 },\n      stream_talk:      { mem:16, ssd:1 },\n      stream_unsure:    { cpu:'9700X', mem:32, ssd:1 },\n      work_office:      { mem:16, ssd:1 },\n      work_multitask:   { mem:32, ssd:1 },\n      work_heavy:       { cpu:'9700X', mem:32, ssd:2 },\n      work_light:       { mem:16, ssd:1 }\n    };\n    if (isAiUnlimitedHeavy(L)) return { cpu:'9700X', mem:64, ssd:2 };\n    return configs[L && L.usageDetailValue] || null;\n  }\n\n  function optionCapacityGb(value){\n    var match = String(value || '').toUpperCase().match(/(\\d+(?:\\.\\d+)?)\\s*(TB|GB)/);\n    if (!match) return 0;\n    var amount = parseFloat(match[1]);\n    return match[2] === 'TB' ? amount * 1024 : amount;\n  }\n\n  function cpuMeets9700Minimum(value){\n    var match = String(value || '').toUpperCase().match(/\\b(\\d{4})(?:X3D|X|G)?\\b/);\n    if (!match) return false;\n    var model = parseInt(match[1], 10);\n    /* Ryzen 9 7900/7950\u30689xxx\u4E16\u4EE3\u3001\u30B2\u30FC\u30E0\u5411\u30517800X3D\u306F9700X\u7D1A\u3068\u3057\u3066\u6271\u3046\u3002 */\n    return model >= 9000 || model === 7900 || model === 7950 || /7800X3D/.test(String(value).toUpperCase());\n  }\n\n  function enforceUsageMinimumItems(items, candidates, L){\n    var minimum = usageMinimumConfig(L);\n    if (!minimum) return Array.isArray(items) ? items : [];\n    var products = Array.isArray(candidates) ? candidates : [];\n    return (Array.isArray(items) ? items : []).map(function(item){\n      if (!item) return item;\n      var product = products.find(function(candidate){ return candidate && candidate.id === item.productId; })\n        || findCatalogProductById(item.productId)\n        || findCatalogProduct(item.gpu);\n      if (!product) return item;\n      var addons = product.addons || {};\n      var next = Object.assign({}, item);\n      if (minimum.cpu && !cpuMeets9700Minimum(next.cpu)) {\n        var cpu = resolveOptionValue(addons.cpu, minimum.cpu, 'cpu');\n        if (cpu) next.cpu = cpu;\n      }\n      var memoryGeneration = memoryGenerationForCpu(next.cpu);\n      if (minimum.mem && optionCapacityGb(next.mem) < minimum.mem) {\n        var mem = resolveOptionValue(addons.mem, minimum.mem + 'GB', 'mem', memoryGeneration);\n        if (mem) next.mem = mem;\n      }\n      if (minimum.ssd && optionCapacityGb(next.ssd) < minimum.ssd * 1024) {\n        var ssd = resolveOptionValue(addons.ssd, minimum.ssd + 'TB', 'ssd');\n        if (ssd) next.ssd = ssd;\n      }\n      next.total = 0;\n      return next;\n    });\n  }\n\n  function itemMeetsUsageMinimum(item, L){\n    var minimum = usageMinimumConfig(L);\n    if (!minimum || !item) return !!item;\n    if (minimum.cpu && !cpuMeets9700Minimum(item.cpu)) return false;\n    if (minimum.mem && optionCapacityGb(item.mem) < minimum.mem) return false;\n    if (minimum.ssd && optionCapacityGb(item.ssd) < minimum.ssd * 1024) return false;\n    return true;\n  }\n\n  function filterValidConfiguredItems(items, L, budgetCeil){\n    return (Array.isArray(items) ? items : []).filter(function(item){\n      if (!itemMeetsUsageMinimum(item, L)) return false;\n      return !Number.isFinite(budgetCeil) || (item.total > 0 && item.total <= budgetCeil);\n    });\n  }\n\n  function callAI() {\n    var L = legacy();\n    var names = L.games.map(gameName);\n    var budUnlimited = (L.bud === '999999' || L.bud === 'unlimited');\n    var budText = budUnlimited ? '\u3053\u3060\u308F\u3089\u306A\u3044\uFF08\u6700\u9069\u3092\u63D0\u6848\uFF09' : '\u00A5' + parseInt(L.bud,10).toLocaleString() + '\u4EE5\u4E0B\uFF08\u7A0E\u8FBC\u5408\u8A08\u3067\u3053\u306E\u91D1\u984D\u3092\u7D76\u5BFE\u306B\u8D85\u3048\u306A\u3044\u3053\u3068\uFF09';\n    var wl = buildGpuWhitelist(L);\n    __minS = wl.minS || 0;\n    var vramItem = largeVramItem(wl.largeVram, L, budUnlimited ? Infinity : parseInt(L.bud, 10));\n    if (!wl.products.length) {\n      var nearest = wl.overBudget[0];\n      stopLoad(function(){\n        calling = false;\n        showImpossible(\n          '\u9078\u629E\u6761\u4EF6\u3068\u4E88\u7B97\u306E\u4E21\u65B9\u3092\u6E80\u305F\u3059\u63B2\u8F09\u5546\u54C1\u304C\u3042\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002',\n          nearest\n            ? nearest.key + '\u306F' + displayPrice(nearest.price) + '\u304B\u3089\u63B2\u8F09\u4E2D\u3067\u3059\u3002\u4E88\u7B97\u3092\u4E0A\u3052\u308B\u304B\u6761\u4EF6\u3092\u5909\u66F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002'\n            : '\u76EE\u6307\u3059\u5FEB\u9069\u3055\u30FB\u8CB7\u3044\u65B9\u30FB\u4E88\u7B97\u306E\u3044\u305A\u308C\u304B\u3092\u5909\u66F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002'\n        );\n      });\n      return;\n    }\n    /* 2026-08-16: \u30AA\u30D7\u30B7\u30E7\u30F3\u52A0\u7B97\u984D\u3082 AI \u306B\u6E21\u3057\u3001\u4E88\u7B97\u5185\u3067\u5B8C\u7D50\u3057\u305F\u6700\u7D42\u69CB\u6210\u3092\u9078\u3070\u305B\u308B\u3002\n       \u52A0\u7B97\u984D\u306F Globo \u306E\u30E1\u30BF\u30D5\u30A3\u30FC\u30EB\u30C9\u304B\u3089\u81EA\u52D5\u53D6\u5F97\u3057\u3066\u3044\u308B\u305F\u3081\u624B\u52D5\u66F4\u65B0\u306F\u4E0D\u8981\u3002 */\n    function addonText(product){\n      var a = product.addons || {};\n      var parts = [];\n      function shortOpts(obj){\n        if(!obj) return [];\n        return Object.keys(obj).map(function(k){ var v = Math.round(obj[k]/1000); return k + '+' + v + 'k'; });\n      }\n      var cats = [['cpu',a.cpu],['mem',a.mem],['ssd',a.ssd],['cooler',a.cooler],['hdd',a.hdd],['psu',a.psu]];\n      for(var i=0;i<cats.length;i++){\n        var opts = shortOpts(cats[i][1]);\n        if(opts.length) parts.push(cats[i][0] + '[' + opts.join('/') + ']');\n      }\n      return parts.length ? ' +opt:' + parts.join(' ') : '';\n    }\n    var whitelistText = wl.products.map(function(product){\n      var p = Math.round(product.price/1000) + 'k';\n      return product.id + '|' + product.key + '|' + product.title + '|' + p + '|TS' + product.gpuScore + '|VRAM' + product.vramGb + addonText(product);\n    }).join('\\n');\n    function renderCandidateFallback(reason) {\n      var fbBudCeil = budUnlimited ? Infinity : parseInt(L.bud, 10);\n      var safeProducts = budUnlimited ? wl.resultProducts : wl.resultProducts.filter(function(p){ return p.price <= fbBudCeil; });\n      var fallbackItems = window.TitanRecommendationEngine.completeResults([], wl.products, safeProducts);\n      fallbackItems = enforceAiUnlimitedHeavyItems(fallbackItems, safeProducts, L);\n      fallbackItems = enforceUsageMinimumItems(fallbackItems, safeProducts, L).map(function(item){\n        var product = findCatalogProductById(item.productId) || findCatalogProduct(item.gpu);\n        return Object.assign({}, item, { total:configuredItemTotal(item, product) });\n      });\n      fallbackItems = filterValidConfiguredItems(fallbackItems, L, fbBudCeil);\n      if (!fallbackItems.length) {\n        showImpossible(\n          '\u9078\u3093\u3060\u7528\u9014\u306B\u5FC5\u8981\u306A\u69CB\u6210\u3092\u3001\u6307\u5B9A\u4E88\u7B97\u5185\u306E\u63B2\u8F09\u5546\u54C1\u3067\u306F\u4F5C\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002',\n          '\u4E88\u7B97\u3092\u4E0A\u3052\u308B\u304B\u3001\u7528\u9014\u306E\u30EC\u30D9\u30EB\u3092\u4E00\u6BB5\u8EFD\u304F\u3057\u3066\u518D\u8A3A\u65AD\u3057\u3066\u304F\u3060\u3055\u3044\u3002'\n        );\n        return;\n      }\n      renderResults(withLargeVramItem(fallbackItems, vramItem), isAiUnlimitedHeavy(L)\n        ? '\u751F\u6210AI\u3092\u672C\u683C\u7684\u306B\u4F7F\u3046\u524D\u63D0\u3067\u3001\u4E88\u7B97\u3088\u308A\u6027\u80FD\u3068\u4F59\u88D5\u3092\u512A\u5148\u3057\u307E\u3057\u305F\u3002'\n        : (reason || '\u5B9F\u5546\u54C1\u3068\u5FC5\u8981\u6027\u80FD\u3092\u7167\u5408\u3057\u305F\u7D50\u679C\u3067\u3059\u3002'));\n      go(7);\n    }\n    var condText, slotInstruction;\n    var tipNote = '\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u5FC5\u9808(cpu/mem/ssd/total/why)\u3002total\u306F\u7A0E\u8FBC\u5408\u8A08\u6570\u5024\u3002+opt:\u306E\u52A0\u7B97\u984D(k=\u5343\u5186\u2192\u5186\u63DB\u7B97)\u3092\u63B2\u8F09\u4FA1\u683C\u306B\u52A0\u7B97\u3002tip\u306F40\u5B57\u4EE5\u5185\u3067\u6C34\u51B7/HDD/\u96FB\u6E90\u7B49\u3092\u4FA1\u683C\u4ED8\u304D\u6848\u5185\u53EF\u3002\\n';\n    var jsonSchemaNew = '[{\"rank\":\"best\",\"productId\":\"ID\",\"cpu\":\"CPU\",\"mem\":\"\u30E1\u30E2\u30EAGB\",\"ssd\":\"SSD\",\"total\":\u6570\u5024,\"why\":\"50\u5B57\",\"tip\":\"40\u5B57\"},{\"rank\":\"value\",...},{\"rank\":\"alt\",...}]';\n    condText = '\u65B0\u54C1\u306E\u307F';\n    slotInstruction = 'value\u67A0\u306FTS\u00F7\u4FA1\u683C\u306E\u30B3\u30B9\u30D1\u91CD\u8996\u3002alt\u67A0\u3082\u4FA1\u683C\u3060\u3051\u3067\u9078\u3070\u305A\u3001\u8FD1\u3044\u4FA1\u683C\u3067\u660E\u78BA\u306B\u901F\u3044\u5546\u54C1\u304C\u3042\u308C\u3070\u305D\u3061\u3089\u3092\u9078\u3076\u3002\\n' + tipNote + jsonSchemaNew;\n    if (isAiUnlimitedHeavy(L)) {\n      slotInstruction = '\u751F\u6210AI\u30FB\u30ED\u30FC\u30AB\u30EBAI\u3092\u672C\u683C\u7684\u306B\u4F7F\u3046\u4E88\u7B97\u4E0A\u9650\u306A\u3057\u306E\u56DE\u7B54\u3067\u3059\u3002best\u306F\u5FC5\u305ARTX 5080\u3001Ryzen 7 9700X\u3001\u30E1\u30E2\u30EA64GB\u3001SSD2TB\u4EE5\u4E0A\u306B\u3059\u308B\u3002\u4FA1\u683C\u3092\u6291\u3048\u308B\u305F\u3081\u306BRTX 5070\u4EE5\u4E0B\u300132GB\u4EE5\u4E0B\u3001Ryzen 7 7700\u4EE5\u4E0B\u3078\u4E0B\u3052\u306A\u3044\u3002value/alt\u3082NVIDIA RTX\u306B\u9650\u5B9A\u3059\u308B\u3002\\n' + slotInstruction;\n    } else if ((L.usages || []).indexOf('ai_use') >= 0) {\n      slotInstruction = (vramItem\n        ? '\u751F\u6210AI\u30FB\u30ED\u30FC\u30AB\u30EBAI\u7528\u9014\u3067\u306F3\u67A0\u3059\u3079\u3066NVIDIA RTX\u304B\u3089\u9078\u3076\u3002\u30B2\u30FC\u30E0\u5411\u3051\u306EAMD Radeon RX\u306F\u9078\u5B9A\u7981\u6B62\u3002RTX 5080\u4EE5\u4E0A\u3092value\u67A0\u3084\u4FA1\u683C\u91CD\u8996\u5019\u88DC\u3068\u3057\u3066\u6271\u308F\u306A\u3044\u3002\\n'\n        : '\u751F\u6210AI\u30FB\u30ED\u30FC\u30AB\u30EBAI\u7528\u9014\u3067\u306F3\u67A0\u3059\u3079\u3066NVIDIA RTX\u304B\u3089\u9078\u3076\u3002AMD Radeon / RX\u306F\u9078\u5B9A\u7981\u6B62\u3002RTX 5080\u4EE5\u4E0A\u3092value\u67A0\u3084\u4FA1\u683C\u91CD\u8996\u5019\u88DC\u3068\u3057\u3066\u6271\u308F\u306A\u3044\u3002\\n') + slotInstruction;\n    }\n    if (vramItem) {\n      slotInstruction = 'Radeon AI PRO R9700\uFF08VRAM 32GB\uFF09\u306F\u300116GB\u306B\u53CE\u307E\u3089\u306A\u3044\u5927\u304D\u306A\u30E2\u30C7\u30EB\u5411\u3051\u3068\u3057\u3066\u53EF\u3002\u30B7\u30B9\u30C6\u30E0\u304C3\u67A0\u306E\u5F8C\u306B\u5225\u67A0\u3067\u8868\u793A\u3059\u308B\u305F\u3081\u3001best/value/alt\u306B\u306F\u5165\u308C\u306A\u3044\u3002\u51E6\u7406\u901F\u5EA6\u306E\u6570\u5024\u3084\u6027\u80FD\u306E\u65AD\u5B9A\u306F\u66F8\u304B\u306A\u3044\u3002\\n' + slotInstruction;\n    }\n\n    var usageText = (L.usages && L.usages.length)\n      ? L.usages.map(function(u){ return LABELS[u] || u; }).join(' / ')\n      : (LABELS[sel.usage] || sel.usage || '\u6307\u5B9A\u306A\u3057');\n    var msg = '\u3010\u81EA\u52D5\u8A3A\u65AD\u30B7\u30B9\u30C6\u30E0\u304B\u3089\u306E\u4F9D\u983C\u3011\u30E6\u30FC\u30B6\u30FC\u306F\u5FC5\u8981\u306A\u8CEA\u554F\u306B\u56DE\u7B54\u6E08\u307F\u3067\u3059\u3002\u8FFD\u52A0\u8CEA\u554F\u306F\u4E0D\u8981\u3067\u3059\u3002\\n\\n'\n      + '\u25A0 \u904A\u3073\u305F\u3044\u30B2\u30FC\u30E0: ' + (names.length ? names.join(', ') : '\u30B2\u30FC\u30E0\u5229\u7528\u306A\u3057') + '\\n'\n      + '\u25A0 \u76EE\u6307\u3059\u5FEB\u9069\u3055: ' + (sel.comfort ? (LABELS[sel.comfort] || sel.comfort) : '\u7528\u9014\u306B\u5408\u308F\u305B\u3066\u304A\u307E\u304B\u305B') + ' (\u63A8\u5B9A\u89E3\u50CF\u5EA6: ' + L.res + ', \u91CD\u8996: ' + L.pri + ')\\n'\n      + '\u25A0 \u4F7F\u3044\u65B9: ' + usageText + ' (\u914D\u4FE1\u30EC\u30D9\u30EB: ' + L.str + ')\\n'\n      + (L.usageDetailLabel ? '\u25A0 \u7528\u9014\u306E\u8A73\u3057\u3055: ' + L.usageDetailLabel + '\\n' : '')\n      + (usageDetailRequirement(L) ? '\u25A0 \u7528\u9014\u5225\u306E\u5FC5\u8981\u6027\u80FD: ' + usageDetailRequirement(L) + '\uFF08\u3053\u306E\u57FA\u6E96\u3092\u4E00\u822C\u30EB\u30FC\u30EB\u3088\u308A\u512A\u5148\uFF09\\n' : '')\n      + '\u25A0 \u4E88\u7B97\u4E0A\u9650: ' + budText + '\\n'\n      + (function(){\n          /* \u4E88\u7B97\u4E0B\u9650(\u4E0B\u9650\u3092\u52D5\u304B\u3057\u305F\u5834\u5408\u306E\u307F) */\n          var lo = parseInt(sel.budgetMin, 10) || 0;\n          return (sel.budgetAnswered && lo > BUDGET_MIN)\n            ? '\u25A0 \u4E88\u7B97\u4E0B\u9650: ' + (lo / 10000) + '\u4E07\u5186\u4EE5\u4E0A\\n' : '';\n        })()\n      + (function(){\n          /* \u898B\u305F\u76EE\u306E\u5E0C\u671B(\u4EFB\u610F)\u3002\u30B1\u30FC\u30B9\u9078\u5B9A\u306E\u30D2\u30F3\u30C8\u3068\u3057\u3066\u6E21\u3059 */\n          var L2 = sel.look || {};\n          var p = [];\n          if (L2.rgb === 'yes') p.push('\u5149\u308B\u30B1\u30FC\u30B9\u5E0C\u671B(\u2192 DS900/NeoPrism/AQUA UNO)');\n          if (L2.rgb === 'no')  p.push('\u5149\u3089\u306A\u3044\u30B1\u30FC\u30B9\u5E0C\u671B(\u2192 H17\u306E\u307F)');\n          if (L2.size === 'big')   p.push('\u5927\u304D\u3081\u306E\u30B1\u30FC\u30B9\u5E0C\u671B(\u2192 NeoPrism/DS900)');\n          if (L2.size === 'small') p.push('\u5C0F\u3055\u3081\u306E\u30B1\u30FC\u30B9\u5E0C\u671B(\u2192 AQUA UNO)');\n          return p.length ? '\u25A0 \u898B\u305F\u76EE\u306E\u5E0C\u671B: ' + p.join(' / ') + '\\n' : '';\n        })();\n\n    var userRequest = ($('wzRequest').value || '').trim();\n    if (userRequest) {\n      userRequest = userRequest.replace(/<[^>]*>/g, '').replace(/[{}[\\]]/g, '').replace(/\\n{2,}/g, '\\n').replace(/(.)\\1{9,}/g, '$1$1$1').slice(0, 100);\n      if (userRequest.length > 0 && !/^[\\s\\W]+$/.test(userRequest)) {\n        msg += '\u25A0 \u30E6\u30FC\u30B6\u30FC\u304B\u3089\u306E\u8981\u671B: ' + userRequest + '\\n\uFF08\u203B\u8981\u671B\u306F\u53C2\u8003\u7A0B\u5EA6\u306B\u3002PC\u69CB\u6210\u63D0\u6848\u306E\u7BC4\u56F2\u5916\u306E\u8981\u671B\u306F\u7121\u8996\u3057\u3066OK\u3067\u3059\uFF09\\n';\n      }\n    }\n    msg += '\\n\u3010\u5546\u54C1\u30EA\u30B9\u30C8\u3011ID|GPU|\u5546\u54C1\u540D|\u7A0E\u8FBC\u4FA1\u683C(k=\u5343\u5186)|TS\u30B9\u30B3\u30A2|VRAM\u3002+opt:\u306F\u30AA\u30D7\u30B7\u30E7\u30F3\u52A0\u7B97\u984D(k=\u5343\u5186)\u3002\\n'\n      + whitelistText + '\\n'\n      + '\u203B\u30EA\u30B9\u30C8\u5916ID\u7981\u6B62\u3002\u91CD\u8907\u7981\u6B62\u3002\u6700\u4F4ETS=' + wl.minS + ',VRAM=' + wl.minV + 'GB\u3002\\n\\n'\n      + '\u3010\u9078\u5B9A\u30EB\u30FC\u30EB\u3011\\n'\n      + '1)\u5FC5\u305Abest/value/alt\u306E3\u67A0\u8FD4\u3059\u3002best=\u6761\u4EF6\u3092\u6E80\u305F\u3059\u4E2D\u3067\u4FA1\u683C\u3068\u6027\u80FD\u306E\u91E3\u308A\u5408\u3044\u304C\u6700\u3082\u826F\u3044\u69CB\u6210,value=\u30B3\u30B9\u30D1\u91CD\u8996,alt=best\u3068\u9055\u3046\u5225\u30E1\u30FC\u30AB\u30FC\u3092\u512A\u5148\u3002\u305F\u3060\u3057\u6027\u80FD\u5DEE\u304C\u5927\u304D\u3044\u5834\u5408\u306F\u3001\u540C\u30E1\u30FC\u30AB\u30FC\u3067\u3082\u6027\u80FD\u304C\u8FD1\u304F\u6BD4\u8F03\u4FA1\u5024\u306E\u3042\u308B\u5019\u88DC\u3092\u9078\u3076\u3002\\n'\n      + '2)total>\u4E88\u7B97\u4E0A\u9650\u306F\u7D76\u5BFE\u7981\u6B62(1\u5186\u3067\u3082\u8D85\u904E\u4E0D\u53EF)\u3002\u8D85\u3048\u305F\u3089CPU\u2192SSD\u2192\u30E1\u30E2\u30EA\u306E\u9806\u306B\u898B\u76F4\u3059\u3002\u305F\u3060\u3057\u300C\u7528\u9014\u5225\u306E\u5FC5\u8981\u6027\u80FD\u300D\u306B\u8A18\u8F09\u3055\u308C\u305FCPU\u30FB\u30E1\u30E2\u30EA\u30FBSSD\u30FBGPU\u306E\u6700\u4F4E\u5024\u3088\u308A\u4E0B\u3052\u306A\u3044\u3002\u6700\u4F4E\u5024\u3068\u4E88\u7B97\u3092\u4E21\u7ACB\u3067\u304D\u306A\u3044\u5834\u5408\u306Fimpossible\u3092\u8FD4\u3059\u3002\\n'\n      + '3)\u30E1\u30E2\u30EA/SSD\u306F\u7528\u9014\u3067\u6C7A\u3081\u308B\u3002\u8EFD\u91CF\u30B2\u30FC\u30E0(VALO/LoL)=16GB/512GB\u3002AAA/4K=32GB+1TB\u3002\u914D\u4FE1/\u7DE8\u96C6=32GB+1TB\u4EE5\u4E0A\u3002\u672C\u683C\u7DE8\u96C6/3D=64GB+2TB\u3002\\n'\n      + '4)CPU\u512A\u5148\u5EA6\u306FGPU\u6027\u80FD\u3068\u4E88\u7B97\u3088\u308A\u4F4E\u3044\u30025500\u30FB7700\u306F\u3001\u4E88\u7B97\u304C\u53B3\u3057\u3044\u5834\u5408\u304B\u3001\u30B2\u30FC\u30E0\u6027\u80FD\u3092\u512A\u5148\u3057\u3066\u4ED6\u306E\u6027\u80FD\u3092\u6291\u3048\u308B\u5834\u5408\u306E\u5019\u88DC\u3002\u305D\u308C\u4EE5\u5916\u306F5700X\u30FB9700X\u30FBX3D\u7CFB\u3092\u5148\u306B\u691C\u8A0E\u3002\u52D5\u753B\u7DE8\u96C6\u30FB\u914D\u4FE1\u3067\u306F\u3001\u4FA1\u683C\u5DEE\u3068\u30B2\u30FC\u30E0\u6027\u80FD\u306E\u5DEE\u304C\u5C0F\u3055\u3044\u306A\u30895700X\u307E\u305F\u306F9700X\u3092\u512A\u5148\u3002CPU\u3092\u4E0A\u3052\u308B\u305F\u3081\u306B\u30B2\u30FC\u30E0\u6027\u80FD\u3092\u5927\u304D\u304F\u843D\u3068\u3057\u305F\u308A\u3001\u4E88\u7B97\u4E0A\u9650\u3092\u8D85\u3048\u305F\u308A\u3057\u306A\u3044\u3002RTX5080\u4EE5\u4E0A\u306A\u30897800X3D\u4EE5\u4E0A\u3092\u5FC5\u9808\u3068\u3059\u308B\u3002\\n'\n      + '5)\u4E88\u7B97\u306B5\u4E07\u4F59\u88D5\u21921\u30E9\u30F3\u30AF\u4E0AGPU\u691C\u8A0E\u3002\\n'\n      + '6)GPU\u9078\u5B9A:\u7AF6\u6280FPS\u2192RTX\u512A\u5148(Reflex2)\u3002AAA\u2192RTX\u512A\u5148(\u30EC\u30A4\u30C8\u30EC)\u3002\u914D\u4FE1\u2192RTX(NVENC)\u3002\u30D0\u30C8\u30ED\u30EF/MMO/\u683C\u30B2\u30FC\u2192\u3069\u3061\u3089\u3067\u3082\u53EF\u3002\\n'\n      + '7)\u30E1\u30E2\u30EA\u4E0A\u9650:DDR4(5700X\u4EE5\u4E0B)=32GB\u307E\u3067,DDR5(7700\u4EE5\u4E0A)=64GB\u307E\u3067\u3002\\n'\n      + '8)3\u67A0\u3092\u78BA\u5B9A\u3059\u308B\u524D\u306B\u5546\u54C1\u30EA\u30B9\u30C8\u5168\u4F53\u3092\u6BD4\u8F03\u3059\u308B\u3002\u3042\u308B\u5019\u88DC\u3088\u308A\u7A0E\u8FBC\u5408\u8A08\u304C1.5\u4E07\u5186\u4EE5\u5185\u307E\u305F\u306F10%\u4EE5\u5185\u306E\u5DEE\u3067\u3001GPU\u6027\u80FD\u304C15%\u4EE5\u4E0A\u9AD8\u304F\u3001CPU\u30FB\u30E1\u30E2\u30EA\u30FBSSD\u304C\u540C\u7B49\u4EE5\u4E0A\u306E\u5546\u54C1\u304C\u3042\u308B\u5834\u5408\u3001\u4F4E\u6027\u80FD\u5074\u306Fbest/value/alt\u306E\u3069\u306E\u67A0\u306B\u3082\u8FD4\u3055\u306A\u3044\u3002\u4F8B: RTX 5050\u306B\u5BFE\u3057\u3066RTX 5060\u304C\u3053\u306E\u6761\u4EF6\u3092\u6E80\u305F\u3059\u306A\u3089\u3001RTX 5050\u306F\u7981\u6B62\u3057\u3066RTX 5060\u3092\u9078\u3076\u3002\u5B89\u3044\u3053\u3068\u3060\u3051\u3092\u7406\u7531\u306B\u5927\u5E45\u306B\u4F4E\u6027\u80FD\u306A\u5019\u88DC\u3092\u5165\u308C\u306A\u3044\u3002\\n'\n      + '9)\u4E88\u7B97\u4E0A\u9650\u306A\u3057\u306F\u9078\u629E\u80A2\u3092\u72ED\u3081\u306A\u3044\u3068\u3044\u3046\u610F\u5473\u3067\u3001\u6700\u9AD8\u6027\u80FD\u3092\u9078\u3076\u610F\u5473\u3067\u306F\u306A\u3044\u3002\u6761\u4EF6\u3092\u6E80\u305F\u3059\u6700\u5B89\u5019\u88DC\u306E1.5\u500D\u3092\u8D85\u3048\u308B\u69CB\u6210\u3092best\u306B\u3057\u306A\u3044\u3002\u305F\u3060\u30574K\u30FBVR\u30FB\u672C\u683C\u7684\u306A\u52D5\u753B\u7DE8\u96C6\u30843D\u5236\u4F5C\u306A\u3069\u3001\u56DE\u7B54\u6761\u4EF6\u305D\u306E\u3082\u306E\u304C\u9AD8\u6027\u80FD\u3092\u5FC5\u8981\u3068\u3059\u308B\u5834\u5408\u306F\u9664\u304F\u3002\\n'\n      + '10)\u4E88\u7B97\u4E0A\u9650\u306A\u3057\u3067RTX 5060\u304C\u5546\u54C1\u30EA\u30B9\u30C8\u306B\u3042\u308B\u5834\u5408\u3001RTX 5050\u306F\u7981\u6B62\u3002\u4E88\u7B97\u4E0A\u9650\u3042\u308A\u3067\u306F\u3001\u540C\u3058CPU\u30FB\u30E1\u30E2\u30EA\u30FBSSD\u306B\u3057\u305FRTX 5060\u304C\u4E0A\u9650\u3092\u8D85\u3048\u308B\u5834\u5408\u3060\u3051RTX 5050\u3092\u8A31\u53EF\u3059\u308B\u3002\\n'\n      + '11)\u540C\u3058GPU\u7CFB\u7D71\u306E\u5BB9\u91CF\u9055\u3044(\u4F8B: RX 9060 XT 8GB\u306816GB)\u30922\u67A0\u306B\u91CD\u8907\u3055\u305B\u306A\u3044\u30023\u67A0\u306F\u305D\u308C\u305E\u308C\u9055\u3046GPU\u7CFB\u7D71\u306B\u3059\u308B\u3002\\n'\n      + (vramItem\n        ? '12)\u751F\u6210AI\u30FB\u30ED\u30FC\u30AB\u30EBAI\u7528\u9014\u304C\u542B\u307E\u308C\u308B\u5834\u5408\u3001best/value/alt\u306E\u5168\u67A0\u3092NVIDIA RTX\u306B\u9650\u5B9A\u3059\u308B\u3002\u30B2\u30FC\u30E0\u5411\u3051\u306EAMD Radeon RX\u306F\u7981\u6B62\u3002Radeon AI PRO R9700\uFF08VRAM 32GB\uFF09\u306F\u5927\u304D\u306A\u30E2\u30C7\u30EB\u5411\u3051\u3068\u3057\u3066\u53EF\u3067\u30013\u67A0\u306E\u5F8C\u306B\u5225\u67A0\u3067\u8868\u793A\u3055\u308C\u308B\u3002RTX 5080\u4EE5\u4E0A\u306B\u300C\u4FA1\u683C\u3092\u6291\u3048\u308B\u300D\u300C\u30B3\u30B9\u30D1\u91CD\u8996\u300D\u7B49\u306E\u4FA1\u683C\u8A34\u6C42\u3092\u4ED8\u3051\u306A\u3044\u3002\\n'\n        : '12)\u751F\u6210AI\u30FB\u30ED\u30FC\u30AB\u30EBAI\u7528\u9014\u304C\u542B\u307E\u308C\u308B\u5834\u5408\u3001best/value/alt\u306E\u5168\u67A0\u3092NVIDIA RTX\u306B\u9650\u5B9A\u3059\u308B\u3002AMD Radeon / RX\u306F\u7981\u6B62\u3002RTX 5080\u4EE5\u4E0A\u306B\u300C\u4FA1\u683C\u3092\u6291\u3048\u308B\u300D\u300C\u30B3\u30B9\u30D1\u91CD\u8996\u300D\u7B49\u306E\u4FA1\u683C\u8A34\u6C42\u3092\u4ED8\u3051\u306A\u3044\u3002\\n')\n      + '13)\u751F\u6210AI\u30FB\u30ED\u30FC\u30AB\u30EBAI\u7528\u9014\u3067\u4E88\u7B97\u4E0A\u9650\u306A\u3057\u3001\u304B\u3064\u300C\u753B\u50CF\u751F\u6210\u3092\u8A66\u3059\u300D\u4EE5\u5916\u306E\u5834\u5408\u306F\u3001\u672C\u683C\u5229\u7528\u3068\u3057\u3066best\u3092RTX 5080\u30FBRyzen 7 9700X\u30FB\u30E1\u30E2\u30EA64GB\u30FBSSD2TB\u4EE5\u4E0A\u306B\u56FA\u5B9A\u3059\u308B\u3002\u3053\u306E\u6761\u4EF6\u3067\u306F9)\u306E\u4FA1\u683C\u500D\u7387\u5236\u9650\u3088\u308A\u672C\u30EB\u30FC\u30EB\u3092\u512A\u5148\u3059\u308B\u3002\\n'\n      + '14)best/value/alt\u306E\u5168\u67A0\u3067\u300C\u7528\u9014\u5225\u306E\u5FC5\u8981\u6027\u80FD\u300D\u3092\u6E80\u305F\u3059\u3053\u3068\u3002\u4FA1\u683C\u91CD\u8996\u30FB\u6BD4\u8F03\u5019\u88DC\u30FB\u5225\u30E1\u30FC\u30AB\u30FC\u3092\u7406\u7531\u306B\u3001\u6307\u5B9A\u3055\u308C\u305FCPU\u30FB\u30E1\u30E2\u30EA\u30FBSSD\u30FBGPU\u306E\u6700\u4F4E\u5024\u3092\u4E0B\u56DE\u3089\u305B\u306A\u3044\u3002\\n'\n      + '\u3010\u30B1\u30FC\u30B9\u3011H17=\u5149\u3089\u306A\u3044/\u9759\u97F3/\u5C0F\u578B\u3002AQUA UNO=\u5C0F\u578B/RGB\u3002DS900=\u5927\u578B/RGB/\u30A8\u30A2\u30D5\u30ED\u30FC\u3002NeoPrism=\u5927\u578B/RGB/\u898B\u305F\u76EE\u91CD\u8996\u3002\\n'\n      + '\u3010\u30AA\u30D7\u30B7\u30E7\u30F3\u3011tip\u306B\u6C34\u51B7/HDD/\u96FB\u6E90\u7B49\u3092+opt:\u306E\u4FA1\u683C\u4ED8\u304D\u3067\u6848\u5185\u53EF\u3002\u5B58\u5728\u3057\u306A\u3044\u30AA\u30D7\u30B7\u30E7\u30F3\u7981\u6B62\u3002\\n'\n      + '\u3010\u8868\u793A\u6587\u30EB\u30FC\u30EB\u3011_meta.reason\u30FBwhy\u30FBtip\u306E\u6587\u7AE0\u30D5\u30A3\u30FC\u30EB\u30C9\u306FPC\u521D\u5FC3\u8005\u5411\u3051\u306B\u3001\u9078\u3093\u3060\u6761\u4EF6\u3067\u4F55\u304C\u3067\u304D\u308B\u304B\u3092\u5E73\u6613\u306A\u65E5\u672C\u8A9E\u3067\u8AAC\u660E\u3059\u308B\u3002\u4ED5\u69D8\u6B04\u306E\u88FD\u54C1\u540D\u30FB\u578B\u756A\u30FB\u5BB9\u91CF\u306F\u305D\u306E\u307E\u307E\u3067\u3088\u3044\u304C\u3001\u6587\u7AE0\u4E2D\u3067\u306FNVENC\u3001Reflex\u3001DLSS\u3001VRAM\u3001Time Spy\uFF0FTS\u3001DDR4\uFF0FDDR5\u3001\u30EC\u30A4\u30C8\u30EC\u3001\u30A8\u30F3\u30B3\u30FC\u30C9\u3001AAA\u3001GPU\uFF0FCPU\u3001RGB\u3001\u30A8\u30A2\u30D5\u30ED\u30FC\u306A\u3069\u306E\u7565\u8A9E\u30FB\u5C02\u9580\u7528\u8A9E\u3092\u4F7F\u308F\u305A\u3001\u5229\u7528\u8005\u304C\u5F97\u3089\u308C\u308B\u4F53\u9A13\u3078\u8A00\u3044\u63DB\u3048\u308B\u3002\u69CB\u6210\u4E0D\u53EF\u6642\u306Ereason\u30FBsuggestion\u3082\u540C\u3058\u30EB\u30FC\u30EB\u306B\u5F93\u3046\u3002\u4F8B: \u914D\u4FE1\u5411\u3051\u306A\u3089\u300C\u30B2\u30FC\u30E0\u3092\u3057\u306A\u304C\u3089\u914D\u4FE1\u3057\u3084\u3059\u3044\u69CB\u6210\u3067\u3059\u3002\u300D\u3002\\n'\n      + '\u3010\u51FA\u529B\u3011JSON\u914D\u52174\u8981\u7D20:[{\"_meta\":true,\"reason\":\"80\u5B57\"},best,value,alt]\u3002\u69CB\u6210\u4E0D\u53EF\u306A\u3089{\"impossible\":true,\"reason\":\"...\",\"suggestion\":\"...\"}\u3002\\n\\n'\n      + slotInstruction;\n\n    var settled = false;\n    var controller = typeof AbortController === 'function' ? new AbortController() : null;\n    var timeout = null;\n    function claimTerminal(){\n      if (settled) return false;\n      settled = true;\n      if (timeout) clearTimeout(timeout);\n      return true;\n    }\n    timeout = setTimeout(function(){\n      if (!claimTerminal()) return;\n      if (controller) controller.abort();\n      stopLoad(function(){ calling = false; renderCandidateFallback('AI\u5FDC\u7B54\u304C\u9045\u3044\u305F\u3081\u3001\u5B9F\u5546\u54C1\u30C7\u30FC\u30BF\u304B\u3089\u7D50\u679C\u3092\u4F5C\u6210\u3057\u307E\u3057\u305F\u3002'); });\n    }, 25000);\n\n    var sig = _sign();\n    /* Phase 1: sent \u2192 waiting for response */\n    loadDelayTimers.push(setTimeout(function(){ if (loadPhase < 1) setLoadPhase(1, '\u6700\u9069\u306A\u69CB\u6210\u3092\u7167\u5408\u4E2D'); }, 800));\n\n    fetch(API, {\n      method:'POST',\n      headers:{'Content-Type':'application/json'},\n      body:JSON.stringify({message:msg, sessionId:sessionId, history:[], model:'gpt-6-luna', _t:sig._t, _k:sig._k, source:'diagnosis'}),\n      signal: controller ? controller.signal : undefined\n    })\n    .then(function(r){\n      if (settled) throw new Error('Request already settled');\n      /* Phase 2: response received \u2192 parsing */\n      setLoadPhase(2, '\u7D50\u679C\u3092\u6574\u7406\u4E2D...');\n      return r.json();\n    })\n    .then(function(data){\n      if (!claimTerminal()) return;\n      lastCallTime = Date.now();\n      stopLoad(function(){\n        calling = false;\n        var text = '';\n        ['answer','reply','message','text'].forEach(function(k){ if (data && typeof data[k]==='string' && data[k].trim() && !text) text = data[k]; });\n        if (!text) { renderCandidateFallback('\u5B9F\u5546\u54C1\u30C7\u30FC\u30BF\u304B\u3089\u7D50\u679C\u3092\u4F5C\u6210\u3057\u307E\u3057\u305F\u3002'); return; }\n        var parsed = parseJSON(text);\n        var metaReason = '';\n        var rawItems = Array.isArray(parsed) ? parsed.filter(function(it){\n          if (it && it._meta) { metaReason = it.reason || ''; return false; }\n          return true;\n        }) : [];\n        var budCeil = budUnlimited ? Infinity : parseInt(L.bud, 10);\n        var budgetSafeProducts = budUnlimited ? wl.resultProducts : wl.resultProducts.filter(function(p){ return p.price <= budCeil; });\n        var items = window.TitanRecommendationEngine.completeResults(rawItems, wl.products, budgetSafeProducts);\n        if (window.TitanRecommendationEngine.upgradeDominatedComparisons) {\n          items = window.TitanRecommendationEngine.upgradeDominatedComparisons(items, budgetSafeProducts, { budgetUnlimited: budUnlimited });\n        }\n        items = enforceAiUnlimitedHeavyItems(items, budgetSafeProducts, L);\n        items = enforceUsageMinimumItems(items, budgetSafeProducts, L);\n        items = items.map(function(it){\n          var product = findCatalogProductById(it.productId) || findCatalogProduct(it.gpu);\n          return Object.assign({}, it, { total: configuredItemTotal(it, product) });\n        });\n        items = filterValidConfiguredItems(items, L, budCeil);\n        if (items.length < 3) {\n          items = window.TitanRecommendationEngine.completeResults(items, budgetSafeProducts, budgetSafeProducts);\n          if (window.TitanRecommendationEngine.upgradeDominatedComparisons) {\n            items = window.TitanRecommendationEngine.upgradeDominatedComparisons(items, budgetSafeProducts, { budgetUnlimited: budUnlimited });\n          }\n          items = enforceAiUnlimitedHeavyItems(items, budgetSafeProducts, L);\n          items = enforceUsageMinimumItems(items, budgetSafeProducts, L);\n          items = items.map(function(it){\n            var product = findCatalogProductById(it.productId) || findCatalogProduct(it.gpu);\n            return Object.assign({}, it, { total: configuredItemTotal(it, product) });\n          });\n          items = filterValidConfiguredItems(items, L, budCeil);\n        }\n        if (!items.length) { renderCandidateFallback(metaReason || 'AI\u306E\u56DE\u7B54\u3092\u5B9F\u5546\u54C1\u30C7\u30FC\u30BF\u3067\u88DC\u6B63\u3057\u307E\u3057\u305F\u3002'); return; }\n        if (isAiUnlimitedHeavy(L)) metaReason = '\u751F\u6210AI\u3092\u672C\u683C\u7684\u306B\u4F7F\u3046\u524D\u63D0\u3067\u3001\u4E88\u7B97\u3088\u308A\u6027\u80FD\u3068\u4F59\u88D5\u3092\u512A\u5148\u3057\u307E\u3057\u305F\u3002';\n        renderResults(withLargeVramItem(items, vramItem), metaReason);\n        go(7);\n      });\n    })\n    .catch(function(){\n      if (!claimTerminal()) return;\n      stopLoad(function(){ calling = false; renderCandidateFallback('\u901A\u4FE1\u72B6\u6CC1\u306E\u305F\u3081\u3001\u5B9F\u5546\u54C1\u30C7\u30FC\u30BF\u304B\u3089\u7D50\u679C\u3092\u4F5C\u6210\u3057\u307E\u3057\u305F\u3002'); });\n    });\n  }\n\n  function parseJSON(text) {\n    try { var d = JSON.parse(text); if (d && typeof d === 'object') return d; } catch(e){}\n    var m = text.match(/\\[[\\s\\S]*?\\]/);\n    if (m) { try { var d2 = JSON.parse(m[0]); if (Array.isArray(d2)) return d2; } catch(e){} }\n    var im = text.match(/\\{[\\s\\S]*?\"impossible\"[\\s\\S]*?\\}/);\n    if (im) { try { var d3 = JSON.parse(im[0]); if (d3.impossible) return d3; } catch(e){} }\n    var objs = text.match(/\\{[^{}]{20,}\\}/g);\n    if (objs && objs.length >= 2) { var arr = []; objs.forEach(function(o){ try { arr.push(JSON.parse(o)); } catch(e){} }); if (arr.length >= 2) return arr; }\n    return null;\n  }\n\n  function showImpossible(reason, suggestion) {\n    $('wzReason').textContent = '';\n    hideShareSection();\n    var _Li = legacy();\n    var names = _Li.games.map(gameName).join('\u30FB');\n    var comfortL = LABELS[sel.comfort]||sel.comfort, budL = formatBudget(sel.budget);\n    $('wzResults').innerHTML =\n      '<div class=\"gs-imp\">'\n      + '<div class=\"gs-imp__head\"><span class=\"gs-imp__tag\">\u8A72\u5F53\u306A\u3057</span><h3 class=\"gs-imp__title\">\u3053\u306E\u6761\u4EF6\u3067\u306F\u69CB\u6210\u304C\u96E3\u3057\u3044\u3067\u3059</h3></div>'\n      + '<p class=\"gs-imp__reason\">' + esc(reason) + '</p>'\n      + (suggestion ? '<p class=\"gs-imp__suggest\">' + esc(suggestion) + '</p>' : '')\n      + '<div class=\"gs-imp__conds\"><span>' + esc(names) + '</span><span>' + esc(comfortL) + '</span><span>' + esc(budL) + '</span></div>'\n      + '</div>';\n    go(7);\n  }\n\n  function normalizeGpuName(value) {\n    return String(value || '').toUpperCase().replace(/GEFORCE|NVIDIA/g, '').replace(/[^A-Z0-9]/g, '');\n  }\n\n  function gpuFamily(value) {\n    return normalizeGpuName(value).replace(/(?:8|16)GB/g, '');\n  }\n\n  function gpuVram(value) {\n    var match = normalizeGpuName(value).match(/(8|16)GB/);\n    return match ? match[1] : '';\n  }\n\n  function findCatalogProduct(gpu) {\n    var target = gpuFamily(gpu);\n    var targetVram = gpuVram(gpu);\n    var family = GS_PRODUCT_CATALOG.filter(function(product){\n      return product.title && product.url && gpuFamily(product.key) === target;\n    });\n    if (targetVram) {\n      return family.find(function(product){ return gpuVram(product.key) === targetVram; }) || null;\n    }\n    return family[0] || null;\n  }\n\n  function findCatalogProductById(productId) {\n    return GS_PRODUCT_CATALOG.find(function(product){\n      return product.id === productId && product.title && product.url;\n    }) || null;\n  }\n\n  function productTitleSpecs(title, fallbackCpu, fallbackMemory) {\n    var text = String(title || '');\n    var cpus = ['Ryzen 7 9800X3D','Ryzen 7 7800X3D','Ryzen 7 9700X','Ryzen 7 7700','Ryzen 7 5700X','Ryzen 7 3700X','Ryzen 5 5500'];\n    var cpu = cpus.find(function(candidate){ return text.toUpperCase().indexOf(candidate.toUpperCase()) >= 0; }) || fallbackCpu;\n    var memoryMatch = text.toUpperCase().match(/(?:DDR[45]\\s*)?(16|32|64)GB\\b/);\n    return { cpu: cpu, memory: memoryMatch ? memoryMatch[1] + 'GB' : fallbackMemory };\n  }\n\n  function displayPrice(value) {\n    if (typeof value === 'number' && Number.isFinite(value)) return '\u00A5' + value.toLocaleString('ja-JP');\n    return String(value || '\u4FA1\u683C\u306F\u5546\u54C1\u30DA\u30FC\u30B8\u3067\u78BA\u8A8D');\n  }\n\n  /* \u5546\u54C1\u30DA\u30FC\u30B8\u306E\u69CB\u6210\u8868\u3092\u6B63\u672C\u306B\u3001\u540C\u3058GPU\u30FB\u6A19\u6E96CPU\u306E\u30B1\u30FC\u30B9\u5546\u54C1\u3092\u5FA9\u5143\u3059\u308B\u3002\n     Liquid\u306E\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u62BD\u51FA\u304C\u30E1\u30BF\u30D5\u30A3\u30FC\u30EB\u30C9\u8868\u8A18\u5DEE\u3067\u7A7A\u306B\u306A\u3063\u305F\u5834\u5408\u3060\u3051\u4F7F\u3046\u3002 */\n  function configuratorCasesForProduct(product) {\n    var data = window.__TG_CFG_DATA;\n    if (!product || !data || !Array.isArray(data.gpus) || !Array.isArray(data.cases) || !data.handles || !data.matrix) return null;\n    var gpu = data.gpus.find(function(entry){\n      return normalizeGpuName(entry.id) === normalizeGpuName(product.key);\n    });\n    if (!gpu) return null;\n    var specs = productTitleSpecs(product.title, '', '16GB');\n    if (!specs.cpu) return null;\n    var list = [];\n    data.cases.forEach(function(group){\n      (group.variants || []).forEach(function(variant){\n        var configKey = gpu.id + '|' + variant.case_name + '|' + specs.cpu;\n        var handle = data.handles[configKey];\n        var price = Number(data.matrix[configKey]);\n        if (!handle || !Number.isFinite(price) || price <= 0) return;\n        list.push({\n          h: handle,\n          n: variant.case_name,\n          p: price,\n          i: variant.img || '',\n          u: '/products/' + handle\n        });\n      });\n    });\n    return list.length >= 2 ? list : null;\n  }\n\n  function getCasesForProduct(productId) {\n    var all = (CFG.cases || {})[productId];\n    if (all && all.length >= 2) return all;\n    var product = findCatalogProductById(productId);\n    var configuredCases = configuratorCasesForProduct(product);\n    if (configuredCases) return configuredCases;\n    if (product) {\n      var cpuTag = (product.title || '').match(/Ryzen\\s*(\\d+)\\s*(\\w+)/i);\n      var cpuKey = cpuTag ? ('ryzen' + cpuTag[1] + '-' + cpuTag[2]).toLowerCase() : '';\n      if (cpuKey) {\n        var fallbackKey = Object.keys(CFG.cases || {}).find(function(k) {\n          if (!k.includes(cpuKey) || !CFG.cases[k] || CFG.cases[k].length < 2) return false;\n          var fallbackProduct = findCatalogProductById(k);\n          if (!fallbackProduct || normalizeGpuName(fallbackProduct.key) !== normalizeGpuName(product.key)) return false;\n          var minP = Math.min.apply(null, CFG.cases[k].map(function(c){ return c.p; }));\n          return Math.abs(minP - product.price) < product.price * 0.15;\n        });\n        if (fallbackKey) return CFG.cases[fallbackKey];\n      }\n    }\n    return null;\n  }\n\n  function caseBaseName(caseName) {\n    return String(caseName || '').replace(/\\s*(BK|WH|BLACK|WHITE|\u30D6\u30E9\u30C3\u30AF|\u30DB\u30EF\u30A4\u30C8|POLAR|YOLK|CANARY|ZEBRA)\\s*$/i, '').trim();\n  }\n\n  function caseNameFromTitle(title) {\n    var cases = String(title || '').match(/\u3010([^\u3011]+)\u3011/g) || [];\n    var name = '';\n    cases.forEach(function(b) {\n      var v = b.replace(/[\u3010\u3011]/g, '');\n      if (/^(\u30B2\u30FC\u30DF\u30F3\u30B0PC|AI PC|\u65B0\u54C1|\u6574\u5099\u6E08\u307F|\u4E2D\u53E4)$/.test(v)) return;\n      if (!name) name = v;\n    });\n    return name;\n  }\n\n  function caseThumbPlaceholder() {\n    var placeholder = document.createElement('span');\n    placeholder.className = 'gs-rank__case-thumb gs-rank__case-thumb--none';\n    placeholder.setAttribute('aria-hidden', 'true');\n    placeholder.textContent = '\u2014';\n    return placeholder;\n  }\n\n  /* \u30AB\u30FC\u30C9\u306B\u306F\u73FE\u5728\u306E\u30B1\u30FC\u30B9\u540D\u3068\u5909\u66F4\u30DC\u30BF\u30F3\u3060\u3051\u3092\u7F6E\u304D\u3001\u5168\u5019\u88DC\u306F\u5171\u6709\u30E2\u30FC\u30C0\u30EB\u3067\u9078\u3076\u3002 */\n  function renderCaseControl(productId, selectedHandle) {\n    var all = getCasesForProduct(productId) || [];\n    var list = all.slice().sort(function(a,b){ return a.p - b.p; });\n    var current = list.find(function(v){ return v.h === selectedHandle; }) || null;\n    if (!current) {\n      var currentProduct = findCatalogProductById(selectedHandle) || findCatalogProductById(productId);\n      if (!currentProduct) return '';\n      var currentName = caseNameFromTitle(currentProduct.title)\n        || shortProductTitle(currentProduct.title).split('/')[0].trim()\n        || '\u73FE\u5728\u306E\u30B1\u30FC\u30B9';\n      current = {\n        h: selectedHandle || productId,\n        n: currentName,\n        i: currentProduct.image || ''\n      };\n    }\n    var selectedProduct = findCatalogProductById(current.h) || findCatalogProductById(selectedHandle) || findCatalogProductById(productId);\n    var fallbackImage = selectedProduct && selectedProduct.image ? selectedProduct.image : '';\n    var thumbSrc = current.i || fallbackImage;\n    var fallbackAttr = fallbackImage && fallbackImage !== thumbSrc\n      ? ' data-fallback-src=\"' + esc(fallbackImage) + '\"' : '';\n    var thumb = thumbSrc\n      ? '<img class=\"gs-rank__case-thumb\" src=\"' + esc(thumbSrc) + '\"' + fallbackAttr + ' alt=\"\" loading=\"lazy\" decoding=\"async\" width=\"52\" height=\"52\">'\n      : '<span class=\"gs-rank__case-thumb gs-rank__case-thumb--none\" aria-hidden=\"true\">\u2014</span>';\n    var action = list.length >= 2\n      ? '<button type=\"button\" class=\"gs-rank__case-trigger\" aria-haspopup=\"dialog\" aria-controls=\"gsCaseModal\">'\n        + '\u30B1\u30FC\u30B9\u3092\u5909\u66F4 <span aria-hidden=\"true\">' + list.length + '\u7A2E</span></button>'\n      : '<span class=\"gs-rank__case-fixed\">\u3053\u306E\u30B1\u30FC\u30B9\u306E\u307F</span>';\n    return '<div class=\"gs-rank__case-summary\">'\n      + thumb\n      + '<span class=\"gs-rank__case-copy\"><small>\u9078\u629E\u4E2D\u306E\u30B1\u30FC\u30B9</small><strong class=\"gs-rank__case-name\">' + esc(current.n) + '</strong></span>'\n      + action\n      + '</div>';\n  }\n\n  /* \u30B1\u30FC\u30B9\u9078\u629E (2026-07-24\u8FFD\u52A0)\n     \u8A3A\u65AD\u7D50\u679C\u306E\u63A8\u5968\u30E2\u30C7\u30EB\u3068\u540C\u30B9\u30DA\u30C3\u30AF\u3067\u3001\u30B1\u30FC\u30B9(\u898B\u305F\u76EE)\u3060\u3051\u9055\u3046\u5546\u54C1\u3092\u6A2A\u30B9\u30AF\u30ED\u30FC\u30EB\u3067\u63D0\u793A\u3002\n     \u30C7\u30FC\u30BF\u306F CFG.cases[\u57FA\u6E96handle] = [{h:handle, n:\u30B1\u30FC\u30B9\u540D, p:\u4FA1\u683C, i:\u753B\u50CF, u:URL}]\n     \u30AF\u30EA\u30C3\u30AF\u3067\u4FA1\u683C\u3068CTA\u30EA\u30F3\u30AF\u3092\u5DEE\u3057\u66FF\u3048\u308B (\u30DA\u30FC\u30B8\u9077\u79FB\u306FCTA\u62BC\u4E0B\u6642) */\n  var CASE_VISIBLE = 6; /* \u521D\u671F\u8868\u793A\u4EF6\u6570\u3002\u6B8B\u308A\u306F\u300C\u3059\u3079\u3066\u898B\u308B\u300D\u3067\u5C55\u958B */\n\n  /* addonTotal: AI\u63A8\u5968\u69CB\u6210\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u52A0\u7B97\u984D\u3002\u30B1\u30FC\u30B9\u4FA1\u683C\u306B\u4E0A\u4E57\u305B\u3057\u3066\u8868\u793A\u3059\u308B\u3002 */\n  function renderCasePicker(productId, productUrl, productPrice, addonTotal){\n    var all = getCasesForProduct(productId);\n    if (!all || all.length < 2) return '';\n    /* \u4FA1\u683C\u6607\u9806\u3002\u5DEE\u984D\u306F\u6700\u5B89\u30B1\u30FC\u30B9\u3092\u57FA\u6E96\u306B\u3057\u305F\u76F8\u5BFE\u8868\u793A */\n    var list = all.slice().sort(function(a,b){ return a.p - b.p; });\n    var basePrice = list[0] ? list[0].p : 0;\n    /* \u9078\u629E\u4E2D\u306F\u5FC5\u305A\u521D\u671F\u8868\u793A\u7BC4\u56F2\u306B\u5165\u308C\u308B (\u898B\u3048\u306A\u3044\u4F4D\u7F6E\u3067\u9078\u629E\u6E08\u307F\u306B\u306A\u308B\u306E\u3092\u9632\u3050) */\n    var selIdx = -1;\n    for (var i = 0; i < list.length; i++){ if (list[i].h === productId){ selIdx = i; break; } }\n    if (selIdx >= CASE_VISIBLE){\n      var picked = list.splice(selIdx, 1)[0];\n      list.splice(CASE_VISIBLE - 1, 0, picked);\n    }\n    var hidden = Math.max(0, list.length - CASE_VISIBLE);\n\n    var itemsHtml = list.map(function(v, idx){\n      var on = v.h === productId;\n      var diff = v.p - basePrice;\n      var diffStr = diff === 0 ? '\u5DEE\u984D\u306A\u3057' : '+' + displayPrice(diff);\n      var img = v.i\n        ? '<img src=\"' + esc(v.i) + '\" alt=\"\" loading=\"lazy\" decoding=\"async\" width=\"88\" height=\"88\">'\n        : '<span class=\"gs-case__noimg\" aria-hidden=\"true\">\u2014</span>';\n      return '<button type=\"button\" class=\"gs-case__item' + (on ? ' is-on' : '') + (idx >= CASE_VISIBLE ? ' is-extra' : '') + '\"'\n        + ' role=\"radio\" aria-checked=\"' + (on ? 'true' : 'false') + '\"'\n        + ' tabindex=\"' + (on ? '0' : '-1') + '\"'\n        + ' data-h=\"' + esc(v.h) + '\" data-u=\"' + esc(v.u) + '\" data-p=\"' + v.p + '\"'\n        + ' title=\"' + esc(v.n) + ' / ' + esc(diffStr) + '\">'\n        + '<span class=\"gs-case__img\">' + img + '</span>'\n        + '<span class=\"gs-case__name\">' + esc(v.n) + '</span>'\n        + '<span class=\"gs-case__diff\">' + esc(diffStr) + '</span>'\n        + '<span class=\"gs-case__mark\">\u9078\u629E\u4E2D</span>'\n        + '</button>';\n    }).join('');\n\n    return '<div class=\"gs-case\" data-base=\"' + esc(productId) + '\" data-addon=\"' + (parseInt(addonTotal, 10) || 0) + '\">'\n      + '<div class=\"gs-case__head\">'\n      +   '<span class=\"gs-case__title\">\u30B1\u30FC\u30B9\uFF08\u898B\u305F\u76EE\uFF09\u3092\u9078\u3076</span>'\n      +   '<span class=\"gs-case__count\">\u5168' + list.length + '\u7A2E</span>'\n      + '</div>'\n      + '<div class=\"gs-case__grid\" role=\"radiogroup\" aria-label=\"\u30B1\u30FC\u30B9\u3092\u9078\u3076\">' + itemsHtml + '</div>'\n      + (hidden > 0\n          ? '<button type=\"button\" class=\"gs-case__more\" aria-expanded=\"false\">\u3059\u3079\u3066\u306E\u30B1\u30FC\u30B9\u3092\u898B\u308B\uFF08\u5168' + list.length + '\u7A2E\uFF09</button>'\n          : '')\n      + '<div class=\"gs-case__foot\">'\n      +   '<div class=\"gs-case__price\"><span>\u9078\u629E\u4E2D\u306E\u4FA1\u683C</span><strong id=\"gsCasePrice2\" aria-live=\"polite\">' + esc(displayPrice(productPrice)) + '</strong></div>'\n      +   '<a href=\"' + esc(productUrl) + '\" class=\"gs-result-product__cta\" id=\"gsCaseCta\">\u3053\u306E\u69CB\u6210\u306E\u5546\u54C1\u30DA\u30FC\u30B8\u3092\u898B\u308B</a>'\n      + '</div>'\n      + '</div>';\n  }\n\n  /* \u30B1\u30FC\u30B9\u9078\u629E (\u7D50\u679C\u306F\u90FD\u5EA6\u518D\u63CF\u753B\u3055\u308C\u308B\u306E\u3067 document \u59D4\u8B72\u3067\u53D7\u3051\u308B) */\n  function selectCase(btn){\n    var wrap = btn.closest('.gs-case');\n    if (!wrap) return;\n    wrap.querySelectorAll('.gs-case__item').forEach(function(b){\n      b.classList.remove('is-on');\n      b.setAttribute('aria-checked', 'false');\n      b.setAttribute('tabindex', '-1');\n    });\n    btn.classList.add('is-on');\n    btn.setAttribute('aria-checked', 'true');\n    btn.setAttribute('tabindex', '0');\n    /* 2026-08-17: \u30B1\u30FC\u30B9\u5909\u66F4\u3067\u4FA1\u683C\u304C\u843D\u3061\u308B\u30D0\u30B0\u306E\u4FEE\u6B63\u3002\n       data-p \u306F\u305D\u306E\u30B1\u30FC\u30B9\u306E\u6A19\u6E96\u69CB\u6210\u4FA1\u683C\u306A\u306E\u3067\u3001AI\u63A8\u5968\u69CB\u6210\u306E\n       \u30AA\u30D7\u30B7\u30E7\u30F3\u52A0\u7B97\u984D(data-addon)\u3092\u8DB3\u3055\u306A\u3044\u3068\u52A0\u7B97\u5206\u304C\u6D88\u3048\u308B\u3002 */\n    var addon = parseInt(wrap.getAttribute('data-addon'), 10) || 0;\n    var csBp = parseInt(btn.dataset.p, 10) || 0;\n    if (__budCeil < Infinity) addon = Math.min(addon, Math.max(0, __budCeil - csBp));\n    var price = displayPrice(csBp + addon);\n    /* 2026-08-17: \u53F3\u30AB\u30FC\u30C9\u306EPRICE(gsCasePrice)\u306F\u4FA1\u683C\u306E\u91CD\u8907\u8868\u793A\u3092\u907F\u3051\u308B\u305F\u3081\u64A4\u53BB\u3057\u305F\u3002\n       \u5C06\u6765\u307E\u305F\u4E0A\u90E8\u306B\u4FA1\u683C\u3092\u51FA\u3059\u5834\u5408\u306B\u5099\u3048\u3001\u914D\u5217\u3067\u56DE\u3059\u5F62\u306F\u6B8B\u3059(\u5B58\u5728\u3057\u306A\u3044ID\u306F\u7121\u8996\u3055\u308C\u308B)\u3002 */\n    ['gsCasePrice2'].forEach(function(id){\n      var el = document.getElementById(id);\n      if (el) el.textContent = price;\n    });\n    var cta = document.getElementById('gsCaseCta');\n    /* 2026-08-17: \u30B1\u30FC\u30B9\u3092\u5909\u3048\u3066\u3082AI\u63A8\u5968\u306E\u69CB\u6210(tgcpu/tgmem/tgssd)\u3092\u843D\u3068\u3055\u306A\u3044\u3002\n       \u30B1\u30FC\u30B9\u9055\u3044\u306F\u5225\u5546\u54C1URL\u306A\u306E\u3067\u3001\u73FECTA\u304C\u6301\u3064\u69CB\u6210\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u5F15\u304D\u7D99\u3050\u3002 */\n    if (cta && btn.dataset.u) {\n      var carry = '';\n      try {\n        var cur = cta.getAttribute('href') || '';\n        var qi = cur.indexOf('?');\n        if (qi >= 0) {\n          var keep = cur.slice(qi + 1).split('&').filter(function(kv){\n            return /^tg(cpu|mem|ssd)=/.test(kv);\n          });\n          if (keep.length) carry = (btn.dataset.u.indexOf('?') >= 0 ? '&' : '?') + keep.join('&');\n        }\n      } catch(e){}\n      cta.setAttribute('href', btn.dataset.u + carry);\n    }\n    if (typeof pushGA === 'function') pushGA('ai_diag_case_select', { handle: btn.dataset.h });\n  }\n\n  document.addEventListener('click', function(e){\n    if (!e.target.closest) return;\n    var more = e.target.closest('.gs-case__more');\n    if (more){\n      var w = more.closest('.gs-case');\n      if (w){\n        w.classList.add('is-expanded');\n        more.setAttribute('aria-expanded', 'true');\n        more.remove();\n      }\n      return;\n    }\n    var btn = e.target.closest('.gs-case__item');\n    if (btn) selectCase(btn);\n  });\n\n  /* \u77E2\u5370\u30AD\u30FC\u3067\u30B1\u30FC\u30B9\u3092\u79FB\u52D5 (radiogroup \u306E\u6163\u7FD2\u306B\u5408\u308F\u305B\u308B) */\n  document.addEventListener('keydown', function(e){\n    if (['ArrowRight','ArrowLeft','ArrowUp','ArrowDown'].indexOf(e.key) < 0) return;\n    if (!e.target.closest) return;\n    var cur = e.target.closest('.gs-case__item');\n    if (!cur) return;\n    var wrap = cur.closest('.gs-case');\n    if (!wrap) return;\n    var expanded = wrap.classList.contains('is-expanded');\n    var items = [].slice.call(wrap.querySelectorAll('.gs-case__item')).filter(function(b){\n      return expanded || !b.classList.contains('is-extra');\n    });\n    var i = items.indexOf(cur);\n    if (i < 0) return;\n    var next = (e.key === 'ArrowRight' || e.key === 'ArrowDown') ? i + 1 : i - 1;\n    if (next < 0) next = items.length - 1;\n    if (next >= items.length) next = 0;\n    e.preventDefault();\n    items[next].focus();\n    selectCase(items[next]);\n  });\n\n  var caseModalTargetCard = null;\n  var caseModalTrigger = null;\n  var caseModalPending = null;\n\n  function resultRoleLabel(candidate, primary) {\n    var price = parseInt(candidate.getAttribute('data-rank-total'), 10) || 0;\n    var primaryPrice = parseInt(primary.getAttribute('data-rank-total'), 10) || 0;\n    var score = parseInt(candidate.getAttribute('data-rank-score'), 10) || 0;\n    var primaryScore = parseInt(primary.getAttribute('data-rank-score'), 10) || 0;\n    var vendor = candidate.getAttribute('data-rank-vendor') || '';\n    var primaryVendor = primary.getAttribute('data-rank-vendor') || '';\n    var gpu = candidate.getAttribute('data-rank-gpu') || '';\n    var isPremiumRtx = /^RTX(?:5080|5090)/i.test(normalizeGpuName(gpu));\n    var isCheaper = price > 0 && primaryPrice > 0 && price < primaryPrice;\n    var keepsPerformance = score > 0 && primaryScore > 0 && score >= primaryScore * 0.9;\n    if (!isPremiumRtx && isCheaper && keepsPerformance) return '\u30B3\u30B9\u30D1\u91CD\u8996';\n    if (!isPremiumRtx && isCheaper) return '\u4FA1\u683C\u3092\u6291\u3048\u308B';\n    if (score > 0 && primaryScore > 0 && score > primaryScore * 1.05) return '\u6027\u80FD\u3092\u4E0A\u3052\u308B';\n    if (vendor && primaryVendor && vendor !== primaryVendor) return '\u5225\u30E1\u30FC\u30AB\u30FC';\n    return '\u5225\u306E\u9078\u629E\u80A2';\n  }\n\n  function removePremiumRtxPriceCopy(item) {\n    if (!item || !/^RTX(?:5080|5090)/i.test(normalizeGpuName(item.gpu))) return item;\n    if (!/(?:\u4FA1\u683C|\u4E88\u7B97).{0,8}(?:\u6291|\u91CD\u8996)|\u30B3\u30B9\u30D1/.test(String(item.why || ''))) return item;\n    return Object.assign({}, item, { why: '\u9AD8\u3044\u8A2D\u5B9A\u3084\u91CD\u3044\u51E6\u7406\u307E\u3067\u898B\u636E\u3048\u305F\u4E0A\u4F4D\u5019\u88DC' });\n  }\n\n  function alignComparisonCardRows() {\n    var wrap = $('wzResults');\n    if (!wrap) return;\n    var cards = [].slice.call(wrap.querySelectorAll('.gs-rank--compare:not(.gs-rank--vram)'));\n    var selectors = ['.gs-rank__name', '.gs-rank__why', '.gs-rank__deltas', '.gs-rank__spec, .gs-rank__same'];\n    selectors.forEach(function(selector){\n      cards.forEach(function(card){\n        var el = card.querySelector(selector);\n        if (el) el.style.minHeight = '';\n      });\n    });\n    if (cards.length < 2 || (window.matchMedia && window.matchMedia('(max-width: 760px)').matches)) return;\n    selectors.forEach(function(selector){\n      var elements = cards.map(function(card){ return card.querySelector(selector); }).filter(Boolean);\n      var maxHeight = elements.reduce(function(max, el){\n        return Math.max(max, Math.ceil(el.getBoundingClientRect().height));\n      }, 0);\n      elements.forEach(function(el){ el.style.minHeight = maxHeight + 'px'; });\n    });\n  }\n\n  var comparisonAlignmentFrame = 0;\n  function scheduleComparisonCardAlignment() {\n    if (comparisonAlignmentFrame) cancelAnimationFrame(comparisonAlignmentFrame);\n    comparisonAlignmentFrame = requestAnimationFrame(function(){\n      comparisonAlignmentFrame = 0;\n      alignComparisonCardRows();\n    });\n  }\n  window.addEventListener('resize', scheduleComparisonCardAlignment);\n\n  function refreshResultRoles() {\n    var wrap = $('wzResults');\n    if (!wrap) return;\n    var primary = wrap.querySelector('.gs-rank--primary');\n    if (!primary) return;\n    var usedRoles = [];\n    wrap.querySelectorAll('.gs-rank--compare:not(.gs-rank--vram)').forEach(function(card){\n      var role = card.querySelector('.gs-rank__role');\n      var roleLabel = resultRoleLabel(card, primary);\n      var price = parseInt(card.getAttribute('data-rank-total'), 10) || 0;\n      var primaryPrice = parseInt(primary.getAttribute('data-rank-total'), 10) || 0;\n      var score = parseInt(card.getAttribute('data-rank-score'), 10) || 0;\n      var primaryScore = parseInt(primary.getAttribute('data-rank-score'), 10) || 0;\n      var vendor = card.getAttribute('data-rank-vendor') || '';\n      var primaryVendor = primary.getAttribute('data-rank-vendor') || '';\n      if (usedRoles.indexOf(roleLabel) >= 0) roleLabel = vendor && primaryVendor && vendor !== primaryVendor ? '\u5225\u30E1\u30FC\u30AB\u30FC' : '\u3082\u3046\u4E00\u3064\u306E\u5019\u88DC';\n      usedRoles.push(roleLabel);\n      if (role) role.textContent = roleLabel;\n      var deltas = [];\n      if (price && primaryPrice && price !== primaryPrice) {\n        deltas.push('\u304A\u3059\u3059\u3081\u3088\u308A' + displayPrice(Math.abs(price - primaryPrice)) + (price < primaryPrice ? '\u5B89\u3044' : '\u9AD8\u3044'));\n      }\n      if (score && primaryScore && score !== primaryScore) {\n        var pct = Math.round(Math.abs(score - primaryScore) / primaryScore * 100);\n        if (pct > 0) deltas.push('GPU\u6027\u80FD\u76EE\u5B89\u304C\u7D04' + pct + '%' + (score > primaryScore ? '\u9AD8\u3044' : '\u4F4E\u3044'));\n      }\n      if (vendor && primaryVendor && vendor !== primaryVendor) deltas.push('\u304A\u3059\u3059\u3081\u3068\u306F\u5225\u306EGPU\u30E1\u30FC\u30AB\u30FC');\n      if (!deltas.length) deltas.push('\u4FA1\u683C\u3068\u6027\u80FD\u304C\u304A\u3059\u3059\u3081\u306B\u8FD1\u3044\u5019\u88DC');\n      var deltaEl = card.querySelector('.gs-rank__deltas');\n      if (deltaEl) deltaEl.innerHTML = deltas.map(function(delta){ return '<li>' + esc(delta) + '</li>'; }).join('');\n    });\n    scheduleComparisonCardAlignment();\n  }\n\n  function applyRankCase(card, option) {\n    if (!card || !option) return;\n    var newImg = option.getAttribute('data-i');\n    var selectedCaseProduct = findCatalogProductById(option.getAttribute('data-h'));\n    var fallbackImg = selectedCaseProduct && selectedCaseProduct.image ? selectedCaseProduct.image : '';\n    var displayImg = newImg || fallbackImg;\n    var newName = option.getAttribute('data-n');\n    var newUrl = option.getAttribute('data-u');\n    var newBaseP = parseInt(option.getAttribute('data-p'), 10) || 0;\n    var addon = parseInt(card.getAttribute('data-rank-addon'), 10) || 0;\n    var newPrice = newBaseP + addon;\n    var budget = parseInt(card.getAttribute('data-rank-budget'), 10) || 0;\n    if (option.disabled || (budget > 0 && newPrice > budget)) return;\n    var imgEl = card.querySelector('.gs-rank__img');\n    if (imgEl) {\n      if (displayImg && imgEl.tagName === 'IMG') {\n        if (fallbackImg && fallbackImg !== displayImg) imgEl.setAttribute('data-fallback-src', fallbackImg);\n        else imgEl.removeAttribute('data-fallback-src');\n        imgEl.src = displayImg;\n      }\n      else if (displayImg) {\n        var parent = imgEl.parentNode;\n        var productFallbackAttr = fallbackImg && fallbackImg !== displayImg\n          ? ' data-fallback-src=\"' + esc(fallbackImg) + '\"' : '';\n        if (parent) parent.innerHTML = '<img class=\"gs-rank__img\" src=\"' + esc(displayImg) + '\"' + productFallbackAttr + ' alt=\"\" loading=\"lazy\" width=\"420\" height=\"420\">';\n      } else {\n        imgEl.outerHTML = '<div class=\"gs-rank__img gs-rank__img--none\" aria-hidden=\"true\">TITAN</div>';\n      }\n    }\n    var priceEl = card.querySelector('.gs-rank__price strong');\n    if (priceEl) priceEl.textContent = displayPrice(newPrice);\n    var tail = card.getAttribute('data-rank-tail') || '';\n    var nextDisplayName = newName + (tail ? ' / ' + tail : '');\n    var ctas = card.querySelectorAll('.gs-rank__cta, .gs-rank__quick');\n    if (ctas.length && newUrl) {\n      ctas.forEach(function(cta){\n        cta.setAttribute('href', carryRankConfig(newUrl, cta.getAttribute('href') || ''));\n        cta.setAttribute('data-ph-capture-attribute-product-handle', option.getAttribute('data-h') || '');\n        cta.setAttribute('data-ph-capture-attribute-recommended-case-key', newName || '');\n        cta.setAttribute('data-ph-capture-attribute-product-title', nextDisplayName);\n      });\n    }\n    var nameEl = card.querySelector('.gs-rank__name');\n    if (nameEl && newName) {\n      nameEl.textContent = nextDisplayName;\n    }\n    card.setAttribute('data-rank-pid', option.getAttribute('data-h'));\n    card.setAttribute('data-rank-total', String(newPrice));\n    var caseName = card.querySelector('.gs-rank__case-name');\n    if (caseName) caseName.textContent = newName;\n    var caseThumb = card.querySelector('.gs-rank__case-thumb');\n    if (caseThumb) {\n      var fallbackAttr = fallbackImg && fallbackImg !== displayImg\n        ? ' data-fallback-src=\"' + esc(fallbackImg) + '\"' : '';\n      if (displayImg && caseThumb.tagName === 'IMG') {\n        if (fallbackAttr) caseThumb.setAttribute('data-fallback-src', fallbackImg);\n        else caseThumb.removeAttribute('data-fallback-src');\n        caseThumb.src = displayImg;\n      }\n      else if (displayImg) caseThumb.outerHTML = '<img class=\"gs-rank__case-thumb\" src=\"' + esc(displayImg) + '\"' + fallbackAttr + ' alt=\"\" loading=\"lazy\" decoding=\"async\" width=\"52\" height=\"52\">';\n      else caseThumb.outerHTML = '<span class=\"gs-rank__case-thumb gs-rank__case-thumb--none\" aria-hidden=\"true\">\u2014</span>';\n    }\n    refreshResultRoles();\n    if (typeof pushGA === 'function') pushGA('ai_diag_case_pick', { handle: option.getAttribute('data-h') });\n  }\n\n  function renderCaseModal() {\n    return '<div class=\"gs-case-modal\" id=\"gsCaseModal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"gsCaseModalTitle\" hidden>'\n      + '<div class=\"gs-case-modal__backdrop\" data-case-modal-close></div>'\n      + '<section class=\"gs-case-modal__dialog\" tabindex=\"-1\">'\n      +   '<header class=\"gs-case-modal__head\"><div><span>CASE SELECT</span><h3 id=\"gsCaseModalTitle\">\u30B1\u30FC\u30B9\u3092\u9078\u3076</h3></div>'\n      +     '<button type=\"button\" class=\"gs-case-modal__close\" data-case-modal-close aria-label=\"\u30B1\u30FC\u30B9\u9078\u629E\u3092\u9589\u3058\u308B\">\u00D7</button></header>'\n      +   '<p class=\"gs-case-modal__lead\">\u6027\u80FD\u69CB\u6210\u306F\u305D\u306E\u307E\u307E\u3001\u898B\u305F\u76EE\u3068\u4FA1\u683C\u304C\u5909\u308F\u308A\u307E\u3059\u3002</p>'\n      +   '<div class=\"gs-case-modal__options\" id=\"gsCaseModalOptions\" role=\"radiogroup\" aria-label=\"\u30B1\u30FC\u30B9\u5019\u88DC\"></div>'\n      +   '<footer class=\"gs-case-modal__foot\"><button type=\"button\" class=\"gs-case-modal__cancel\" data-case-modal-close>\u30AD\u30E3\u30F3\u30BB\u30EB</button>'\n      +     '<button type=\"button\" class=\"gs-case-modal__confirm\" id=\"gsCaseModalConfirm\">\u3053\u306E\u30B1\u30FC\u30B9\u306B\u5909\u66F4</button></footer>'\n      + '</section></div>';\n  }\n\n  function openCaseModal(trigger) {\n    var modal = $('gsCaseModal');\n    var card = trigger && trigger.closest ? trigger.closest('.gs-rank') : null;\n    if (!modal || !card) return;\n    var productId = card.getAttribute('data-rank-source-id');\n    var list = getCasesForProduct(productId);\n    if (!list || !list.length) return;\n    caseModalTargetCard = card;\n    caseModalTrigger = trigger;\n    var currentHandle = card.getAttribute('data-rank-pid');\n    var addon = parseInt(card.getAttribute('data-rank-addon'), 10) || 0;\n    var budget = parseInt(card.getAttribute('data-rank-budget'), 10) || 0;\n    var sorted = list.slice().sort(function(a,b){ return a.p - b.p; });\n    var basePrice = sorted[0] ? sorted[0].p : 0;\n    var options = $('gsCaseModalOptions');\n    options.innerHTML = sorted.map(function(item){\n      var checked = item.h === currentHandle;\n      var total = item.p + addon;\n      var disabled = budget > 0 && total > budget;\n      var diff = item.p - basePrice;\n      var diffLabel = disabled ? '\u4E88\u7B97\u3092' + displayPrice(total - budget) + '\u8D85\u3048\u307E\u3059' : (diff === 0 ? '\u6700\u5B89\u30B1\u30FC\u30B9' : '\u6700\u5B89\u304B\u3089 +' + displayPrice(diff));\n      var image = item.i\n        ? '<img src=\"' + esc(item.i) + '\" alt=\"\" loading=\"lazy\" decoding=\"async\" width=\"112\" height=\"112\">'\n        : '<span class=\"gs-case-modal__noimg\" aria-hidden=\"true\">TITAN</span>';\n      return '<button type=\"button\" class=\"gs-case-modal__option\" role=\"radio\" aria-checked=\"' + (checked && !disabled ? 'true' : 'false') + '\" aria-disabled=\"' + (disabled ? 'true' : 'false') + '\" tabindex=\"' + (checked && !disabled ? '0' : '-1') + '\"' + (disabled ? ' disabled' : '')\n        + ' data-h=\"' + esc(item.h) + '\" data-u=\"' + esc(item.u) + '\" data-p=\"' + item.p + '\" data-i=\"' + esc(item.i || '') + '\" data-n=\"' + esc(item.n) + '\">'\n        + image + '<span class=\"gs-case-modal__option-copy\"><strong>' + esc(item.n) + '</strong><small>' + esc(diffLabel) + '</small><b>' + esc(displayPrice(total)) + '</b></span>'\n        + '<span class=\"gs-case-modal__check\">' + (disabled ? '\u4E88\u7B97\u8D85\u904E' : (checked ? '\u9078\u629E\u4E2D' : '\u9078\u3076')) + '</span></button>';\n    }).join('');\n    caseModalPending = options.querySelector('[aria-checked=\"true\"]') || options.querySelector('.gs-case-modal__option:not([disabled])');\n    if (caseModalPending) {\n      options.querySelectorAll('.gs-case-modal__option').forEach(function(option){\n        var selected = option === caseModalPending;\n        option.setAttribute('aria-checked', selected ? 'true' : 'false');\n        option.setAttribute('tabindex', selected ? '0' : '-1');\n        var check = option.querySelector('.gs-case-modal__check'); if (check) check.textContent = option.disabled ? '\u4E88\u7B97\u8D85\u904E' : (selected ? '\u9078\u629E\u4E2D' : '\u9078\u3076');\n      });\n    }\n    var confirm = $('gsCaseModalConfirm');\n    if (confirm) confirm.disabled = !caseModalPending;\n    modal.hidden = false;\n    document.body.classList.add('gs-case-modal-open');\n    requestAnimationFrame(function(){ if (caseModalPending) caseModalPending.focus(); else modal.querySelector('.gs-case-modal__close').focus(); });\n  }\n\n  function closeCaseModal() {\n    var modal = $('gsCaseModal');\n    if (!modal || modal.hidden) return;\n    modal.hidden = true;\n    document.body.classList.remove('gs-case-modal-open');\n    caseModalTargetCard = null;\n    caseModalPending = null;\n    if (caseModalTrigger) caseModalTrigger.focus();\n    caseModalTrigger = null;\n  }\n\n  function resetCaseModalForRender() {\n    var modal = $('gsCaseModal');\n    if (modal && !modal.hidden) {\n      closeCaseModal();\n      return;\n    }\n    document.body.classList.remove('gs-case-modal-open');\n    caseModalTargetCard = null;\n    caseModalPending = null;\n    caseModalTrigger = null;\n  }\n\n  document.addEventListener('click', function(e) {\n    var trigger = e.target.closest('.gs-rank__case-trigger');\n    if (trigger) { openCaseModal(trigger); return; }\n    var close = e.target.closest('[data-case-modal-close]');\n    if (close) { closeCaseModal(); return; }\n    var option = e.target.closest('.gs-case-modal__option');\n    if (option) {\n      if (option.disabled) return;\n      var group = option.closest('[role=\"radiogroup\"]');\n      group.querySelectorAll('.gs-case-modal__option').forEach(function(item){\n        var selected = item === option;\n        item.setAttribute('aria-checked', selected ? 'true' : 'false');\n        item.setAttribute('tabindex', selected ? '0' : '-1');\n        var check = item.querySelector('.gs-case-modal__check'); if (check) check.textContent = item.disabled ? '\u4E88\u7B97\u8D85\u904E' : (selected ? '\u9078\u629E\u4E2D' : '\u9078\u3076');\n      });\n      caseModalPending = option;\n      return;\n    }\n    if (e.target.closest('#gsCaseModalConfirm')) {\n      applyRankCase(caseModalTargetCard, caseModalPending);\n      closeCaseModal();\n    }\n  });\n\n  document.addEventListener('keydown', function(e){\n    var modal = $('gsCaseModal');\n    if (!modal || modal.hidden) return;\n    if (e.key === 'Escape') { e.preventDefault(); closeCaseModal(); return; }\n    var currentOption = e.target.closest && e.target.closest('.gs-case-modal__option');\n    if (currentOption && ['ArrowRight','ArrowLeft','ArrowUp','ArrowDown'].indexOf(e.key) >= 0) {\n      var options = [].slice.call(modal.querySelectorAll('.gs-case-modal__option')).filter(function(option){ return !option.disabled; });\n      var index = options.indexOf(currentOption);\n      var next = (e.key === 'ArrowRight' || e.key === 'ArrowDown') ? index + 1 : index - 1;\n      if (next < 0) next = options.length - 1;\n      if (next >= options.length) next = 0;\n      e.preventDefault(); options[next].click(); options[next].focus(); return;\n    }\n    if (e.key !== 'Tab') return;\n    var focusable = [].slice.call(modal.querySelectorAll('button:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'));\n    if (!focusable.length) return;\n    var first = focusable[0], last = focusable[focusable.length - 1];\n    if (e.shiftKey && document.activeElement === first) { e.preventDefault(); last.focus(); }\n    else if (!e.shiftKey && document.activeElement === last) { e.preventDefault(); first.focus(); }\n  });\n\n  /* 2026-08-17: \u53F3\u30AB\u30FC\u30C9\u306F\u300C\u63B2\u8F09\u30E2\u30C7\u30EB\u306E\u6A19\u6E96\u69CB\u6210\u300D\u3001\u5DE6\u306F\u300CAI\u63A8\u5968\u306E\u6700\u7D42\u69CB\u6210\u300D\u3002\n     \u540C\u3058\u4FA1\u683C\u304C\u4E26\u3076\u3068\u300C\u306A\u305C\u9055\u3046\u30B9\u30DA\u30C3\u30AF\u304C\u540C\u984D?\u300D\u3068\u8AA4\u8AAD\u3055\u308C\u308B\u305F\u3081\u3001\n     \u6A19\u6E96\u69CB\u6210 \u2192 \u6700\u7D42\u69CB\u6210 \u306E\u5DEE\u5206\u3068\u3057\u3066\u898B\u305B\u308B\u3002\u5909\u66F4\u304C\u306A\u3044\u9805\u76EE\u306F\u51FA\u3055\u306A\u3044\u3002 */\n  /* 2026-08-17: \u8A3A\u65AD\u7D50\u679C\u306E\u30EA\u30F3\u30AF\u306F\u300C\u5909\u66F4\u3057\u3066\u304F\u3060\u3055\u3044\u300D\u3067\u306F\u306A\u304F\n     \u6700\u521D\u304B\u3089\u69CB\u6210\u304C\u9069\u7528\u3055\u308C\u305F\u72B6\u614B\u3067\u958B\u304F\u3002\n     \u5546\u54C1\u30DA\u30FC\u30B8\u5074(tg-preset-links)\u304C tgcpu/tgmem/tgssd \u3092\u8AAD\u3093\u3067\u81EA\u52D5\u9069\u7528\u3059\u308B\u3002\n     AI\u306E\u8868\u8A18(\u4F8B \"32GB\")\u3092 Globo \u306E\u5B9F\u30AA\u30D7\u30B7\u30E7\u30F3\u5024(\u4F8B \"DDR5 32GB 4800Mhz\")\u3078\u89E3\u6C7A\u3059\u308B\u3002 */\n  function memoryGenerationForCpu(cpu){\n    var m = String(cpu || '').toUpperCase().match(/RYZEN\\s+\\d\\s+([0-9]{4})/);\n    if(!m) return '';\n    return parseInt(m[1], 10) >= 7000 ? 'DDR5' : 'DDR4';\n  }\n\n  function resolveOptionValue(addonMap, wanted, kind, memoryGeneration){\n    if(!addonMap || !wanted) return '';\n    var keys = Object.keys(addonMap);\n    if(!keys.length) return '';\n    if(kind === 'mem' && memoryGeneration){\n      var compatible = keys.filter(function(key){\n        return key.toUpperCase().indexOf(memoryGeneration) >= 0;\n      });\n      if(compatible.length) keys = compatible;\n    }\n    var w = String(wanted).toUpperCase().replace(/\\s+/g, '');\n    /* \u5B8C\u5168\u4E00\u81F4 */\n    for(var i=0;i<keys.length;i++){\n      if(keys[i].toUpperCase().replace(/\\s+/g,'') === w) return keys[i];\n    }\n    if(kind === 'cpu'){\n      /* \u578B\u756A(5700X/9800X3D\u7B49)\u3067\u7167\u5408\u3059\u308B\u3002\n         \u7A7A\u767D\u3092\u6F70\u3059\u3068 \"RYZEN 7\" + \"9800X3D\" \u304C\u7E4B\u304C\u3063\u3066\u578B\u756A\u3092\u8AA4\u691C\u51FA\u3059\u308B\u305F\u3081\u3001\n         \u3053\u3053\u3067\u306F\u5143\u306E\u6587\u5B57\u5217(\u7A7A\u767D\u3042\u308A)\u304B\u3089\u62FE\u3046\u3002 */\n      function model(s){\n        var m = String(s).toUpperCase().match(/\\b([0-9]{4}[A-Z0-9]*)\\b/);\n        return m ? m[1] : '';\n      }\n      var wm = model(wanted);\n      if(wm){\n        for(var j=0;j<keys.length;j++){\n          if(model(keys[j]) === wm) return keys[j];\n        }\n      }\n      return '';\n    }\n    /* \u30E1\u30E2\u30EA/SSD \u306F\u5BB9\u91CF(GB\u63DB\u7B97)\u3067\u7167\u5408\u3059\u308B */\n    function gb(s){\n      var m = String(s).toUpperCase().match(/([0-9]+)\\s*(TB|GB)/);\n      if(!m) return 0;\n      var n = parseInt(m[1], 10);\n      return /TB/.test(m[2]) ? n * 1024 : n;\n    }\n    var want = gb(wanted);\n    if(!want) return '';\n    for(var k=0;k<keys.length;k++){ if(gb(keys[k]) === want) return keys[k]; }\n    return '';\n  }\n\n  /* \u5546\u54C1URL\u306B\u69CB\u6210\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u4ED8\u3051\u308B\u3002\u89E3\u6C7A\u3067\u304D\u305F\u9805\u76EE\u3060\u3051\u4ED8\u4E0E\u3059\u308B\u3002 */\n  function configuredUrl(baseUrl, product, item){\n    if(!baseUrl || !product || !item) return baseUrl;\n    var a = product.addons || {};\n    var cpu = resolveOptionValue(a.cpu, item.cpu, 'cpu');\n    var memoryGeneration = memoryGenerationForCpu(cpu || item.cpu);\n    var mem = resolveOptionValue(a.mem, item.mem, 'mem', memoryGeneration);\n    var ssd = resolveOptionValue(a.ssd, item.ssd, 'ssd');\n    if(!cpu && !mem && !ssd) return baseUrl;   /* \u6A19\u6E96\u69CB\u6210\u306E\u307E\u307E = \u4ED8\u3051\u306A\u3044 */\n    var sep = baseUrl.indexOf('?') >= 0 ? '&' : '?';\n    var qs = [];\n    if(cpu) qs.push('tgcpu=' + encodeURIComponent(cpu));\n    if(mem) qs.push('tgmem=' + encodeURIComponent(mem));\n    if(ssd) qs.push('tgssd=' + encodeURIComponent(ssd));\n    return baseUrl + sep + qs.join('&');\n  }\n\n  /* \u8868\u793A\u4FA1\u683C\u3068\u5546\u54C1\u30DA\u30FC\u30B8\u306E\u69CB\u6210\u4FA1\u683C\u3092\u3001\u5B9F\u30AA\u30D7\u30B7\u30E7\u30F3\u52A0\u7B97\u984D\u304B\u3089\u540C\u3058\u5024\u306B\u63C3\u3048\u308B\u3002 */\n  function configuredItemTotal(item, product){\n    if(!item) return 0;\n    if(!product) return Number(item.total || item.price) || 0;\n    var a = product.addons || {};\n    var cpu = resolveOptionValue(a.cpu, item.cpu, 'cpu');\n    var generation = memoryGenerationForCpu(cpu || item.cpu);\n    var mem = resolveOptionValue(a.mem, item.mem, 'mem', generation);\n    var ssd = resolveOptionValue(a.ssd, item.ssd, 'ssd');\n    function addon(map, key){\n      var value = key && map ? Number(map[key]) : 0;\n      return Number.isFinite(value) ? value : 0;\n    }\n    return (Number(product.price) || 0) + addon(a.cpu, cpu) + addon(a.mem, mem) + addon(a.ssd, ssd);\n  }\n\n  function carryRankConfig(baseUrl, configuredBaseUrl){\n    if (!baseUrl || !configuredBaseUrl) return baseUrl;\n    var qi = configuredBaseUrl.indexOf('?');\n    if (qi < 0) return baseUrl;\n    var keep = configuredBaseUrl.slice(qi + 1).split('&').filter(function(kv){\n      return /^tg(cpu|mem|ssd)=/.test(kv);\n    });\n    if (!keep.length) return baseUrl;\n    return baseUrl + (baseUrl.indexOf('?') >= 0 ? '&' : '?') + keep.join('&');\n  }\n\n  function specDiffHtml(stdCpu, stdMem, stdSsd, finalCpu, finalMem, finalSsd) {\n    function norm(v){ return String(v == null ? '' : v).replace(/\\s+/g, ' ').trim(); }\n    function digits(v){ var m = norm(v).match(/(\\d+)\\s*(TB|GB)/i); if(!m) return norm(v).toUpperCase();\n      var n = parseInt(m[1], 10); return (/TB/i.test(m[2]) ? n * 1024 : n) + 'GB'; }\n    var rows = [];\n    function push(label, from, to, cmp){\n      var f = norm(from), t = norm(to);\n      if (!f || !t) return;\n      if (cmp ? (cmp(f) === cmp(t)) : (f.toUpperCase() === t.toUpperCase())) return;\n      rows.push('<div><dt>' + label + '</dt><dd><span class=\"gs-diff__from\">' + esc(f) + '</span>'\n        + '<span class=\"gs-diff__arrow\" aria-hidden=\"true\">\u2192</span>'\n        + '<span class=\"gs-diff__to\">' + esc(t) + '</span></dd></div>');\n    }\n    push('CPU', stdCpu, finalCpu);\n    push('MEMORY', stdMem, finalMem, digits);\n    push('SSD', stdSsd, finalSsd, digits);\n    if (!rows.length) {\n      return '<p class=\"gs-result-product__same\">\u3053\u306E\u63B2\u8F09\u30E2\u30C7\u30EB\u306E\u6A19\u6E96\u69CB\u6210\u304C\u3001\u305D\u306E\u307E\u307E\u63A8\u5968\u69CB\u6210\u3067\u3059\u3002</p>';\n    }\n    return '<div class=\"gs-result-product__diff\">'\n      + '<p class=\"gs-result-product__diff-lead\">\u3053\u306E\u5185\u5BB9\u306F\u4E0B\u306E\u30DC\u30BF\u30F3\u304B\u3089\u9069\u7528\u6E08\u307F\u3067\u958B\u304D\u307E\u3059\u3002</p>'\n      + '<dl class=\"gs-diff\">' + rows.join('') + '</dl>'\n      + '</div>';\n  }\n\n  /* \u5546\u54C1\u30BF\u30A4\u30C8\u30EB\u306E\u3010\u3011\u30D6\u30ED\u30C3\u30AF\u3092\u7573\u3093\u3067\u8AAD\u307F\u3084\u3059\u3044\u8868\u793A\u540D\u306B\u3059\u308B\u3002\n     metafield\u904B\u7528\u306B\u3059\u308B\u306844\u5546\u54C1\u306E\u624B\u5165\u529B\u304C\u5FC5\u8981\u306B\u306A\u308B\u305F\u3081\u3001\u8868\u793A\u5074\u3067\u51E6\u7406\u3059\u308B\u3002 */\n  function shortProductTitle(title) {\n    var t = String(title || '');\n    var cases = t.match(/\u3010([^\u3011]+)\u3011/g) || [];\n    var caseName = '';\n    cases.forEach(function(b){\n      var v = b.replace(/[\u3010\u3011]/g, '');\n      if (/^(\u30B2\u30FC\u30DF\u30F3\u30B0PC|\u65B0\u54C1|\u6574\u5099\u6E08\u307F|\u4E2D\u53E4)$/.test(v)) return;\n      if (!caseName) caseName = v;\n    });\n    var head = t.replace(/\u3010[^\u3011]*\u3011/g, '').trim();\n    var gpu = (head.match(/(RTX\\s?\\d{4}\\s?(?:Ti)?(?:\\s?SUPER)?|RX\\s?\\d{4}\\s?(?:XT)?)/i) || [])[0] || '';\n    if (gpu) {\n      gpu = gpu.toUpperCase().replace(/\\s+/g, ' ')\n        .replace(/^RTX(\\d)/, 'RTX $1').replace(/^RX(\\d)/, 'RX $1')\n        .replace(/(\\d)(TI|XT|SUPER)\\b/, '$1 $2')\n        .replace(/\\bTI\\b/, 'Ti').replace(/\\bSUPER\\b/, 'SUPER')\n        .replace(/\\s+/g, ' ').trim();\n    }\n    if (caseName && gpu) return caseName + ' / ' + gpu + ' \u642D\u8F09\u30E2\u30C7\u30EB';\n    if (gpu) return gpu + ' \u642D\u8F09\u30E2\u30C7\u30EB';\n    return head || t;\n  }\n\n  function renderPrimaryResult(item, reason) {\n    var product = findCatalogProductById(item.productId) || findCatalogProduct(item.gpu);\n    var searchGpu = encodeURIComponent('\"' + (item.gpu || '') + '\"');\n    var productUrl = product ? product.url : 'https://www.titan-pc.net/search?q=' + searchGpu;\n    /* 2026-08-16: AI \u304C\u8FD4\u3057\u305F\u6700\u7D42\u69CB\u6210\u306E\u5408\u8A08(total)\u3092\u512A\u5148\u3057\u3066\u8868\u793A\u3059\u308B\u3002 \u6A19\u6E96\u69CB\u6210\u306E\u4FA1\u683C\u3092\u51FA\u3059\u3068\u3001AI\u304C\u52E7\u3081\u305F\u69CB\u6210\u3068\u91D1\u984D\u304C\u98DF\u3044\u9055\u3046\u305F\u3081\u3002 */\n    var finalTotal = (item && typeof item.total === 'number' && item.total > 0) ? item.total : null;\n    var productPrice = finalTotal ? displayPrice(finalTotal)\n      : (product && product.price ? displayPrice(product.price) : displayPrice(item.price));\n    var rawTitle = product ? product.title : (item.gpu || '\u304A\u3059\u3059\u3081\u69CB\u6210');\n    var productTitle = shortProductTitle(rawTitle);\n    /* \u6A19\u6E96\u69CB\u6210(\u63B2\u8F09\u30E2\u30C7\u30EB)\u3092\u30BF\u30A4\u30C8\u30EB\u304B\u3089\u8AAD\u307F\u3001\u6700\u7D42\u69CB\u6210\u3068\u306E\u5DEE\u5206\u3092\u51FA\u3059 */\n    var stdSsdMatch = String(rawTitle).toUpperCase().match(/(\\d+)\\s*(TB|GB)(?=\\s|$|\u3010)/g) || [];\n    var stdSsd = stdSsdMatch.length ? stdSsdMatch[stdSsdMatch.length - 1] : '';\n    /* 2026-08-17: AI\u304Cssd\u3092\u8FD4\u3055\u305A\u30D5\u30A9\u30FC\u30EB\u30D0\u30C3\u30AF\u3057\u305F\u5834\u5408\u3067\u3082SSD\u884C\u3092\u51FA\u3059\u3002\n       \u63B2\u8F09\u30E2\u30C7\u30EB\u306E\u6A19\u6E96\u5BB9\u91CF(\u30BF\u30A4\u30C8\u30EB\u7531\u6765)\u3067\u88DC\u5B8C\u3059\u308B\u3002 */\n    var shownSsd = item.ssd || (stdSsd ? 'NVMe SSD ' + stdSsd : '');\n    var currentSpecs = productTitleSpecs(rawTitle, item.cpu || '\u2014', item.mem || '16GB');\n    var diffHtml = specDiffHtml(currentSpecs.cpu, currentSpecs.memory, stdSsd,\n      item.cpu, item.mem, shownSsd);\n    var imageHtml = product && product.image\n      ? '<img class=\"gs-result-product__image\" src=\"' + esc(product.image) + '\" alt=\"' + esc(productTitle) + '\" width=\"900\" height=\"900\" loading=\"lazy\">'\n      : '<div class=\"gs-result-product__fallback\" aria-hidden=\"true\">TITAN GAMING PC</div>';\n    var status = product\n      ? (product.available ? '\u5728\u5EAB\u3042\u308A' : '\u5728\u5EAB\u72B6\u6CC1\u306F\u5546\u54C1\u30DA\u30FC\u30B8\u3067\u78BA\u8A8D')\n      : '\u8A72\u5F53\u69CB\u6210\u3092\u5546\u54C1\u4E00\u89A7\u304B\u3089\u8868\u793A';\n    /* 2026-08-16: \u6700\u7D42\u69CB\u6210(total)\u3092\u8868\u793A\u3057\u3066\u3044\u308B\u5834\u5408\u3001tip \u306B\u69CB\u6210\u5909\u66F4\u306E\u6848\u5185\u304C\u5165\u3063\u3066\u3044\u308B\u3068\n       \u300C\u3082\u3046\u542B\u307E\u308C\u3066\u3044\u308B\u306E\u306B\u3001\u3055\u3089\u306B\u5909\u66F4\u3092\u52E7\u3081\u3066\u3044\u308B\u300D\u3088\u3046\u306B\u898B\u3048\u308B\u305F\u3081\u6291\u5236\u3059\u308B\u3002\n       CPU/\u30E1\u30E2\u30EA/SSD \u306E\u5909\u66F4\u3092\u793A\u3059\u8A9E\u3092\u542B\u3080 tip \u306F\u3001\u6700\u7D42\u69CB\u6210\u306B\u53CD\u6620\u6E08\u307F\u3068\u307F\u306A\u3057\u3066\u51FA\u3055\u306A\u3044\u3002 */\n    var tipText = (item.tip || '').trim();\n    if (finalTotal && /\u3078\u5909\u66F4|\u306B\u5909\u66F4|\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9|\\+\u00A5|\\+\u7D04/.test(tipText)) tipText = '';\n    var adjustment = tipText\n      ? '<section class=\"gs-result-adjustment\" aria-label=\"\u304A\u3059\u3059\u3081\u306E\u69CB\u6210\u5909\u66F4\">'\n        + '<span>OPTION ADJUSTMENT</span><h4>\u304A\u3059\u3059\u3081\u306E\u69CB\u6210\u5909\u66F4</h4>'\n        + '<p>' + esc(tipText) + '</p>'\n        + '<small>\u5546\u54C1\u30DA\u30FC\u30B8\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u304B\u3089\u5909\u66F4\u3067\u304D\u307E\u3059\u3002</small>'\n        + '</section>'\n      : '';\n\n    /* \u69CB\u6210\u3092\u9069\u7528\u3057\u305F\u72B6\u614B\u3067\u958B\u304FURL(\u89E3\u6C7A\u3067\u304D\u306A\u3044\u5834\u5408\u306F\u7D20\u306EURL\u306B\u623B\u308B) */\n    var applyUrl = configuredUrl(productUrl, product, item);\n    /* \u30AA\u30D7\u30B7\u30E7\u30F3\u52A0\u7B97\u984D = \u6700\u7D42\u69CB\u6210\u306E\u5408\u8A08 - \u63B2\u8F09\u30E2\u30C7\u30EB\u306E\u6A19\u6E96\u69CB\u6210\u4FA1\u683C\u3002\n       \u30B1\u30FC\u30B9\u3092\u5909\u3048\u3066\u3082\u3053\u306E\u52A0\u7B97\u5206\u3092\u7DAD\u6301\u3059\u308B\u305F\u3081\u3001\u52A0\u7B97\u984D\u3068\u3057\u3066\u6E21\u3059\u3002 */\n    var baseListPrice = (product && product.price) || item.price || 0;\n    var caseBase = finalTotal || baseListPrice;\n    var addonTotal = (finalTotal && baseListPrice && finalTotal > baseListPrice)\n      ? (finalTotal - baseListPrice) : 0;\n    var caseHtml = renderCasePicker(item.productId, applyUrl, caseBase, addonTotal);\n\n    /* 2026-08-17: \u5546\u54C1\u540D/\u7406\u7531/\u30B9\u30DA\u30C3\u30AF\u8868/\u4FA1\u683C\u306F\u4E0A\u306E3\u53F0\u30AB\u30FC\u30C9\u306B\u51FA\u3066\u3044\u308B\u305F\u3081\u3001\n       \u3053\u3053\u3067\u306F\u7E70\u308A\u8FD4\u3055\u306A\u3044(\u540C\u3058\u5185\u5BB9\u304C\u7E26\u306B2\u5EA6\u4E26\u3093\u3067\u3044\u305F)\u3002\n       \u4E0B\u306B\u6B8B\u3059\u306E\u306F\u300C\u63B2\u8F09\u30E2\u30C7\u30EB\u3068\u306E\u5DEE\u5206\u300D\u300C\u30B1\u30FC\u30B9\u9078\u629E\u300D\u300C\u30AA\u30D7\u30B7\u30E7\u30F3\u6848\u5185\u300D\u3060\u3051\u3002 */\n    return ''\n      + '<section class=\"gs-result-primary gs-result-primary--detail\">'\n      +   (adjustment ? '<div class=\"gs-result-primary__note\">' + adjustment + '</div>' : '')\n      +   '<article class=\"gs-result-product\">'\n      +     '<span class=\"gs-result-product__label\">\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u5143\u306E\u63B2\u8F09\u30E2\u30C7\u30EB</span>'\n      +     '<h4>' + esc(productTitle) + '</h4>'\n      +     '<p>' + esc(status) + '</p>'\n      +     imageHtml\n      + diffHtml\n      +     (caseHtml ? '' : '<a href=\"' + esc(applyUrl) + '\" class=\"gs-result-product__cta\" id=\"gsCaseCta\">\u3053\u306E\u69CB\u6210\u3067\u5546\u54C1\u30DA\u30FC\u30B8\u3092\u958B\u304F</a>')\n      +   '</article>'\n      +   caseHtml\n      + '</section>';\n  }\n\n  function resultGpuVendor(gpu) {\n    var value = String(gpu || '').toUpperCase();\n    if (/\\bRX\\s*\\d/.test(value)) return 'AMD';\n    if (/\\bRTX?\\s*\\d/.test(value)) return 'NVIDIA';\n    return 'OTHER';\n  }\n\n  function resultItemSsd(item) {\n    if (item && item.ssd) return item.ssd;\n    var product = item ? (findCatalogProductById(item.productId) || findCatalogProduct(item.gpu)) : null;\n    var title = product ? product.title : '';\n    var stdSsd = (String(title).toUpperCase().match(/(\\d+)\\s*(TB|GB)(?=\\s|$|\u3010)/g) || []).slice(-1)[0] || '';\n    return stdSsd ? 'NVMe SSD ' + stdSsd : '\u2014';\n  }\n\n  function normalizedStorageSpec(value) {\n    var text = String(value || '').toUpperCase();\n    var capacityMatch = text.match(/(\\d+(?:\\.\\d+)?)\\s*(TB|GB)/);\n    var generationMatch = text.match(/\\bGEN(?:ERATION)?\\s*([345])\\b/);\n    var capacityGb = '';\n    if (capacityMatch) {\n      capacityGb = parseFloat(capacityMatch[1]) * (capacityMatch[2] === 'TB' ? 1024 : 1);\n    }\n    return {\n      capacityGb: capacityGb,\n      generation: generationMatch ? generationMatch[1] : ''\n    };\n  }\n\n  function resultSpecDiffers(label, leftValue, rightValue) {\n    if (label === 'SSD') {\n      var leftStorage = normalizedStorageSpec(leftValue);\n      var rightStorage = normalizedStorageSpec(rightValue);\n      if (leftStorage.capacityGb !== '' && rightStorage.capacityGb !== '') {\n        if (leftStorage.capacityGb !== rightStorage.capacityGb) return true;\n        return !!(leftStorage.generation && rightStorage.generation && leftStorage.generation !== rightStorage.generation);\n      }\n    }\n    return String(leftValue).replace(/\\s+/g, '').toUpperCase() !== String(rightValue).replace(/\\s+/g, '').toUpperCase();\n  }\n\n  function renderResultSpecs(item, primaryItem, isPrimary) {\n    var values = [\n      ['CPU', item.cpu || '\u2014', primaryItem && primaryItem.cpu || '\u2014'],\n      ['GPU', item.gpu || '\u2014', primaryItem && primaryItem.gpu || '\u2014'],\n      ['RAM', item.mem || '16GB', primaryItem && (primaryItem.mem || '16GB') || '16GB'],\n      ['SSD', resultItemSsd(item), primaryItem ? resultItemSsd(primaryItem) : '\u2014']\n    ];\n    if (!isPrimary) {\n      values = values.filter(function(row){\n        return resultSpecDiffers(row[0], row[1], row[2]);\n      });\n      if (!values.length) return '<p class=\"gs-rank__same\">\u4E3B\u8981\u30B9\u30DA\u30C3\u30AF\u306F\u304A\u3059\u3059\u3081\u3068\u540C\u7B49\u3067\u3059</p>';\n    }\n    return '<dl class=\"gs-rank__spec' + (isPrimary ? '' : ' gs-rank__spec--diff') + '\">' + values.map(function(row){\n      return '<div><dt>' + esc(row[0]) + '</dt><dd>' + esc(row[1]) + '</dd></div>';\n    }).join('') + '</dl>';\n  }\n\n  /* \u672C\u547D\u3092\u5927\u304D\u306A\u6C7A\u65AD\u9762\u3001\u6B8B\u308A\u6700\u59272\u53F0\u3092\u5DEE\u5206\u4E2D\u5FC3\u306E\u6BD4\u8F03\u9762\u3068\u3057\u3066\u63CF\u753B\u3059\u308B\u3002 */\n  function renderRankCard(item, rank, hintCaseHandle, primaryItem) {\n    var isPrimary = rank === 1;\n    var product = findCatalogProductById(item.productId) || findCatalogProduct(item.gpu);\n    var searchGpu = encodeURIComponent('\"' + (item.gpu || '') + '\"');\n    var baseUrl = product ? product.url : 'https://www.titan-pc.net/search?q=' + searchGpu;\n    var url = configuredUrl(baseUrl, product, item);\n    var price = (item && typeof item.total === 'number' && item.total > 0)\n      ? item.total : (product && product.price ? product.price : item.price);\n    var rawTitle = product ? product.title : (item.gpu || '\u304A\u3059\u3059\u3081\u69CB\u6210');\n    var name = shortProductTitle(rawTitle);\n    if (item.largeVram) {\n      var vramCase = caseNameFromTitle(rawTitle);\n      name = (vramCase ? vramCase + ' / ' : '') + (item.gpu || '') + ' \u642D\u8F09\u30E2\u30C7\u30EB';\n    }\n    var imgSrc = product && product.image ? product.image : '';\n    var why = (item.why || '').trim();\n    var addonTotal = (item.total && product && product.price && item.total > product.price)\n      ? (item.total - product.price) : 0;\n    var effectivePid = item.productId;\n    var caseList = getCasesForProduct(item.productId);\n    if (hintCaseHandle && hintCaseHandle !== item.productId) {\n      if (caseList) {\n        for (var ci = 0; ci < caseList.length; ci++) {\n          if (caseList[ci].h === hintCaseHandle) {\n            if (Number.isFinite(__budCeil) && __budCeil > 0 && caseList[ci].p + addonTotal > __budCeil) break;\n            if (caseList[ci].i) imgSrc = caseList[ci].i;\n            if (caseList[ci].u) url = carryRankConfig(caseList[ci].u, url);\n            price = caseList[ci].p + addonTotal;\n            effectivePid = hintCaseHandle;\n            var hp = name.split('/');\n            if (hp.length >= 2 && caseList[ci].n) {\n              name = caseList[ci].n + ' /' + hp.slice(1).join('/');\n            }\n            break;\n          }\n        }\n      }\n    } else if (!hintCaseHandle && caseList) {\n      var pidInList = caseList.some(function(v){ return v.h === item.productId; });\n      if (!pidInList) {\n        var titleCase2 = product ? caseNameFromTitle(product.title) : '';\n        var titleBase2 = titleCase2 ? caseBaseName(titleCase2) : '';\n        var matched2 = titleBase2 ? caseList.find(function(v){ return caseBaseName(v.n) === titleBase2; }) : null;\n        var defCase = matched2 || caseList.slice().sort(function(a,b){ return a.p - b.p; })[0];\n        if (defCase) {\n          if (defCase.i) imgSrc = defCase.i;\n          if (defCase.u) url = carryRankConfig(defCase.u, url);\n          price = defCase.p + addonTotal;\n          effectivePid = defCase.h;\n          var nameParts = name.split('/');\n          if (nameParts.length >= 2 && defCase.n) {\n            name = defCase.n + ' /' + nameParts.slice(1).join('/');\n          }\n        }\n      }\n    }\n    var effectiveProduct = findCatalogProductById(effectivePid) || product;\n    var effectiveCase = name.split('/')[0].trim();\n    var imageFallback = effectiveProduct && effectiveProduct.image ? effectiveProduct.image : '';\n    var imageFallbackAttr = imageFallback && imageFallback !== imgSrc\n      ? ' data-fallback-src=\"' + esc(imageFallback) + '\"' : '';\n    var img = imgSrc\n      ? '<img class=\"gs-rank__img\" src=\"' + esc(imgSrc) + '\"' + imageFallbackAttr + ' alt=\"\" loading=\"lazy\" width=\"420\" height=\"420\">'\n      : '<div class=\"gs-rank__img gs-rank__img--none\" aria-hidden=\"true\">TITAN</div>';\n    var caseHtml = renderCaseControl(item.productId, effectivePid);\n    /* \u6027\u80FD\u4F59\u88D5\u30D0\u30FC: GPU\u306ETime Spy\u5B9F\u30B9\u30B3\u30A2 \u00F7 \u9078\u629E\u6761\u4EF6\u306E\u5FC5\u8981\u30B9\u30B3\u30A2\u3002\n       \u5FC5\u8981\u30E9\u30A4\u30F3(\u76EE\u76DB\u308A)\u3092\u56FA\u5B9A\u4F4D\u7F6E\u306B\u7F6E\u304D\u3001\u8D85\u904E\u5206\u304C\u8996\u899A\u7684\u306A\u300C\u4F59\u88D5\u300D\u306B\u306A\u308B\u3002 */\n    var fitHtml = '';\n    var __eng = window.TitanRecommendationEngine;\n    var __gd = (__eng && __eng.gpuDetails) ? __eng.gpuDetails(item.gpu) : null;\n    if (__gd && __gd.score && __minS > 0) {\n      var fitRatio = __gd.score / __minS;\n      var fitLabel = fitRatio >= 1.5 ? '\u6027\u80FD\u306B\u5927\u304D\u306A\u4F59\u88D5'\n        : fitRatio >= 1.15 ? '\u6027\u80FD\u306B\u4F59\u88D5\u3042\u308A'\n        : fitRatio >= 1.0 ? '\u5FC5\u8981\u6761\u4EF6\u3092\u6E80\u305F\u3059'\n        : '\u8A2D\u5B9A\u8ABF\u6574\u3067\u5FEB\u9069';\n      var fitPct = Math.max(6, Math.min(100, Math.round(fitRatio / 1.6 * 100)));\n      var tickPct = Math.round(100 / 1.6);\n      /* \u51E1\u4F8B(\u7E26\u7DDA=\u5FC5\u8981\u30E9\u30A4\u30F3)\u306F\u30AB\u30FC\u30C9\u3054\u3068\u306B\u7E70\u308A\u8FD4\u3059\u3068\u5197\u9577\u306A\u306E\u3067\u30D8\u30C3\u30C0\u30FC\u306B1\u56DE\u3060\u3051\u51FA\u3059 */\n      fitHtml = '<div class=\"gs-rank__fit\">'\n        + '<div class=\"gs-rank__fit-head\"><span>\u6027\u80FD\u4F59\u88D5</span><strong>' + fitLabel + '</strong></div>'\n        + '<div class=\"gs-rank__fit-track\"><span class=\"gs-rank__fit-bar\" style=\"width:' + fitPct + '%\"></span><i class=\"gs-rank__fit-tick\" style=\"left:' + tickPct + '%\" aria-hidden=\"true\"></i></div>'\n        + '</div>';\n    }\n    var score = __gd && __gd.score ? __gd.score : 0;\n    var tailParts = name.split('/');\n    var nameTail = tailParts.length >= 2 ? tailParts.slice(1).join('/').trim() : '';\n    var specs = renderResultSpecs(item, primaryItem || item, isPrimary);\n    var quickPosition = isPrimary ? 'best_quick' : 'compare_' + rank + '_quick';\n    var quickRank = isPrimary ? 'best' : String(rank);\n    var quickName = isPrimary\n      ? 'AI\u8A3A\u65AD\u7D50\u679C\u306E\u672C\u547D\u3092\u3059\u3050\u898B\u308B'\n      : 'AI\u8A3A\u65AD\u7D50\u679C\u306E\u6BD4\u8F03\u5019\u88DC\u3092\u3059\u3050\u898B\u308B';\n    var quickLink = '<a class=\"gs-rank__quick\" href=\"' + esc(url) + '\"'\n      + ' data-ph-capture-attribute-titan-group=\"product_card\"'\n      + ' data-ph-capture-attribute-titan-name=\"' + quickName + '\"'\n      + ' data-ph-capture-attribute-titan-position=\"' + quickPosition + '\"'\n      + ' data-ph-capture-attribute-product-title=\"' + esc(name) + '\"'\n      + ' data-ph-capture-attribute-product-handle=\"' + esc(effectivePid || '') + '\"'\n      + ' data-ph-capture-attribute-result-rank=\"' + quickRank + '\"'\n      + ' data-ph-capture-attribute-recommended-gpu-key=\"' + esc(item.gpu || '') + '\"'\n      + ' data-ph-capture-attribute-recommended-case-key=\"' + esc(effectiveCase) + '\">'\n      + '\u5546\u54C1\u3092\u898B\u308B <span aria-hidden=\"true\">\u2192</span></a>';\n    var status = isPrimary\n      ? '<div class=\"gs-rank__status\"><strong class=\"gs-rank__pick\">\u3044\u3061\u3070\u3093\u306E\u304A\u3059\u3059\u3081</strong>'\n        + quickLink + '</div>'\n      : '<div class=\"gs-rank__status\"><strong class=\"gs-rank__role\">' + (item.largeVram ? 'VRAM 32GB' : '\u3082\u3046\u4E00\u3064\u306E\u5019\u88DC') + '</strong>'\n        + quickLink + '</div>';\n    var listHtml = isPrimary ? ''\n      : item.largeVram\n      ? '<ul class=\"gs-rank__deltas\" aria-label=\"\u3053\u306E\u5019\u88DC\u306B\u3064\u3044\u3066\">' + LARGE_VRAM_FACTS.map(function(fact){ return '<li>' + esc(fact) + '</li>'; }).join('') + '</ul>'\n      : '<ul class=\"gs-rank__deltas\" aria-label=\"\u304A\u3059\u3059\u3081\u3068\u306E\u9055\u3044\"></ul>';\n    return ''\n      + '<article class=\"gs-rank ' + (isPrimary ? 'gs-rank--primary is-top' : 'gs-rank--compare' + (item.largeVram ? ' gs-rank--vram' : '')) + '\"'\n      +   ' data-rank-source-id=\"' + esc(item.productId) + '\" data-rank-pid=\"' + esc(effectivePid) + '\"'\n      +   ' data-rank-addon=\"' + addonTotal + '\" data-rank-total=\"' + price + '\" data-rank-budget=\"' + (Number.isFinite(__budCeil) ? __budCeil : 0) + '\" data-rank-score=\"' + score + '\"'\n      +   ' data-rank-vendor=\"' + esc(resultGpuVendor(item.gpu)) + '\" data-rank-gpu=\"' + esc(item.gpu || '') + '\" data-rank-tail=\"' + esc(nameTail) + '\">'\n      +   status\n      +   '<div class=\"gs-rank__thumb\">' + img + '</div>'\n      +   '<div class=\"gs-rank__body\">'\n      +     '<h4 class=\"gs-rank__name\">' + esc(name) + '</h4>'\n      +     '<p class=\"gs-rank__why\">' + esc(why) + '</p>'\n      +     listHtml\n      +     specs\n      +     fitHtml\n      +     caseHtml\n      +   '</div>'\n      +   '<div class=\"gs-rank__foot\">'\n      +     '<div class=\"gs-rank__price\" aria-live=\"polite\"><span>\u3053\u306E\u69CB\u6210\u306E\u5408\u8A08</span><strong>' + esc(displayPrice(price)) + '</strong></div>'\n      +     '<a class=\"gs-rank__cta\" href=\"' + esc(url) + '\"'\n      +       ' data-ph-capture-attribute-titan-group=\"product_card\"'\n      +       ' data-ph-capture-attribute-titan-name=\"AI\u8A3A\u65AD\u7D50\u679C\u306E\u5546\u54C1\u8A73\u7D30\u3092\u898B\u308B\"'\n      +       ' data-ph-capture-attribute-titan-position=\"' + rank + '\"'\n      +       ' data-ph-capture-attribute-product-title=\"' + esc(name) + '\"'\n      +       ' data-ph-capture-attribute-product-handle=\"' + esc(effectivePid || '') + '\"'\n      +       ' data-ph-capture-attribute-result-rank=\"' + rank + '\"'\n      +       ' data-ph-capture-attribute-recommended-gpu-key=\"' + esc(item.gpu || '') + '\"'\n      +       ' data-ph-capture-attribute-recommended-case-key=\"' + esc(effectiveCase) + '\">'\n      +       (isPrimary ? '\u3053\u306E\u69CB\u6210\u3092\u9078\u3076' : '\u5546\u54C1\u8A73\u7D30\u3092\u898B\u308B') + '</a>'\n      +   '</div>'\n      + '</article>';\n  }\n\n  /* VRAM 32GB\u306E\u67A0\u306B\u51FA\u3059\u4E8B\u5B9F\uFF08\u7279\u96C6\u30DA\u30FC\u30B8 /pages/local-llm \u3067\u51FA\u5178\u3092\u78BA\u8A8D\u6E08\u307F\u306E\u3082\u306E\u3060\u3051\uFF09\u3002 */\n  var LARGE_VRAM_FACTS = [\n    'VRAM 32GB\uFF08GDDR6\uFF09',\n    'Windows\u3067\u306FOllama\u304CVulkan\u3067\u52D5\u304B\u3057\u307E\u3059\uFF08ROCm\u306FLinux\u304C\u4E2D\u5FC3\uFF09',\n    '\u30D6\u30ED\u30EF\u30FC\u578B\u306E\u305F\u3081\u3001\u9AD8\u8CA0\u8377\u6642\u306E\u30D5\u30A1\u30F3\u97F3\u306F\u5927\u304D\u3081',\n    '\u63A8\u8AD6\u30BD\u30D5\u30C8\u30FB\u30E2\u30C7\u30EB\u306F\u4ED8\u5C5E\u3057\u307E\u305B\u3093'\n  ];\n\n  function renderLargeVramSection(item, primaryItem) {\n    return '<section class=\"gs-rank__comparisons gs-rank__vram\" aria-labelledby=\"gsVramTitle\">'\n      + '<div class=\"gs-rank__compare-head\"><h3 id=\"gsVramTitle\">\u5927\u304D\u306A\u30E2\u30C7\u30EB\u5411\u3051</h3><p>\u30B2\u30FC\u30E0\u6027\u80FD\u3067\u306F\u306A\u304F\u3001VRAM\u306E\u5927\u304D\u3055\u3067\u9078\u3076\u5019\u88DC\u3067\u3059</p></div>'\n      + '<div class=\"gs-rank__compare-grid\">' + renderRankCard(item, 'vram', null, primaryItem) + '</div></section>';\n  }\n\n  function renderAlternativeResult(item, label) {\n    var product = findCatalogProductById(item.productId) || findCatalogProduct(item.gpu);\n    var searchGpu = encodeURIComponent('\"' + (item.gpu || '') + '\"');\n    var productUrl = product ? product.url : 'https://www.titan-pc.net/search?q=' + searchGpu;\n    var productPrice = (item && typeof item.total === 'number' && item.total > 0)\n      ? item.total\n      : (product && product.price ? product.price : item.price);\n    var detail = item.budgetDelta > 0\n      ? '\u9078\u629E\u4E88\u7B97\u3088\u308A' + displayPrice(item.budgetDelta) + '\u4E0A\u3002\u6027\u80FD\u6761\u4EF6\u3092\u4E0B\u3052\u306A\u3044\u5019\u88DC\u3067\u3059\u3002'\n      : item.why;\n    return ''\n      + '<article class=\"gs-result-alt\">'\n      +   '<span>' + esc(label) + '</span>'\n      +   '<h4>' + esc(item.gpu || '\u2014') + '</h4>'\n      +   '<p class=\"gs-result-alt__spec\">' + esc(item.cpu || '') + ' / ' + esc(item.mem || '16GB') + '</p>'\n      +   (detail ? '<p>' + esc(detail) + '</p>' : '')\n      +   '<div><strong>' + esc(displayPrice(productPrice)) + '</strong><a href=\"' + esc(productUrl) + '\">\u5546\u54C1\u30DA\u30FC\u30B8\u3092\u898B\u308B</a></div>'\n      + '</article>';\n  }\n\n  function preferredCaseHandle(item) {\n    var look = sel.look || {};\n    if (!look.rgb && !look.size) return null;\n    var list = getCasesForProduct(item.productId);\n    if (!list || !list.length) return null;\n    var current = list.find(function(entry){ return entry.h === item.productId; }) || null;\n    var currentName = current ? current.n : '';\n    var match = null;\n    if (look.rgb === 'no') match = list.find(function(entry){ return /^H17/i.test(entry.n); }) || null;\n    else if (look.rgb === 'yes') match = !/^H17/i.test(currentName) && current\n      ? current : (list.find(function(entry){ return !/^H17/i.test(entry.n); }) || null);\n    else if (look.size === 'big') match = /^(DS900|NeoPrism|Neo Prism)/i.test(currentName) && current\n      ? current : (list.find(function(entry){ return /^(DS900|NeoPrism|Neo Prism)/i.test(entry.n); }) || null);\n    else if (look.size === 'small') match = /^(H17|AQUA UNO)/i.test(currentName) && current\n      ? current : (list.find(function(entry){ return /^(H17|AQUA UNO)/i.test(entry.n); }) || null);\n    return match ? match.h : null;\n  }\n\n  function projectedPrimaryTotal(item, caseHandle) {\n    var product = findCatalogProductById(item.productId) || findCatalogProduct(item.gpu);\n    var basePrice = (product && product.price) || item.price || 0;\n    var configured = (typeof item.total === 'number' && item.total > 0) ? item.total : basePrice;\n    if (!caseHandle) return configured;\n    var list = getCasesForProduct(item.productId) || [];\n    var picked = list.find(function(entry){ return entry.h === caseHandle; });\n    if (!picked) return configured;\n    var addon = configured > basePrice ? configured - basePrice : 0;\n    return picked.p + addon;\n  }\n\n  function selectedGamesFavorGpu() {\n    var usages = sel.usages || [];\n    if (usages.indexOf('streaming') >= 0 || usages.indexOf('creation') >= 0 || usages.indexOf('work_study') >= 0) return false;\n    var games = legacy().games || [];\n    if (!games.length) return true;\n    return games.some(function(game){\n      var profile = GAME_MIN_SCORES[game] || GAME_MIN_SCORES[gameName(game)];\n      if (!profile) return true;\n      var wqhd = typeof profile === 'object' ? Number(profile.WQHD) : Number(profile);\n      return !Number.isFinite(wqhd) || wqhd >= 13900;\n    });\n  }\n\n  /* PIT LANE \u7528 \u7D50\u679C\u30AB\u30FC\u30C9: \u65E7wz-rcard\u3092\u5168\u5EC3\u3001gs-card \u3067\u518D\u751F\u6210 */\n  function renderResults(items, metaReason) {\n    resetCaseModalForRender();\n    var largeVramItems = (Array.isArray(items) ? items : []).filter(function(item){ return item && item.largeVram; }).slice(0, 1);\n    items = (Array.isArray(items) ? items : []).filter(function(item){ return item && !item.largeVram; });\n    var _Lr = legacy();\n    var resultEngine = window.TitanRecommendationEngine;\n    if (resultEngine && resultEngine.preferBalancedCpu) {\n      var gpuPriority = selectedGamesFavorGpu();\n      items = items.map(function(item){\n        var product = findCatalogProductById(item.productId) || findCatalogProduct(item.gpu);\n        return resultEngine.preferBalancedCpu(item, product, {\n          budgetCeiling: __budCeil,\n          projectedTotal: projectedPrimaryTotal(item, preferredCaseHandle(item)),\n          gpuPriority: gpuPriority\n        });\n      });\n    }\n    var aiPrimary = items.find(function(item){ return item.rank === 'best'; }) || items[0];\n    var projectedItems = items.map(function(item, index){\n      return Object.assign({}, item, {\n        total: projectedPrimaryTotal(item, preferredCaseHandle(item)),\n        __sourceIndex: index\n      });\n    });\n    var projectedPrimary = isAiUnlimitedHeavy(_Lr)\n      ? projectedItems.find(function(item){ return item.rank === 'best'; })\n      : resultEngine && resultEngine.choosePrimaryResult\n      ? resultEngine.choosePrimaryResult(projectedItems, __budCeil)\n      : null;\n    var primary = projectedPrimary ? items[projectedPrimary.__sourceIndex] : aiPrimary;\n    var primaryWasPromoted = !!(primary && aiPrimary && primary !== aiPrimary);\n    var comparisons = [];\n    ['value', 'alt'].forEach(function(rank){\n      var item = items.find(function(candidate){ return candidate !== primary && candidate.rank === rank; });\n      if (item) comparisons.push(item);\n    });\n    items.forEach(function(item){\n      if (item !== primary && comparisons.indexOf(item) < 0) comparisons.push(item);\n    });\n    comparisons = comparisons.slice(0, 2);\n    var ordered = primary ? [primary].concat(comparisons).map(function(item, index){\n      var normalized = Object.assign({}, item, { rank: index === 0 ? 'best' : index === 1 ? 'value' : 'alt' });\n      if (primaryWasPromoted && index === 0) normalized.why = '\u4E88\u7B97\u5185\u3067\u3001CPU\u30FB\u30E1\u30E2\u30EA\u3092\u843D\u3068\u3055\u305A\u6027\u80FD\u3092\u512A\u5148';\n      else if (primaryWasPromoted && item === aiPrimary) normalized.why = '\u4FA1\u683C\u3092\u6291\u3048\u305F\u3044\u5834\u5408\u306E\u5019\u88DC';\n      return removePremiumRtxPriceCopy(normalized);\n    }) : [];\n    try{window.__wzLastItems=ordered;window.__wzLastReason=metaReason||'';}catch(e){}\n\n    var names = _Lr.games.map(gameName).join('\u30FB');\n    var comfortL = LABELS[sel.comfort]||sel.comfort;\n    var usageL = (sel.usages && sel.usages.length)\n      ? sel.usages.map(function(u){ return LABELS[u]||u; }).join(' / ')\n      : (LABELS[sel.usage]||sel.usage||'\u30B2\u30FC\u30E0');\n    /* \u5019\u88DC\u6570\u3092\u6B63\u3057\u304F\u4F1D\u3048\u3064\u3064\u3001\u5224\u65AD\u306E\u8EF8\u3092\u300C\u672C\u547D + \u6BD4\u8F03\u5019\u88DC\u300D\u306B\u7F6E\u304F\u3002 */\n    (function(){\n      var head = document.querySelector('.gs-out__head');\n      var n = ordered.length ? ordered.length + largeVramItems.length : 0;\n      if (head) head.setAttribute('data-gs-count', n > 0 ? String(n) : '');\n      var titleEl = $('wzResultTitle');\n      if (titleEl && n > 0) {\n        var compareCount = Math.max(0, n - 1);\n        titleEl.textContent = compareCount\n          ? '\u6761\u4EF6\u306B\u5408\u3046PC\u3092' + n + '\u53F0\u9078\u3073\u307E\u3057\u305F'\n          : '\u6761\u4EF6\u306B\u5408\u3046PC\u3092\u9078\u3073\u307E\u3057\u305F';\n      }\n    })();\n    if (metaReason) { $('wzReason').textContent = metaReason; }\n    else {\n      /* casual \u306F\u901A\u5E38\u306E\u300C\u25EF\u25EF\u3092\u8A2D\u5B9A\u540D\u3067\u904A\u3076\u300D\u6587\u578B\u3060\u3068\u4E0D\u81EA\u7136\u306B\u306A\u308B\u305F\u3081\u3001\u7528\u9014\u4E2D\u5FC3\u306E\u6587\u578B\u3078\u5206\u3051\u308B\u3002 */\n      $('wzReason').textContent = (sel.comfort === 'casual'\n        ? names + ' \u304C\u52D5\u3051\u3070\u5341\u5206\u3068\u3044\u3046\u524D\u63D0\u3067\u3001\u7528\u9014\u4E2D\u5FC3\u306B\u9078\u3093\u3060\u69CB\u6210\u3067\u3059\u3002'\n        : names + ' \u3092 ' + comfortL + ' \u3067\u904A\u3076\u305F\u3081\u306E\u69CB\u6210\u3067\u3059\u3002')\n        + (usageL !== '\u30B2\u30FC\u30E0' ? ' ('+usageL+')' : '');\n    }\n    /* \u56DE\u7B54\u6761\u4EF6\u30C1\u30C3\u30D7: \u8A3A\u65AD\u306B\u4F7F\u3063\u305F\u6761\u4EF6\u3092\u30D8\u30C3\u30C0\u30FC\u5185\u306B\u4E00\u89A7\u5316\u3059\u308B\u3002\n       metaReason(AI\u306E\u9078\u5B9A\u7406\u7531)\u306B\u306F\u5165\u529B\u6761\u4EF6\u304C\u5168\u90E8\u306F\u51FA\u306A\u3044\u305F\u3081\u3001\u3053\u3053\u3067\u88DC\u5B8C\u3059\u308B\u3002 */\n    (function(){\n      var chipsEl = $('wzChips');\n      if (!chipsEl) return;\n      var chips = [];\n      _Lr.games.forEach(function(g){ chips.push(gameName(g)); });\n      if (comfortL) chips.push(comfortL);\n      if (usageL) chips.push(usageL);\n      if (sel.budgetAnswered && _Lr.bud && _Lr.bud !== 'unlimited' && _Lr.bud !== '999999') {\n        chips.push('\u4E88\u7B97 \u00A5' + parseInt(_Lr.bud, 10).toLocaleString('ja-JP') + ' \u4EE5\u4E0B');\n      }\n      var lk = sel.look || {};\n      if (lk.rgb === 'yes') chips.push('\u5149\u308B\u30B1\u30FC\u30B9');\n      if (lk.rgb === 'no') chips.push('\u5149\u3089\u306A\u3044\u30B1\u30FC\u30B9');\n      if (lk.size === 'big') chips.push('\u5927\u304D\u3081');\n      if (lk.size === 'small') chips.push('\u5C0F\u3055\u3081');\n      chipsEl.innerHTML = chips.map(function(c){\n        return '<span class=\"gs-out__chip\">' + esc(c) + '</span>';\n      }).join('');\n    })();\n\n    /* \u30EA\u30FC\u30C9\u6587(wzReason)\u3068\u91CD\u8907\u3059\u308B\u305F\u3081 metaReason \u306F\u4F7F\u308F\u306A\u3044\u3002\n       \u30AB\u30FC\u30C9\u306B\u306F\u5019\u88DC\u56FA\u6709\u306E why \u3092\u51FA\u3059(\u7121\u3051\u308C\u3070\u7406\u7531\u884C\u305D\u306E\u3082\u306E\u3092\u7701\u304F)\u3002 */\n    var primaryReason = '';\n    /* 2026-08-17: \u4E0A\u306B3\u53F0\u3092\u5BFE\u7B49\u306B\u4E26\u3079\u3001\u4E0B\u306F1\u4F4D\u306E\u8A73\u7D30\u3060\u3051\u306B\u3059\u308B\u3002\n       \u65E7\u300C\u307B\u304B\u306E\u5019\u88DC\u300D\u306F3\u53F0\u306B\u542B\u307E\u308C\u308B\u305F\u3081\u51FA\u3055\u306A\u3044(\u540C\u4E00\u5546\u54C1\u306E\u4E8C\u91CD\u8868\u793A\u3092\u9632\u3050)\u3002 */\n    /* \u540C\u3058\u30B1\u30FC\u30B9\u30E2\u30C7\u30EB(\u8272\u9055\u3044\u306FOK)\u304C3\u53F0\u4E26\u3076\u306E\u3092\u907F\u3051\u308B\u3002\n       \u91CD\u8907\u304C\u3042\u308C\u30702\u53F0\u76EE\u4EE5\u964D\u3092\u5225\u30B1\u30FC\u30B9\u30E2\u30C7\u30EB\u306B\u305A\u3089\u3059\u3002 */\n    var caseHints = [];\n    var usedBases = [];\n    ordered.forEach(function(it, idx) {\n      var caseList = getCasesForProduct(it.productId);\n      var currentCase = null;\n      if (caseList) {\n        for (var j = 0; j < caseList.length; j++) {\n          if (caseList[j].h === it.productId) { currentCase = caseList[j]; break; }\n        }\n      }\n      var currentBase = currentCase ? caseBaseName(currentCase.n) : '';\n      if (!currentBase) {\n        var prod = findCatalogProductById(it.productId);\n        var titleCase = prod ? caseNameFromTitle(prod.title) : '';\n        if (titleCase) currentBase = caseBaseName(titleCase);\n      }\n      if (currentBase && usedBases.indexOf(currentBase) >= 0 && caseList) {\n        var alt = null;\n        for (var k = 0; k < caseList.length; k++) {\n          var altBase = caseBaseName(caseList[k].n);\n          if (altBase && usedBases.indexOf(altBase) < 0) { alt = caseList[k]; break; }\n        }\n        if (alt) {\n          caseHints.push(alt.h);\n          usedBases.push(caseBaseName(alt.n));\n        } else {\n          caseHints.push(null);\n          usedBases.push(currentBase);\n        }\n      } else {\n        caseHints.push(null);\n        if (currentBase) usedBases.push(currentBase);\n      }\n    });\n    /* \u660E\u793A\u3055\u308C\u305F\u898B\u305F\u76EE\u6761\u4EF6\u306F\u91CD\u8907\u56DE\u907F\u3088\u308A\u512A\u5148\u3057\u3001\u672C\u547D\u5224\u5B9A\u3068\u540C\u3058\u30B1\u30FC\u30B9\u3092\u8868\u793A\u3059\u308B\u3002 */\n    ordered.forEach(function(it, idx) {\n      var preferred = preferredCaseHandle(it);\n      if (preferred) caseHints[idx] = preferred;\n    });\n    var primaryHtml = ordered[0] ? renderRankCard(ordered[0], 1, caseHints[0], ordered[0]) : '';\n    var compareHtml = ordered.slice(1).map(function(it, i){\n      return renderRankCard(it, i + 2, caseHints[i + 1], ordered[0]);\n    }).join('');\n    $('wzResults').innerHTML = '<div class=\"gs-rank__grid\">'\n      + primaryHtml\n      + (compareHtml ? '<section class=\"gs-rank__comparisons\" aria-labelledby=\"gsCompareTitle\">'\n        + '<div class=\"gs-rank__compare-head\"><h3 id=\"gsCompareTitle\">\u307B\u304B\u306E\u5019\u88DC</h3><p>\u304A\u3059\u3059\u3081\u3068\u306E\u9055\u3044\u3060\u3051\u3092\u8868\u793A\u3057\u3066\u3044\u307E\u3059</p></div>'\n        + '<div class=\"gs-rank__compare-grid\">' + compareHtml + '</div></section>' : '')\n      + (ordered[0] && largeVramItems.length ? renderLargeVramSection(largeVramItems[0], ordered[0]) : '')\n      + '</div>'\n      + renderCaseModal();\n    refreshResultRoles();\n    /* \u6027\u80FD\u4F59\u88D5\u30D0\u30FC\u304C1\u679A\u3067\u3082\u51FA\u3066\u3044\u308C\u3070\u51E1\u4F8B\u3092\u51FA\u3059(\u30AB\u30FC\u30C9\u3054\u3068\u306E\u7E70\u308A\u8FD4\u3057\u3092\u3084\u3081\u305F\u5206) */\n    (function(){\n      var lg = $('wzFitLegend');\n      if (!lg) return;\n      var hasBar = !!$('wzResults').querySelector('.gs-rank__fit-track');\n      lg.style.display = hasBar ? '' : 'none';\n    })();\n    /* 2026-10-27 \u751F\u6210AI\u30FB\u30ED\u30FC\u30AB\u30EBAI \u3092\u9078\u3093\u3060\u6642\u3060\u3051\u3001\u7279\u96C6\u30DA\u30FC\u30B8\u3078\u306E\u30EA\u30F3\u30AF\u3092\u51FA\u3059 */\n    (function(){\n      var llm = $('wzLlmLink');\n      if (llm) llm.hidden = (sel.usages || []).indexOf('ai_use') < 0;\n    })();\n\n    showShareSection();\n\n    /* minS \u3082\u4FDD\u5B58\u3059\u308B\u3002\u5FA9\u5143\u6642\u306B\u7121\u3044\u3068\u6027\u80FD\u4F59\u88D5\u30D0\u30FC\u304C\u51FA\u305B\u306A\u3044 */\n    try { localStorage.setItem('wz_prev', JSON.stringify({ items: ordered.concat(largeVramItems), sel: sel, ts: Date.now(), metaReason: metaReason || '', minS: __minS })); } catch(e){}\n\n    /* AI-015: \u7D50\u679C\u8868\u793A\u30A4\u30D9\u30F3\u30C8 GA4 */\n    pushGA('ai_diag_result_view', {\n      games: sel.games.length,\n      comfort: sel.comfort || null,\n      usages: (sel.usages || []).join('|'),\n      budget: sel.budget || null,\n      buyMode: sel.buyMode || null,\n      result_gpus: ordered.map(function(it){return it.gpu;}).join('|')\n    });\n  }\n\n  /* AI-015: GA4 dataLayer push helper */\n  function pushGA(name, params){\n    try {\n      window.dataLayer = window.dataLayer || [];\n      window.dataLayer.push(Object.assign({ event: name }, params || {}));\n    } catch(e){}\n  }\n\n  function alignCardRows() {\n    var container = $('wzResults'); if (!container) return;\n    if (container.offsetWidth < 500) { container.querySelectorAll('[data-row]').forEach(function(el){ el.style.minHeight = ''; }); return; }\n    var rows = ['badge','gpu','perf','price','specs','why','tags','tip'];\n    rows.forEach(function(r) { var els = container.querySelectorAll('[data-row=\"'+r+'\"]'); if (els.length < 2) return; els.forEach(function(el){ el.style.minHeight = ''; }); });\n    void container.offsetHeight;\n    rows.forEach(function(r) {\n      var els = container.querySelectorAll('[data-row=\"'+r+'\"]'); if (els.length < 2) return;\n      var max = 0; els.forEach(function(el){ var h = el.offsetHeight; if (h > max) max = h; });\n      if (max > 0) { els.forEach(function(el){ el.style.minHeight = max + 'px'; }); }\n    });\n  }\n\n  function showFallback(text, hideRetry) {\n    $('wzReason').textContent = '';\n    hideShareSection();\n    var html = '<div class=\"wz-fallback\">' + esc(text) + '</div>';\n    if (!hideRetry) { html += '<button class=\"wz-btn-cta\" id=\"wzFRetry\" style=\"margin-top:16px\">\u3082\u3046\u4E00\u5EA6\u8A66\u3059</button>'; }\n    $('wzResults').innerHTML = html; go(7);\n    if (!hideRetry) {\n      setTimeout(function(){\n        var btn = $('wzFRetry');\n        if (btn) btn.addEventListener('click', function(){\n          if (!checkDiagLimit()) { showFallback('1\u6642\u9593\u3042\u305F\u308A\u306E\u8A3A\u65AD\u56DE\u6570\uFF08' + DIAG_HOUR_LIMIT + '\u56DE\uFF09\u306B\u9054\u3057\u307E\u3057\u305F\u3002\\n\u3057\u3070\u3089\u304F\u6642\u9593\u3092\u304A\u3044\u3066\u304B\u3089\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002', true); return; }\n          go(6); startLoad(); callAI();\n        });\n      }, 50);\n    }\n  }\n\n  function esc(s) {\n    return String(s || '')\n      .replace(/&/g, '&amp;')\n      .replace(/</g, '&lt;')\n      .replace(/>/g, '&gt;')\n      .replace(/\"/g, '&quot;')\n      .replace(/'/g, '&#39;');\n  }\n\n  $('wzChat').addEventListener('click', function(){\n    var _Lc = legacy();\n    var names = _Lc.games.map(gameName).join('\u30FB');\n    var comfortL = LABELS[sel.comfort]||sel.comfort, budL = formatBudget(sel.budget);\n    var usageL = (sel.usages && sel.usages.length)\n      ? sel.usages.map(function(u){ return LABELS[u]||u; }).join(' / ')\n      : (LABELS[sel.usage]||sel.usage||'');\n    var buyL = LABELS[sel.buyMode]||sel.buyMode||'';\n    var rankLabel = {\n      best:'\u304A\u3059\u3059\u3081', value:'\u30B3\u30B9\u30D1\u91CD\u8996', pro:'\u3055\u3089\u306B\u5FEB\u9069', amd:'AMD Radeon', alt:'\u5225\u306E\u9078\u629E\u80A2',\n      new_alt:'\u65B0\u54C1\u306A\u3089\u3053\u308C', new_pick:'\u65B0\u54C1\u67A0'\n    };\n    var items = (window.__wzLastItems || []).slice(0, 3);\n    var reason = window.__wzLastReason || '';\n    var lines = [];\n    lines.push('\u3010\u8A3A\u65AD\u6761\u4EF6\u3011');\n    lines.push('\u30FB\u904A\u3076\u30B2\u30FC\u30E0: ' + (names || '\u2014'));\n    lines.push('\u30FB\u753B\u8CEA\u76EE\u6A19: ' + (comfortL || '\u2014'));\n    if (usageL) lines.push('\u30FB\u4E3B\u306A\u7528\u9014: ' + usageL);\n    lines.push('\u30FB\u4E88\u7B97: ' + (budL || '\u2014'));\n    if (items.length){\n      lines.push('');\n      lines.push('\u3010\u63D0\u6848\u3055\u308C\u305F\u5019\u88DC ' + items.length + '\u53F0\u3011');\n      items.forEach(function(it, i){\n        var label = it.label || rankLabel[it.rank] || ('\u5019\u88DC' + (i+1));\n        if (/^RTX(?:5080|5090)/i.test(normalizeGpuName(it.gpu)) && /(?:\u30B3\u30B9\u30D1|\u4FA1\u683C)/.test(label)) {\n          label = '\u4E0A\u4F4D\u5019\u88DC';\n        }\n        var price = it.price;\n        if (typeof price === 'number') price = '\u00A5' + price.toLocaleString();\n        var spec = [it.cpu, it.mem || '16GB'].filter(Boolean).join(' / ');\n        var why = (it.why || '').replace(/\\s+/g, ' ').trim();\n        var tip = (it.tip || '').replace(/\\s+/g, ' ').trim();\n        var tags = (it.tags || []).join(', ');\n        var line = (i+1) + '. [' + label + '] ' + (it.gpu || '\u2014');\n        if (price) line += ' / ' + price + '\u301C';\n        if (spec) line += ' / ' + spec;\n        if (it.cond) line += ' / ' + it.cond;\n        lines.push(line);\n        if (why) lines.push('   \u7406\u7531: ' + why);\n        if (tags) lines.push('   \u30BF\u30B0: ' + tags);\n        if (tip) lines.push('   \u88DC\u8DB3: ' + tip);\n      });\n    }\n    if (reason){\n      lines.push('');\n      lines.push('\u3010AI\u306E\u9078\u5B9A\u7406\u7531\u3011');\n      lines.push(reason);\n    }\n    lines.push('');\n    lines.push('\u3010\u8CEA\u554F\u3011');\n    var context = lines.join('\\n');\n    var bubble = document.getElementById('ai-bubble'), panel = document.getElementById('ai-panel'), input = document.getElementById('ai-input');\n    if (bubble && panel) {\n      bubble.click();\n      setTimeout(function(){ if(!input)return; input.value=context; input.placeholder='\u8CEA\u554F\u3092\u5165\u529B (Shift+Enter\u3067\u9001\u4FE1)'; input.focus(); try{input.setSelectionRange(context.length,context.length);}catch(e){} if(window.titanAIAutosizeInput)window.titanAIAutosizeInput(); }, 300);\n    } else { window.location.href = 'https://www.titan-pc.net/pages/contact'; }\n  });\n\n  /* \u6761\u4EF6\u3092\u5909\u3048\u3066\u518D\u8A3A\u65AD: \u9078\u629E\u306F\u7DAD\u6301\u3057\u305F\u307E\u307E\u5165\u529B\u753B\u9762 (PIT LANE) \u306B\u623B\u3059 */\n  $('wzRetry').addEventListener('click', function(){\n    $('wzResults').innerHTML = ''; $('wzReason').textContent = '';\n    hideShareSection();\n    go(1); /* 1\u301C5 \u306E\u3069\u308C\u3067\u3082PIT LANE\u8868\u793A\u3067\u540C\u3058\u52D5\u4F5C\u30021\u3067\u4EE3\u8868 */\n    if (typeof window.__gsWizGo === 'function') window.__gsWizGo(0);\n    if (typeof updateStationStates === 'function') updateStationStates();\n    if (typeof updateLiveMeter === 'function') updateLiveMeter();\n    if (typeof updateCtaState === 'function') updateCtaState();\n  });\n\n  /* \u3059\u3079\u3066\u30EA\u30BB\u30C3\u30C8: \u4EFB\u610F\u9805\u76EE\u3092\u542B\u3080\u9078\u629E\u3092\u5168\u6D88\u53BB\u3057\u3066PIT LANE \u521D\u671F\u72B6\u614B\u3078\u623B\u3059 */\n  $('wzReset').addEventListener('click', function(){\n    sel = {games:[], comfort:null, usage:null, usages:[], usageDetails:{}, budget:null, budgetMin:'0', budgetAnswered:false, buyMode:'new', look:{rgb:null, size:null}};\n    var _bRange = $('gsBudgetRange');\n    var _bMin = $('gsBudgetMin');\n    if (_bRange) _bRange.value = BUDGET_MAX;\n    if (_bMin) _bMin.value = BUDGET_MIN;\n    if (typeof window.__gsSyncBudgetUI === 'function') window.__gsSyncBudgetUI();\n    root.querySelectorAll('.gs-tile.on, .wz-tile.on, .gs-opt.on, .wz-opt.on').forEach(function(x){ x.classList.remove('on'); x.setAttribute('aria-pressed','false'); });\n    root.querySelectorAll('.gs-look__opt.is-on').forEach(function(x){ x.classList.remove('is-on'); x.setAttribute('aria-pressed','false'); });\n    $('wzGameChips').innerHTML = ''; $('wzResults').innerHTML = ''; $('wzReason').textContent = '';\n    $('wzRequest').value = ''; $('wzReqCount').textContent = '0';\n    hideShareSection();\n    go(1);\n    if (typeof window.__gsWizGo === 'function') window.__gsWizGo(0);\n    if (typeof updateStationStates === 'function') updateStationStates();\n    if (typeof updateLiveMeter === 'function') updateLiveMeter();\n    if (typeof updateCtaState === 'function') updateCtaState();\n  });\n\n  (function(){\n    try {\n      var raw = localStorage.getItem('wz_prev'); if (!raw) return;\n      var prev = JSON.parse(raw);\n      if (!prev || !prev.items || !prev.sel || Date.now() - prev.ts > 7*24*60*60*1000) { localStorage.removeItem('wz_prev'); return; }\n      var btn = $('wzPrev'); if (btn) btn.style.display = '';\n    } catch(e){}\n  })();\n\n  $('wzPrev').addEventListener('click', function(){\n    try {\n      var raw = localStorage.getItem('wz_prev'); if (!raw) return;\n      var prev = JSON.parse(raw);\n      if (!prev || !prev.items || !prev.sel) return;\n      sel = prev.sel;\n      sel.games = Array.isArray(sel.games) ? sel.games : [];\n      sel.usages = Array.isArray(sel.usages) ? sel.usages : (sel.usage ? [sel.usage] : []);\n      sel.usageDetails = Object.assign({}, sel.usageDetails || {});\n      sel.look = Object.assign({rgb:null, size:null}, sel.look || {});\n      if (!sel.buyMode) sel.buyMode = 'new';\n      /* \u65E7\u30C7\u30FC\u30BF\u4E92\u63DB: budgetAnswered \u304C\u7121\u3044 / \u65E7\u96E2\u6563\u5024(999999\u7B49)\u3092\u6B63\u898F\u5316 */\n      var nb = normalizeBudget(sel.budget);\n      sel.budget = nb.budget;\n      sel.budgetAnswered = nb.answered;\n      var _pRange = $('gsBudgetRange');\n      var restoredMax = (nb.budget == null || nb.budget === '0') ? BUDGET_MAX : parseInt(nb.budget, 10);\n      if (!isFinite(restoredMax)) restoredMax = BUDGET_MAX;\n      restoredMax = Math.max(BUDGET_MIN, Math.min(BUDGET_MAX, restoredMax));\n      var restoredMin = parseInt(sel.budgetMin, 10);\n      if (!isFinite(restoredMin)) restoredMin = BUDGET_MIN;\n      restoredMin = Math.max(BUDGET_MIN, Math.min(restoredMax, restoredMin));\n      sel.budgetMin = String(restoredMin);\n      var _pMin = $('gsBudgetMin');\n      if (_pRange) _pRange.value = restoredMax;\n      if (_pMin) _pMin.value = restoredMin;\n      if (typeof window.__gsSyncBudgetUI === 'function') window.__gsSyncBudgetUI();\n      syncChoiceControls();\n      syncGames();\n      __minS = prev.minS || 0;\n      renderResults(prev.items, prev.metaReason || ''); go(7);\n    } catch(e){}\n  });\n\n})();\n\n(function(){\n  var root = document.getElementById('WzApp');\n  if (!root) return;\n  var $ = function(id){ return document.getElementById(id); };\n\n  /* --- Tab switching --- */\n  var diagPanel = root.querySelector('.wz-win-body');\n  var scorePanel = $('wzScorePanel');\n  var diagChildren = []; /* preserve existing content references */\n\n  var currentScStep = 0;\n  var diagPanel = $('wzDiagPanel');\n  root.querySelectorAll('.wz-tab').forEach(function(tab){\n    tab.addEventListener('click', function(){\n      root.querySelectorAll('.wz-tab').forEach(function(t){ t.classList.remove('active'); });\n      tab.classList.add('active');\n      if (tab.dataset.tab === 'score') {\n        diagPanel.style.display = 'none';\n        scorePanel.style.display = '';\n        if (!scorePanel.querySelector('.wz-sc.active')) {\n          var target = scorePanel.querySelector('[data-sc=\"' + currentScStep + '\"]');\n          if (target) target.classList.add('active');\n        }\n      } else {\n        scorePanel.style.display = 'none';\n        diagPanel.style.display = '';\n      }\n    });\n  });\n\n  /* --- GPU data with scores --- */\n  var GPU_LIST = [\n    {n:'RTX 5090', s:48500},{n:'RTX 5080', s:33000},{n:'RTX 5070 Ti', s:27700},\n    {n:'RTX 5070', s:22500},{n:'RTX 5060 Ti 16GB', s:15200},{n:'RTX 5060 Ti 8GB', s:15200},\n    {n:'RTX 5060 Ti', s:15200},{n:'RTX 5060', s:13900},{n:'RTX 5050', s:10259},\n    {n:'RX 9070 XT', s:29900},{n:'RX 9070', s:26300},{n:'RX 9070 GRE', s:21407},{n:'RX 9060 XT 16GB', s:16200},\n    {n:'RX 9060 XT 8GB', s:16200},{n:'RX 9060 XT', s:16200},\n    {n:'RTX 4090', s:36000},{n:'RTX 4080 Super', s:28500},{n:'RTX 4080', s:27000},\n    {n:'RTX 4070 Ti Super', s:24000},{n:'RTX 4070 Ti', s:22600},\n    {n:'RTX 4070 Super', s:20500},{n:'RTX 4070', s:18500},\n    {n:'RTX 4060 Ti 16GB', s:13800},{n:'RTX 4060 Ti 8GB', s:13500},{n:'RTX 4060 Ti', s:13500},\n    {n:'RTX 4060', s:11000},{n:'RTX 4050', s:8500},\n    {n:'RTX 3090 Ti', s:21500},{n:'RTX 3090', s:19800},\n    {n:'RTX 3080 Ti', s:19500},{n:'RTX 3080 12GB', s:18200},{n:'RTX 3080', s:17500},\n    {n:'RTX 3070 Ti', s:14800},{n:'RTX 3070', s:13700},\n    {n:'RTX 3060 Ti', s:11800},{n:'RTX 3060 12GB', s:8865},{n:'RTX 3060', s:8865},\n    {n:'RTX 3050 6GB', s:6278},{n:'RTX 3050', s:6278},\n    {n:'RTX 2080 Ti', s:14000},{n:'RTX 2080 Super', s:12200},{n:'RTX 2080', s:11118},\n    {n:'RTX 2070 Super', s:10200},{n:'RTX 2070', s:9500},\n    {n:'RTX 2060 Super', s:8800},{n:'RTX 2060 12GB', s:8600},{n:'RTX 2060', s:7900},\n    {n:'TITAN RTX', s:13200},{n:'TITAN V', s:10500},{n:'TITAN Xp', s:8800},{n:'TITAN X (Pascal)', s:8200},\n    {n:'GTX 1080 Ti', s:9500},{n:'GTX 1080', s:7600},{n:'GTX 1070 Ti', s:6800},\n    {n:'GTX 1070', s:6000},{n:'GTX 1660 Super', s:5800},{n:'GTX 1660 Ti', s:5700},\n    {n:'GTX 1660', s:5200},{n:'GTX 1650 Super', s:4600},{n:'GTX 1650', s:3500},\n    {n:'GTX 1060 6GB', s:4100},{n:'GTX 1060 3GB', s:3500},{n:'GTX 1050 Ti', s:2500},\n    {n:'GTX 1050', s:1900},{n:'GTX 970', s:3200},{n:'GTX 960', s:2000},\n    {n:'RX 7900 XTX', s:26500},{n:'RX 7900 XT', s:23500},{n:'RX 7900 GRE', s:19500},\n    {n:'RX 7800 XT', s:17800},{n:'RX 7700 XT', s:15500},{n:'RX 7600 XT', s:11500},\n    {n:'RX 7600', s:10836},{n:'RX 6950 XT', s:21000},\n    {n:'RX 6900 XT', s:20200},{n:'RX 6800 XT', s:18200},{n:'RX 6800', s:16500},\n    {n:'RX 6750 XT', s:12500},{n:'RX 6700 XT', s:11500},{n:'RX 6700', s:10000},\n    {n:'RX 6650 XT', s:10000},{n:'RX 6600 XT', s:9400},{n:'RX 6600', s:8400},\n    {n:'RX 6500 XT', s:4500},{n:'RX 5700 XT', s:9000},{n:'RX 5700', s:8200},\n    {n:'RX 5600 XT', s:7500},{n:'RX 5500 XT', s:4500},\n    {n:'RX 580 8GB', s:3700},{n:'RX 580', s:3700},{n:'RX 570', s:3200},{n:'RX 480', s:3600},\n    {n:'Intel Arc A770', s:10000},{n:'Intel Arc A750', s:8500},{n:'Intel Arc A580', s:6500},\n    {n:'Intel Arc A380', s:3000}\n  ].sort(function(a,b){ return b.s - a.s; });\n\n  var CPU_LIST = [\n    {n:'Ryzen 9 9950X', s:95},{n:'Ryzen 9 9900X', s:90},{n:'Ryzen 9 7950X', s:92},\n    {n:'Ryzen 9 7900X', s:88},{n:'Ryzen 9 5950X', s:82},{n:'Ryzen 9 5900X', s:80},\n    {n:'Ryzen 9 3900X', s:65},{n:'Ryzen 7 9800X3D', s:98},{n:'Ryzen 7 9700X', s:85},\n    {n:'Ryzen 7 7800X3D', s:95},{n:'Ryzen 7 7700X', s:82},{n:'Ryzen 7 7700', s:80},\n    {n:'Ryzen 7 5800X3D', s:88},{n:'Ryzen 7 5800X', s:75},{n:'Ryzen 7 5700X3D', s:85},\n    {n:'Ryzen 7 5700X', s:72},{n:'Ryzen 7 5700G', s:65},{n:'Ryzen 7 3700X', s:58},\n    {n:'Ryzen 7 3800X', s:60},{n:'Ryzen 7 2700X', s:45},{n:'Ryzen 7 1700X', s:35},\n    {n:'Ryzen 5 9600X', s:80},{n:'Ryzen 5 7600X', s:78},{n:'Ryzen 5 7600', s:76},\n    {n:'Ryzen 5 7500F', s:74},{n:'Ryzen 5 5600X', s:70},{n:'Ryzen 5 5600', s:68},\n    {n:'Ryzen 5 5600G', s:60},{n:'Ryzen 5 5500', s:62},{n:'Ryzen 5 3600', s:52},\n    {n:'Ryzen 5 3600X', s:54},{n:'Ryzen 5 2600', s:42},{n:'Ryzen 5 1600', s:30},\n    {n:'Ryzen 3 3300X', s:48},{n:'Ryzen 3 3100', s:40},\n    {n:'Core Ultra 9 285K', s:88},{n:'Core Ultra 7 265K', s:82},{n:'Core Ultra 5 245K', s:78},\n    {n:'Core i9-14900KS', s:94},{n:'Core i9-14900K', s:92},{n:'Core i9-14900KF', s:92},\n    {n:'Core i9-14900', s:86},{n:'Core i9-14900F', s:86},\n    {n:'Core i9-13900KS', s:92},{n:'Core i9-13900K', s:90},{n:'Core i9-13900KF', s:90},\n    {n:'Core i9-13900', s:84},{n:'Core i9-13900F', s:84},\n    {n:'Core i9-12900KS', s:86},{n:'Core i9-12900K', s:85},{n:'Core i9-12900KF', s:85},\n    {n:'Core i9-12900', s:78},{n:'Core i9-12900F', s:78},\n    {n:'Core i9-11900K', s:68},{n:'Core i9-10900K', s:62},{n:'Core i9-9900K', s:55},\n    {n:'Core i7-14700K', s:88},{n:'Core i7-14700KF', s:88},\n    {n:'Core i7-14700', s:82},{n:'Core i7-14700F', s:82},\n    {n:'Core i7-13700K', s:85},{n:'Core i7-13700KF', s:85},\n    {n:'Core i7-13700', s:78},{n:'Core i7-13700F', s:78},\n    {n:'Core i7-12700K', s:80},{n:'Core i7-12700KF', s:80},\n    {n:'Core i7-12700', s:78},{n:'Core i7-12700F', s:76},\n    {n:'Core i7-11700K', s:68},{n:'Core i7-11700', s:64},{n:'Core i7-11700F', s:64},\n    {n:'Core i7-10700K', s:62},{n:'Core i7-10700', s:58},{n:'Core i7-10700F', s:58},\n    {n:'Core i7-9700K', s:55},{n:'Core i7-9700', s:50},{n:'Core i7-9700F', s:50},\n    {n:'Core i7-8700K', s:50},{n:'Core i7-8700', s:46},\n    {n:'Core i7-7700K', s:38},{n:'Core i7-7700', s:35},\n    {n:'Core i7-6700K', s:32},{n:'Core i7-6700', s:30},\n    {n:'Core i5-14600K', s:82},{n:'Core i5-14600KF', s:82},\n    {n:'Core i5-14600', s:74},{n:'Core i5-14500', s:72},{n:'Core i5-14400', s:70},\n    {n:'Core i5-14400F', s:70},\n    {n:'Core i5-13600K', s:80},{n:'Core i5-13600KF', s:80},\n    {n:'Core i5-13500', s:72},{n:'Core i5-13400', s:68},{n:'Core i5-13400F', s:68},\n    {n:'Core i5-12600K', s:75},{n:'Core i5-12600KF', s:75},\n    {n:'Core i5-12500', s:68},{n:'Core i5-12400', s:68},{n:'Core i5-12400F', s:66},\n    {n:'Core i5-11600K', s:60},{n:'Core i5-11400', s:58},{n:'Core i5-11400F', s:56},\n    {n:'Core i5-10600K', s:52},{n:'Core i5-10400', s:50},{n:'Core i5-10400F', s:48},\n    {n:'Core i5-9600K', s:42},{n:'Core i5-9400F', s:38},\n    {n:'Core i5-8600K', s:40},{n:'Core i5-8400', s:36},\n    {n:'Core i3-14100', s:55},{n:'Core i3-14100F', s:55},\n    {n:'Core i3-13100', s:52},{n:'Core i3-13100F', s:52},\n    {n:'Core i3-12100', s:52},{n:'Core i3-12100F', s:50},\n    {n:'Core i3-10100', s:38},{n:'Core i3-10100F', s:36}\n  ].sort(function(a,b){ return b.s - a.s; });\n\n  /* Game requirements (Time Spy scores needed) */\n  var GAME_REQS = {\n    fortnite:   { FHD:6000, WQHD:10000, '4K':18000, n:'Fortnite' },\n    apex:       { FHD:7000, WQHD:12000, '4K':20000, n:'Apex Legends' },\n    valorant:   { FHD:3000, WQHD:5000,  '4K':10000, n:'VALORANT' },\n    minecraft:  { FHD:3000, WQHD:6000,  '4K':12000, n:'Minecraft' },\n    genshin:    { FHD:5000, WQHD:9000,  '4K':16000, n:'\u539F\u795E' },\n    starrail:   { FHD:6000, WQHD:10000, '4K':18000, n:'\u5D29\u58CA\uFF1A\u30B9\u30BF\u30FC\u30EC\u30A4\u30EB' },\n    zzz:        { FHD:6000, WQHD:10000, '4K':18000, n:'\u30BC\u30F3\u30EC\u30B9\u30BE\u30FC\u30F3\u30BC\u30ED' },\n    wuwa:       { FHD:6000, WQHD:10000, '4K':18000, n:'\u9CF4\u6F6E' },\n    ff14:       { FHD:7000, WQHD:12000, '4K':20000, n:'FF14' },\n    ff16:       { FHD:9000, WQHD:15000, '4K':24000, n:'FF16' },\n    mhwilds:    { FHD:10000,WQHD:16000, '4K':24000, n:'\u30E2\u30F3\u30CF\u30F3\u30EF\u30A4\u30EB\u30BA' },\n    eldenring:  { FHD:8000, WQHD:14000, '4K':22000, n:'ELDEN RING' },\n    gtav:       { FHD:5000, WQHD:9000,  '4K':16000, n:'GTA V' },\n    gta6:       { FHD:12000,WQHD:20000, '4K':30000, n:'GTA VI' },\n    cod:        { FHD:7000, WQHD:12000, '4K':20000, n:'CoD: BO6' },\n    r6s:        { FHD:4000, WQHD:7000,  '4K':14000, n:'R6S' },\n    sf6:        { FHD:7000, WQHD:12000, '4K':20000, n:'\u30B9\u30C8\u30EA\u30FC\u30C8\u30D5\u30A1\u30A4\u30BF\u30FC6' },\n    tekken8:    { FHD:8000, WQHD:13000, '4K':22000, n:'\u9244\u62F38' },\n    lol:        { FHD:2000, WQHD:4000,  '4K':8000,  n:'LoL' },\n    overwatch:  { FHD:5000, WQHD:9000,  '4K':16000, n:'\u30AA\u30FC\u30D0\u30FC\u30A6\u30A9\u30C3\u30C12' },\n    pubg:       { FHD:6000, WQHD:10000, '4K':18000, n:'PUBG' },\n    rust:       { FHD:7000, WQHD:12000, '4K':20000, n:'Rust' },\n    palworld:   { FHD:7000, WQHD:12000, '4K':20000, n:'\u30D1\u30EB\u30EF\u30FC\u30EB\u30C9' },\n    ark:        { FHD:8000, WQHD:14000, '4K':22000, n:'ARK: SA' },\n    cyberpunk:  { FHD:9000, WQHD:16000, '4K':26000, n:'\u30B5\u30A4\u30D0\u30FC\u30D1\u30F3\u30AF2077' },\n    hogwarts:   { FHD:8000, WQHD:14000, '4K':22000, n:'\u30DB\u30B0\u30EF\u30FC\u30C4\u30EC\u30AC\u30B7\u30FC' },\n    deadspace:  { FHD:7000, WQHD:12000, '4K':20000, n:'Dead Space' },\n    tarkov:     { FHD:7000, WQHD:12000, '4K':20000, n:'\u30BF\u30EB\u30B3\u30D5' },\n    dbd:        { FHD:4000, WQHD:7000,  '4K':14000, n:'Dead by Daylight' },\n    roblox:     { FHD:2000, WQHD:4000,  '4K':8000,  n:'Roblox' },\n    amongus:    { FHD:1000, WQHD:2000,  '4K':4000,  n:'Among Us' },\n    forza6:     { FHD:11690,WQHD:15650, '4K':22500, n:'Forza Horizon 6' },\n    meccha_chameleon: { FHD:3000, WQHD:4500, '4K':7000, n:'\u3081\u3063\u3061\u3083\u30AB\u30E1\u30EC\u30AA\u30F3' },\n    beast_reincarnation: { FHD:11690, WQHD:15650, '4K':22500, n:'Beast of Reincarnation' },\n    marvel_tokon: { FHD:8800, WQHD:10500, '4K':13900, n:'MARVEL T\u014CKON: Fighting Souls' }\n  };\n\n  var scSel = { gpu:null, gpuScore:0, cpu:null, cpuScore:0, mem:0, games:[], res:null };\n\n  /* --- Searchable dropdown --- */\n  function setupSearch(inputId, dropId, selId, list, type) {\n    var input = $(inputId), drop = $(dropId), selEl = $(selId);\n\n    function renderDrop(filter) {\n      var f = (filter||'').toLowerCase();\n      var items = list.filter(function(it){ return !f || it.n.toLowerCase().indexOf(f) >= 0; }).slice(0, 20);\n      drop.innerHTML = items.map(function(it){\n        return '<div class=\"wz-sc-drop-item\" data-n=\"'+it.n+'\" data-s=\"'+it.s+'\">'\n          + it.n + '<span class=\"wz-sc-drop-score\">' + it.s.toLocaleString() + ' pt</span></div>';\n      }).join('');\n      drop.classList.toggle('open', items.length > 0 && document.activeElement === input);\n    }\n\n    input.addEventListener('focus', function(){ renderDrop(input.value); });\n    input.addEventListener('input', function(){ renderDrop(input.value); });\n    input.addEventListener('blur', function(){ setTimeout(function(){ drop.classList.remove('open'); }, 200); });\n\n    drop.addEventListener('click', function(e){\n      var item = e.target.closest('.wz-sc-drop-item'); if (!item) return;\n      var name = item.dataset.n, score = parseInt(item.dataset.s);\n      if (type === 'gpu') { scSel.gpu = name; scSel.gpuScore = score; }\n      else { scSel.cpu = name; scSel.cpuScore = score; }\n      input.value = '';\n      drop.classList.remove('open');\n      selEl.innerHTML = '<span class=\"wz-sc-sel-chip\">' + name + ' <span class=\"wz-sc-sel-pts\">' + score.toLocaleString() + ' pt</span></span>';\n      checkScN1();\n    });\n  }\n\n  setupSearch('wzScGpuSearch', 'wzScGpuDrop', 'wzScGpuSelected', GPU_LIST, 'gpu');\n  setupSearch('wzScCpuSearch', 'wzScCpuDrop', 'wzScCpuSelected', CPU_LIST, 'cpu');\n\n  /* --- Auto-detect GPU via WebGL --- */\n  (function(){\n    try {\n      var canvas = document.createElement('canvas');\n      var gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');\n      if (!gl) return;\n      var ext = gl.getExtension('WEBGL_debug_renderer_info');\n      if (!ext) return;\n      var renderer = gl.getParameter(ext.UNMASKED_RENDERER_WEBGL) || '';\n      if (!renderer) return;\n\n      /* Clean up renderer string: \"ANGLE (NVIDIA, NVIDIA GeForce RTX 3060 Direct3D11...)\" \u2192 \"RTX 3060\" */\n      var clean = renderer\n        .replace(/ANGLE\\s*\\(/i, '')\n        .replace(/Direct3D.*$/i, '')\n        .replace(/OpenGL.*$/i, '')\n        .replace(/Vulkan.*$/i, '')\n        .replace(/,\\s*$/, '')\n        .replace(/\\)$/, '')\n        .trim();\n\n      /* Try to match against GPU_LIST */\n      var matched = null;\n      var cleanLower = clean.toLowerCase();\n      /* Sort by name length desc for best match */\n      var sorted = GPU_LIST.slice().sort(function(a,b){ return b.n.length - a.n.length; });\n      for (var i = 0; i < sorted.length; i++) {\n        if (cleanLower.indexOf(sorted[i].n.toLowerCase()) >= 0) {\n          matched = sorted[i]; break;\n        }\n      }\n      /* Also try without spaces */\n      if (!matched) {\n        var nosp = cleanLower.replace(/\\s/g, '');\n        for (var i = 0; i < sorted.length; i++) {\n          if (nosp.indexOf(sorted[i].n.toLowerCase().replace(/\\s/g, '')) >= 0) {\n            matched = sorted[i]; break;\n          }\n        }\n      }\n\n      if (matched) {\n        scSel.gpu = matched.n; scSel.gpuScore = matched.s;\n        $('wzScGpuSearch').value = '';\n        $('wzScGpuSelected').innerHTML = '<span class=\"wz-sc-sel-chip\">\uD83D\uDD0D ' + matched.n + ' (\u81EA\u52D5\u691C\u51FA) <span class=\"wz-sc-sel-pts\">' + matched.s.toLocaleString() + ' pt</span></span>';\n        checkScN1();\n      } else if (clean.length > 3) {\n        /* Show detected string as hint */\n        $('wzScGpuSearch').placeholder = '\u691C\u51FA: ' + clean.substring(0, 40) + '\uFF08\u30EA\u30B9\u30C8\u304B\u3089\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\uFF09';\n      }\n    } catch(e) { /* WebGL not available */ }\n  })();\n\n  /* --- Smart CPU detection --- */\n  (function(){\n    var cores = navigator.hardwareConcurrency || 0;\n    var isIntelPlatform = false;\n    var isAmdPlatform = false;\n\n    /* Check WebGL for GPU vendor \u2192 platform hint */\n    try {\n      var c = document.createElement('canvas');\n      var g = c.getContext('webgl') || c.getContext('experimental-webgl');\n      if (g) {\n        var ext = g.getExtension('WEBGL_debug_renderer_info');\n        if (ext) {\n          var vendor = (g.getParameter(ext.UNMASKED_VENDOR_WEBGL) || '').toLowerCase();\n          var renderer = (g.getParameter(ext.UNMASKED_RENDERER_WEBGL) || '').toLowerCase();\n          /* If using Intel integrated GPU, user likely has Intel CPU */\n          if (vendor.indexOf('intel') >= 0 || renderer.indexOf('intel') >= 0) {\n            if (renderer.indexOf('uhd') >= 0 || renderer.indexOf('iris') >= 0 || renderer.indexOf('hd graphics') >= 0) {\n              isIntelPlatform = true;\n            }\n          }\n          /* AMD integrated (Vega, RDNA iGPU) = AMD CPU */\n          if (renderer.indexOf('vega') >= 0 || renderer.indexOf('radeon(tm) graphics') >= 0 || renderer.indexOf('radeon graphics') >= 0) {\n            isAmdPlatform = true;\n          }\n        }\n      }\n    } catch(e){}\n\n    /* Thread count \u2192 likely CPU mapping */\n    var THREAD_MAP = {\n      4:  [{n:'Core i3-10100',p:'intel'},{n:'Core i3-10100F',p:'intel'},{n:'Ryzen 3 3100',p:'amd'},{n:'Core i7-7700K',p:'intel'},{n:'Core i7-7700',p:'intel'},{n:'Core i7-6700K',p:'intel'}],\n      6:  [{n:'Core i5-9400F',p:'intel'},{n:'Core i5-9600K',p:'intel'},{n:'Ryzen 5 1600',p:'amd'}],\n      8:  [{n:'Core i7-9700K',p:'intel'},{n:'Core i7-9700',p:'intel'},{n:'Core i3-12100',p:'intel'},{n:'Core i3-12100F',p:'intel'},{n:'Core i3-13100',p:'intel'},{n:'Core i3-14100',p:'intel'},{n:'Ryzen 7 1700X',p:'amd'},{n:'Ryzen 3 3300X',p:'amd'}],\n      12: [{n:'Ryzen 5 5600X',p:'amd'},{n:'Ryzen 5 5600',p:'amd'},{n:'Ryzen 5 5500',p:'amd'},{n:'Ryzen 5 3600',p:'amd'},{n:'Ryzen 5 7600X',p:'amd'},{n:'Ryzen 5 7600',p:'amd'},{n:'Ryzen 5 9600X',p:'amd'},{n:'Core i5-12400',p:'intel'},{n:'Core i5-12400F',p:'intel'},{n:'Core i5-11400',p:'intel'}],\n      16: [{n:'Ryzen 7 5700X',p:'amd'},{n:'Ryzen 7 5800X',p:'amd'},{n:'Ryzen 7 5800X3D',p:'amd'},{n:'Ryzen 7 7700X',p:'amd'},{n:'Ryzen 7 7700',p:'amd'},{n:'Ryzen 7 7800X3D',p:'amd'},{n:'Ryzen 7 9800X3D',p:'amd'},{n:'Ryzen 7 9700X',p:'amd'},{n:'Ryzen 7 3700X',p:'amd'},{n:'Core i7-11700K',p:'intel'},{n:'Core i7-11700',p:'intel'},{n:'Core i7-10700K',p:'intel'},{n:'Core i9-9900K',p:'intel'},{n:'Core i7-8700K',p:'intel'}],\n      20: [{n:'Core i7-12700K',p:'intel'},{n:'Core i7-12700',p:'intel'},{n:'Core i7-12700F',p:'intel'},{n:'Core i5-13600K',p:'intel'},{n:'Core i5-14600K',p:'intel'},{n:'Core i7-13700',p:'intel'},{n:'Core i7-14700',p:'intel'},{n:'Core i7-14700F',p:'intel'}],\n      24: [{n:'Ryzen 9 5900X',p:'amd'},{n:'Ryzen 9 7900X',p:'amd'},{n:'Core i7-13700K',p:'intel'},{n:'Core i7-14700K',p:'intel'},{n:'Core i9-12900K',p:'intel'},{n:'Core i9-13900',p:'intel'},{n:'Core i9-14900',p:'intel'}],\n      28: [{n:'Core i5-14500',p:'intel'}],\n      32: [{n:'Ryzen 9 5950X',p:'amd'},{n:'Ryzen 9 7950X',p:'amd'},{n:'Ryzen 9 9950X',p:'amd'},{n:'Core i9-13900K',p:'intel'},{n:'Core i9-14900K',p:'intel'}]\n    };\n\n    if (!cores) return;\n\n    /* Find candidates */\n    var candidates = THREAD_MAP[cores] || [];\n    /* Filter by platform if detected */\n    if (isIntelPlatform) {\n      candidates = candidates.filter(function(c){ return c.p === 'intel'; });\n    } else if (isAmdPlatform) {\n      candidates = candidates.filter(function(c){ return c.p === 'amd'; });\n    }\n\n    if (candidates.length === 0) {\n      $('wzScCpuSearch').placeholder = 'CPU\u3092\u691C\u7D22\uFF08' + cores + '\u30B9\u30EC\u30C3\u30C9\u691C\u51FA\uFF09';\n      return;\n    }\n\n    /* If only 1-2 candidates, auto-suggest first one */\n    if (candidates.length <= 2) {\n      /* Auto-select first match */\n      var match = null;\n      for (var i = 0; i < CPU_LIST.length; i++) {\n        if (CPU_LIST[i].n === candidates[0].n) { match = CPU_LIST[i]; break; }\n      }\n      if (match) {\n        scSel.cpu = match.n; scSel.cpuScore = match.s;\n        $('wzScCpuSearch').value = '';\n        $('wzScCpuSelected').innerHTML = '<span class=\"wz-sc-sel-chip\">\uD83D\uDD0D ' + match.n + ' (\u81EA\u52D5\u691C\u51FA) <span class=\"wz-sc-sel-pts\">' + match.s + ' pt</span></span>';\n        checkScN1();\n        return;\n      }\n    }\n\n    /* Multiple candidates: show as suggestions in placeholder + pre-populate dropdown */\n    var platformLabel = isIntelPlatform ? 'Intel' : (isAmdPlatform ? 'AMD' : '');\n    $('wzScCpuSearch').placeholder = cores + '\u30B9\u30EC\u30C3\u30C9' + (platformLabel ? '/' + platformLabel : '') + '\u691C\u51FA \u2014 \u30BF\u30C3\u30D7\u3067\u5019\u88DC\u8868\u793A';\n\n    /* Override the dropdown to show candidates first */\n    var cpuDrop = $('wzScCpuDrop');\n    var cpuInput = $('wzScCpuSearch');\n    cpuInput.addEventListener('focus', function onFirstFocus(){\n      if (cpuInput.value === '' && !scSel.cpu) {\n        /* Show candidates at top */\n        var html = '<div style=\"padding:6px 14px;font-size:11px;font-weight:700;color:#C026D3;background:#f8fafc;border-bottom:1px solid #e2e8f0\">\uD83D\uDD0D ' + cores + '\u30B9\u30EC\u30C3\u30C9\u306ECPU\u5019\u88DC</div>';\n        candidates.forEach(function(c){\n          var cpuData = CPU_LIST.find(function(x){ return x.n === c.n; });\n          if (cpuData) {\n            html += '<div class=\"wz-sc-drop-item\" data-n=\"' + cpuData.n + '\" data-s=\"' + cpuData.s + '\" style=\"background:rgba(255,31,117,.02)\">' + cpuData.n + '<span class=\"wz-sc-drop-score\">' + cpuData.s + ' pt</span></div>';\n          }\n        });\n        html += '<div style=\"padding:6px 14px;font-size:11px;color:#94a3b8;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0\">\u305D\u306E\u4ED6\u306ECPU</div>';\n        /* Add remaining CPUs */\n        var shown = candidates.map(function(c){ return c.n; });\n        CPU_LIST.filter(function(x){ return shown.indexOf(x.n) < 0; }).slice(0,15).forEach(function(x){\n          html += '<div class=\"wz-sc-drop-item\" data-n=\"' + x.n + '\" data-s=\"' + x.s + '\">' + x.n + '<span class=\"wz-sc-drop-score\">' + x.s + ' pt</span></div>';\n        });\n        cpuDrop.innerHTML = html;\n        cpuDrop.classList.add('open');\n      }\n    }, {once: false});\n  })();\n\n  /* --- Memory buttons --- */\n  root.querySelectorAll('.wz-sc-mem').forEach(function(btn){\n    btn.addEventListener('click', function(){\n      root.querySelectorAll('.wz-sc-mem').forEach(function(b){ b.classList.remove('on'); });\n      btn.classList.add('on');\n      scSel.mem = parseInt(btn.dataset.mem);\n      checkScN1();\n    });\n  });\n\n  function checkScN1() {\n    $('wzScN1').disabled = !(scSel.gpu && scSel.cpu && scSel.mem > 0);\n  }\n\n  /* --- Game grid (score tab) --- */\n  var SC_GAMES = [\n    {k:'fortnite',n:'Fortnite'},{k:'apex',n:'Apex Legends'},{k:'valorant',n:'VALORANT'},\n    {k:'cod',n:'CoD: BO6'},{k:'overwatch',n:'OW2'},{k:'pubg',n:'PUBG'},\n    {k:'genshin',n:'\u539F\u795E'},{k:'starrail',n:'\u5D29\u30B9\u30BF'},{k:'zzz',n:'\u30BC\u30F3\u30BC\u30ED'},\n    {k:'wuwa',n:'\u9CF4\u6F6E'},{k:'mhwilds',n:'\u30E2\u30F3\u30CF\u30F3\u30EF\u30A4\u30EB\u30BA'},{k:'eldenring',n:'ELDEN RING'},\n    {k:'ff14',n:'FF14'},{k:'ff16',n:'FF16'},{k:'cyberpunk',n:'\u30B5\u30A4\u30D0\u30FC\u30D1\u30F3\u30AF'},\n    {k:'palworld',n:'\u30D1\u30EB\u30EF\u30FC\u30EB\u30C9'},{k:'tarkov',n:'\u30BF\u30EB\u30B3\u30D5'},{k:'rust',n:'Rust'},\n    {k:'tekken8',n:'\u9244\u62F38'},{k:'sf6',n:'\u30B9\u30C86'},{k:'lol',n:'LoL'},\n    {k:'roblox',n:'Roblox'},{k:'minecraft',n:'\u30DE\u30A4\u30AF\u30E9'},{k:'dbd',n:'DbD'},\n    {k:'hogwarts',n:'\u30DB\u30B0\u30EF\u30FC\u30C4'},{k:'ark',n:'ARK: SA'},{k:'gta6',n:'GTA VI'},\n    {k:'gtav',n:'GTA V'},{k:'r6s',n:'R6S'},{k:'amongus',n:'Among Us'},\n    {k:'forza6',n:'Forza Horizon 6'},{k:'meccha_chameleon',n:'\u3081\u3063\u3061\u3083\u30AB\u30E1\u30EC\u30AA\u30F3'},\n    {k:'beast_reincarnation',n:'Beast of Reincarnation'},\n    {k:'marvel_tokon',n:'MARVEL T\u014CKON: Fighting Souls'}\n  ];\n  var scGGrid = $('wzScGames');\n  scGGrid.innerHTML = SC_GAMES.map(function(g){ return '<button class=\"wz-tile\" data-sgk=\"'+g.k+'\">'+g.n+'</button>'; }).join('');\n  scGGrid.addEventListener('click', function(e){\n    var t = e.target.closest('[data-sgk]'); if (!t) return;\n    var k = t.dataset.sgk, i = scSel.games.indexOf(k);\n    if (i >= 0) scSel.games.splice(i, 1); else scSel.games.push(k);\n    scGGrid.querySelectorAll('.wz-tile').forEach(function(t2){ t2.classList.toggle('on', scSel.games.indexOf(t2.dataset.sgk) >= 0); });\n    checkScDiag();\n  });\n\n  /* --- Resolution (score tab) --- */\n  root.querySelectorAll('[data-field=\"sc_res\"] .wz-opt').forEach(function(opt){\n    opt.addEventListener('click', function(){\n      root.querySelectorAll('[data-field=\"sc_res\"] .wz-opt').forEach(function(o){ o.classList.remove('on'); });\n      opt.classList.add('on');\n      scSel.res = opt.dataset.v;\n      checkScDiag();\n    });\n  });\n\n  function checkScDiag() {\n    $('wzScDiag').disabled = !(scSel.games.length > 0 && scSel.res);\n  }\n\n  /* --- Step navigation --- */\n  function scGo(n) {\n    currentScStep = n;\n    root.querySelectorAll('.wz-sc').forEach(function(s){ s.classList.remove('active'); });\n    var target = root.querySelector('[data-sc=\"'+n+'\"]');\n    if (target) target.classList.add('active');\n    var winEl = document.getElementById('wzWin');\n    if (winEl) {\n      var rect = winEl.getBoundingClientRect();\n      if (rect.top < -10 || rect.top > window.innerHeight * 0.4) {\n        window.scrollTo({top: rect.top + window.scrollY - 20, behavior:'smooth'});\n      }\n    }\n  }\n\n  $('wzScStart').addEventListener('click', function(){ scGo(1); });\n  $('wzScBack1').addEventListener('click', function(){ scGo(0); });\n  $('wzScN1').addEventListener('click', function(){ scGo(2); });\n  $('wzScBack2').addEventListener('click', function(){ scGo(1); });\n  $('wzScToDiag').addEventListener('click', function(){\n    /* Switch to diag tab */\n    root.querySelectorAll('.wz-tab').forEach(function(t){ t.classList.remove('active'); });\n    root.querySelector('[data-tab=\"diag\"]').classList.add('active');\n    scorePanel.style.display = 'none';\n    diagPanel.style.display = '';\n  });\n\n  $('wzScRetry').addEventListener('click', function(){\n    scSel.games = []; scSel.res = null;\n    scGGrid.querySelectorAll('.wz-tile').forEach(function(t){ t.classList.remove('on'); });\n    root.querySelectorAll('[data-field=\"sc_res\"] .wz-opt').forEach(function(o){ o.classList.remove('on'); });\n    $('wzScDiag').disabled = true;\n    scGo(1);\n  });\n\n  /* --- Scoring logic --- */\n  $('wzScDiag').addEventListener('click', function(){ runScore(); });\n\n  function runScore() {\n    var gpuS = scSel.gpuScore;\n    var cpuS = scSel.cpuScore;\n    var memS = scSel.mem;\n\n    /* Overall score: GPU 60%, CPU 25%, RAM 15% */\n    var gpuNorm = Math.min(gpuS / 33000 * 100, 100);\n    var cpuNorm = cpuS; /* already 0-100 */\n    var memNorm = memS >= 32 ? 100 : (memS >= 16 ? 75 : (memS >= 8 ? 40 : 20));\n    var total = Math.round(gpuNorm * 0.6 + cpuNorm * 0.25 + memNorm * 0.15);\n\n    var grade, gradeCls;\n    if (total >= 85) { grade = 'S'; gradeCls = 'wz-sc-grade-s'; }\n    else if (total >= 70) { grade = 'A'; gradeCls = 'wz-sc-grade-a'; }\n    else if (total >= 50) { grade = 'B'; gradeCls = 'wz-sc-grade-b'; }\n    else if (total >= 30) { grade = 'C'; gradeCls = 'wz-sc-grade-c'; }\n    else { grade = 'D'; gradeCls = 'wz-sc-grade-d'; }\n\n    /* Game-by-game scoring */\n    var gameHtml = '';\n    scSel.games.forEach(function(gk){\n      var req = GAME_REQS[gk]; if (!req) return;\n      var needed = req[scSel.res] || req.FHD;\n      var pct = Math.min(Math.round(gpuS / needed * 100), 150);\n      var barW = Math.min(pct, 100);\n      var verdict, vCls, barCls;\n      if (pct >= 120) { verdict = '\u5FEB\u9069'; vCls = 'v-great'; barCls = 'bar-great'; }\n      else if (pct >= 80) { verdict = 'OK'; vCls = 'v-good'; barCls = 'bar-good'; }\n      else if (pct >= 50) { verdict = '\u30AE\u30EA\u30AE\u30EA'; vCls = 'v-ok'; barCls = 'bar-ok'; }\n      else { verdict = '\u53B3\u3057\u3044'; vCls = 'v-bad'; barCls = 'bar-bad'; }\n\n      gameHtml += '<div class=\"wz-sc-game-row\">'\n        + '<span class=\"wz-sc-game-name\">' + req.n + '</span>'\n        + '<div style=\"flex:1!important;height:20px!important;background:#e2e8f0!important;border-radius:10px!important;overflow:hidden!important;position:relative!important;display:block!important\"><div style=\"height:20px!important;border-radius:10px!important;position:absolute!important;left:0!important;top:0!important;display:block!important;width:' + barW + '%!important;transition:width .8s ease!important;background:' + ({great:'linear-gradient(90deg,#22c55e,#16a34a)',good:'linear-gradient(90deg,#C026D3,#22c55e)',ok:'linear-gradient(90deg,#f59e0b,#eab308)',bad:'linear-gradient(90deg,#ef4444,#f59e0b)'}[barCls.replace('bar-','')]) + '!important\"></div></div>'\n        + '<span class=\"wz-sc-game-verdict ' + vCls + '\">' + verdict + '</span>'\n        + '</div>';\n    });\n\n    /* Find recommended TITAN GPU */\n    var TITAN_GPUS = [\n      {n:'RTX 5050', s:10259, p:144000},\n      {n:'RTX 5060', s:13900, p:153000},\n      {n:'RX 9060 XT', s:16200, p:148000},\n      {n:'RTX 5060 Ti', s:15200, p:161000},\n      {n:'RX 9070 GRE', s:21407, p:209000, u:'/collections/rx9070gre'},\n      {n:'RTX 5070', s:22500, p:263000},\n      {n:'RX 9070', s:26300, p:220000},\n      {n:'RTX 5070 Ti', s:27700, p:397000},\n      {n:'RX 9070 XT', s:29900, p:244000},\n      {n:'RTX 5080', s:33000, p:474000}\n    ];\n    /* Find a GPU that's at least 30% better */\n    var recGpu = null;\n    for (var i = 0; i < TITAN_GPUS.length; i++) {\n      if (TITAN_GPUS[i].s > gpuS * 1.3) { recGpu = TITAN_GPUS[i]; break; }\n    }\n    /* Don't recommend if user's GPU is already stronger than our best */\n    if (!recGpu) recGpu = null;\n\n    var resultHtml = '<div class=\"wz-sc-score-hero\">'\n      + '<div class=\"wz-sc-score-num\">' + total + '</div>'\n      + '<div class=\"wz-sc-score-max\">/ 100</div>'\n      + '<div class=\"wz-sc-score-grade ' + gradeCls + '\">\u30E9\u30F3\u30AF ' + grade + '</div>'\n      + '</div>'\n      + '<div class=\"wz-sc-breakdown\">'\n      + '<div class=\"wz-sc-bk-item\"><span class=\"wz-sc-bk-label\">GPU</span><span class=\"wz-sc-bk-val\">' + Math.round(gpuNorm) + '</span><div style=\"width:100%!important;height:10px!important;background:#e2e8f0!important;border-radius:5px!important;overflow:hidden!important;margin:8px 0 6px!important;display:block!important\"><div style=\"width:' + Math.round(gpuNorm) + '%!important;height:10px!important;background:linear-gradient(90deg,#C026D3,#6366f1)!important;border-radius:5px!important;display:block!important;transition:width .8s ease!important\"></div></div><span class=\"wz-sc-bk-name\">' + scSel.gpu + '</span></div>'\n      + '<div class=\"wz-sc-bk-item\"><span class=\"wz-sc-bk-label\">CPU</span><span class=\"wz-sc-bk-val\">' + cpuS + '</span><div style=\"width:100%!important;height:10px!important;background:#e2e8f0!important;border-radius:5px!important;overflow:hidden!important;margin:8px 0 6px!important;display:block!important\"><div style=\"width:' + cpuS + '%!important;height:10px!important;background:linear-gradient(90deg,#059669,#34d399)!important;border-radius:5px!important;display:block!important;transition:width .8s ease!important\"></div></div><span class=\"wz-sc-bk-name\">' + scSel.cpu + '</span></div>'\n      + '<div class=\"wz-sc-bk-item\"><span class=\"wz-sc-bk-label\">RAM</span><span class=\"wz-sc-bk-val\">' + memNorm + '</span><div style=\"width:100%!important;height:10px!important;background:#e2e8f0!important;border-radius:5px!important;overflow:hidden!important;margin:8px 0 6px!important;display:block!important\"><div style=\"width:' + memNorm + '%!important;height:10px!important;background:linear-gradient(90deg,#d97706,#fbbf24)!important;border-radius:5px!important;display:block!important;transition:width .8s ease!important\"></div></div><span class=\"wz-sc-bk-name\">' + memS + 'GB</span></div>'\n      + '</div>';\n\n    if (gameHtml) {\n      resultHtml += '<div class=\"wz-sc-game-scores\"><h3>\uD83C\uDFAE \u30B2\u30FC\u30E0\u5225 \u5FEB\u9069\u5EA6\uFF08' + (scSel.res === 'FHD' ? '\u30D5\u30EBHD' : scSel.res) + '\uFF09</h3>' + gameHtml + '</div>';\n    }\n\n    $('wzScResult').innerHTML = resultHtml;\n\n    /* Compare section */\n    var compareHtml = '';\n    if (!recGpu || recGpu.s <= gpuS) {\n      /* User's GPU is already top-tier */\n      compareHtml = '<h3>\uD83D\uDCAA \u3059\u3067\u306B\u30CF\u30A4\u30B9\u30DA\u30C3\u30AF\uFF01</h3>'\n        + '<div style=\"padding:20px;border:2px solid #22c55e;border-radius:12px;background:rgba(34,197,94,.04);text-align:center\">'\n        + '<div style=\"font-size:32px;margin-bottom:8px\">\uD83D\uDC51</div>'\n        + '<div style=\"font-size:16px;font-weight:800;color:#16a34a;margin-bottom:6px\">\u3042\u306A\u305F\u306EGPU\u306F\u5341\u5206\u9AD8\u6027\u80FD\u3067\u3059</div>'\n        + '<div style=\"font-size:13px;color:#475569\">' + scSel.gpu + '\uFF08' + gpuS.toLocaleString() + ' pt\uFF09\u306F\u5F53\u5E97\u306E\u6700\u4E0A\u4F4D\u69CB\u6210\u3068\u540C\u7B49\u4EE5\u4E0A\u306E\u6027\u80FD\u3067\u3059\u3002</div>'\n        + '</div>';\n    } else if (recGpu) {\n      var uplift = Math.round((recGpu.s / gpuS - 1) * 100);\n      var recScore = Math.min(Math.round(recGpu.s / 33000 * 100), 100);\n      var searchQ = encodeURIComponent('\"' + recGpu.n + '\"');\n      compareHtml = '<h3>\u26A1 TITAN Gaming\u306EPC\u306A\u3089</h3>'\n        + '<div class=\"wz-sc-vs\">'\n        + '<div class=\"wz-sc-vs-card wz-sc-vs-yours\">'\n        + '<div class=\"wz-sc-vs-label\">\u4ECA\u306EPC</div>'\n        + '<div class=\"wz-sc-vs-gpu\">' + scSel.gpu + '</div>'\n        + '<div class=\"wz-sc-vs-score\">' + gpuS.toLocaleString() + ' pt</div>'\n        + '</div>'\n        + '<div class=\"wz-sc-vs-arrow\">\u2192</div>'\n        + '<div class=\"wz-sc-vs-card wz-sc-vs-titan\">'\n        + '<div class=\"wz-sc-vs-label\">TITAN Gaming</div>'\n        + '<div class=\"wz-sc-vs-gpu\">' + recGpu.n + '</div>'\n        + '<div class=\"wz-sc-vs-score\">' + recGpu.s.toLocaleString() + ' pt</div>'\n        + '<div class=\"wz-sc-vs-diff\">+' + uplift + '% \u6027\u80FD\u30A2\u30C3\u30D7 / \u00A5' + recGpu.p.toLocaleString() + '\u301C</div>'\n        + '<a href=\"https://www.titan-pc.net' + (recGpu.u || '/search?q=' + searchQ) + '\" class=\"wz-sc-vs-btn\">\u3053\u306E\u69CB\u6210\u3092\u898B\u308B \u2192</a>'\n        + '</div>'\n        + '</div>';\n    }\n    $('wzScCompare').innerHTML = compareHtml;\n\n    /* Capture for sharing */\n    lastScoreResult = {\n      gpu: scSel.gpu, gpuScore: gpuS, cpu: scSel.cpu, cpuScore: scSel.cpuScore,\n      mem: memS, games: scSel.games.slice(), res: scSel.res,\n      total: total, grade: grade,\n      recGpu: (recGpu && recGpu.s > gpuS) ? recGpu.n : null,\n      recGpuPrice: (recGpu && recGpu.s > gpuS) ? recGpu.p : 0,\n      uplift: (recGpu && recGpu.s > gpuS) ? Math.round((recGpu.s / gpuS - 1) * 100) : 0,\n      ts: Date.now()\n    };\n    try { localStorage.setItem('wz_sc_prev', JSON.stringify(lastScoreResult)); } catch(e){}\n\n    scGo(3);\n\n    /* Show share section */\n    var scShare = $('wzScShareSection');\n    if (scShare) scShare.style.display = '';\n  }\n\n  /* --- Score tab SNS share --- */\n  var SC_SHARE_URL = 'https://www.titan-pc.net/pages/%E3%82%B2%E3%83%BC%E3%83%A0%E3%81%8B%E3%82%89%E9%81%B8%E3%81%B6';\n  var lastScoreResult = {};\n\n  function buildScShareText() {\n    var r = lastScoreResult;\n    var text = '\uD83D\uDCCA TITAN Gaming PC\u63A1\u70B9\u306E\u7D50\u679C\\n';\n    text += '\u81EA\u5206\u306EPC\uFF08' + (r.gpu || '?') + '\uFF09\u306E\u30B9\u30B3\u30A2: ' + (r.total || 0) + '\u70B9\uFF08\u30E9\u30F3\u30AF' + (r.grade || '?') + '\uFF09\\n';\n    if (r.recGpu && r.uplift > 0) {\n      text += '\u304A\u3059\u3059\u3081: ' + r.recGpu + ' \u306A\u3089+' + r.uplift + '%\u6027\u80FDUP\uFF01\\n';\n    } else if (r.total >= 85) {\n      text += '\u5341\u5206\u30CF\u30A4\u30B9\u30DA\u30C3\u30AF\uFF01\uD83D\uDCAA\\n';\n    }\n    text += '\\n#TITANGaming #PC\u63A1\u70B9';\n    return text;\n  }\n\n  /* Store result for sharing */\n  var origRunScore = runScore;\n  /* We'll capture data inside runScore instead - add to the end of runScore */\n\n  $('wzScShareX').addEventListener('click', function(){\n    var text = buildScShareText();\n    window.open('https://x.com/intent/tweet?text=' + encodeURIComponent(text) + '&url=' + encodeURIComponent(SC_SHARE_URL), '_blank');\n  });\n  $('wzScShareLine').addEventListener('click', function(){\n    var text = buildScShareText() + '\\n' + SC_SHARE_URL;\n    window.open('https://social-plugins.line.me/lineit/share?url=' + encodeURIComponent(SC_SHARE_URL) + '&text=' + encodeURIComponent(text), '_blank');\n  });\n  $('wzScShareCopy').addEventListener('click', function(){\n    var text = buildScShareText() + '\\n' + SC_SHARE_URL;\n    var btn = this;\n    if (navigator.clipboard && navigator.clipboard.writeText) {\n      navigator.clipboard.writeText(text).then(function(){\n        btn.classList.add('wz-copied'); btn.querySelector('span').textContent = '\u30B3\u30D4\u30FC\u6E08\u307F';\n        var toast = document.getElementById('wzToast');\n        if (toast) { toast.textContent = '\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F'; toast.classList.add('wz-toast-show'); setTimeout(function(){ toast.classList.remove('wz-toast-show'); }, 2500); }\n        setTimeout(function(){ btn.classList.remove('wz-copied'); btn.querySelector('span').textContent = '\u5185\u5BB9\u30B3\u30D4\u30FC'; }, 3000);\n      });\n    }\n  });\n\n  /* Hide share on retry */\n  var origRetryHandler = $('wzScRetry').onclick;\n  $('wzScRetry').addEventListener('click', function(){\n    var scShare = $('wzScShareSection');\n    if (scShare) scShare.style.display = 'none';\n  });\n\n  /* --- Save/Restore previous score --- */\n  (function(){\n    try {\n      var raw = localStorage.getItem('wz_sc_prev');\n      if (!raw) return;\n      var prev = JSON.parse(raw);\n      if (!prev || !prev.gpu || !prev.total) { localStorage.removeItem('wz_sc_prev'); return; }\n      if (Date.now() - prev.ts > 30 * 24 * 60 * 60 * 1000) { localStorage.removeItem('wz_sc_prev'); return; }\n      var btn = $('wzScPrev');\n      if (btn) btn.style.display = '';\n    } catch(e){}\n  })();\n\n  $('wzScPrev').addEventListener('click', function(){\n    try {\n      var raw = localStorage.getItem('wz_sc_prev');\n      if (!raw) return;\n      var prev = JSON.parse(raw);\n      if (!prev || !prev.gpu) return;\n      /* Restore selections */\n      scSel.gpu = prev.gpu; scSel.gpuScore = prev.gpuScore;\n      scSel.cpu = prev.cpu; scSel.cpuScore = prev.cpuScore;\n      scSel.mem = prev.mem; scSel.games = prev.games || []; scSel.res = prev.res;\n      /* Re-run score calculation */\n      runScore();\n    } catch(e){}\n  });\n\n})();\n})();\n/* rev: 2026-08-16 final-total */\n"],
  "mappings": "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",
  "names": ["hideSuggest", "cur", "model", "c"]
}
