{"title":"エイプリルフール2026\"クーポンあみだくじ\"","description":"\u003cstyle\u003e\n  .ck-amida-wrap{\n    --bg1:#fffafc;\n    --bg2:#f7f2ff;\n    --ink:#4f4254;\n    --pink:#ff95b8;\n    --pink2:#ffc0d5;\n    --soft:rgba(255,255,255,.82);\n    --border:#eedfeb;\n    --shadow:rgba(86,58,90,.12);\n    max-width:980px;\n    margin:24px auto;\n    padding:16px 10px 32px;\n    font-family:\"Hiragino Kaku Gothic ProN\",\"Yu Gothic\",sans-serif;\n    color:var(--ink);\n    background:radial-gradient(circle at top, rgba(255,255,255,.9), transparent 30%),linear-gradient(180deg,var(--bg1),var(--bg2));\n    border-radius:24px;\n  }\n  .ck-amida-wrap *{box-sizing:border-box}\n  .ck-amida-panel{\n    background:var(--soft);\n    border:1px solid var(--border);\n    border-radius:24px;\n    box-shadow:0 14px 36px var(--shadow);\n    overflow:hidden;\n  }\n  .ck-amida-head{text-align:center;padding:18px 14px 8px;position:relative}\n  .ck-amida-hero{width:250px;margin:0 auto 8px}\n  .ck-amida-hero svg,.ck-amida-winpals svg{display:block;width:100%;height:auto}\n  .ck-amida-badge{\n    display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;\n    background:#fff;border:1px solid var(--border);font-size:12px;letter-spacing:.08em\n  }\n  .ck-amida-head h2{margin:14px 0 8px;font-size:clamp(24px,6vw,36px);line-height:1.18;color:var(--ink)}\n  .ck-amida-sub{margin:0;color:#6f6076;font-size:13px;line-height:1.9}\n  .ck-amida-status{\n    margin-top:14px;min-height:28px;font-size:18px;font-weight:700;color:#e96fa4;\n    line-height:1.6;text-align:center;text-shadow:0 1px 0 rgba(255,255,255,.8);\n    animation:ckStatusBlink 1.1s ease-in-out infinite;\n  }\n  @keyframes ckStatusBlink{\n    0%,100%{opacity:1;transform:scale(1)}\n    50%{opacity:.45;transform:scale(1.03)}\n  }\n  .ck-amida-board{padding:10px 10px 18px}\n  .ck-amida-board canvas{\n    display:block;width:100%;height:auto;border-radius:20px;border:1px solid var(--border);\n    background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,248,252,.98));\n    touch-action:manipulation;\n  }\n  .ck-amida-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;padding:0 16px 14px}\n  .ck-amida-btn{\n    appearance:none;border:0;border-radius:999px;padding:14px 24px;font-size:15px;font-weight:700;cursor:pointer;\n    transition:transform .18s ease,opacity .18s ease,box-shadow .18s ease;color:#fff;\n    background:linear-gradient(135deg,var(--pink),var(--pink2));box-shadow:0 12px 22px rgba(255,149,184,.28);\n  }\n  .ck-amida-btn:hover{transform:translateY(-2px)}\n  .ck-amida-btn::before,.ck-amida-btn::after{content:'✦'}\n  .ck-amida-btn::before{margin-right:8px}\n  .ck-amida-btn::after{margin-left:8px}\n  .ck-amida-btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none!important}\n  .ck-amida-overlay{\n    position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:18px;\n    background:rgba(38,24,44,.7);backdrop-filter:blur(5px);z-index:9999;\n  }\n  .ck-amida-overlay.show{display:flex}\n  .ck-amida-modal{\n    position:relative;width:min(94vw,620px);border-radius:26px;background:#fff;overflow:hidden;\n    box-shadow:0 18px 50px rgba(0,0,0,.22);text-align:center;padding:28px 20px 64px;\n  }\n  .ck-amida-modal.win{background:radial-gradient(circle at top, rgba(255,240,180,.9), transparent 35%),linear-gradient(180deg,#fffef9,#fff7fb)}\n  .ck-amida-modal.lose{background:radial-gradient(circle at top, rgba(230,224,245,.9), transparent 35%),linear-gradient(180deg,#fff,#f8f6ff)}\n  .ck-amida-winpals{display:none;width:260px;margin:6px auto 10px}\n  .ck-amida-winpals.show{display:block}\n  .ck-amida-result-title{margin:0;font-size:clamp(32px,10vw,72px);line-height:1.05;position:relative;z-index:1}\n  .ck-amida-result-sub{margin:14px 0 0;font-size:clamp(18px,4.2vw,28px);line-height:1.6;position:relative;z-index:1;white-space:pre-line;text-align:center}\n  .ck-amida-coupon{\n    display:inline-block;margin:16px auto 0;padding:16px 18px;border-radius:20px;border:2px dashed #ffb4ca;\n    background:linear-gradient(135deg,#fff3f8,#fffce9);font-size:clamp(22px,6vw,40px);font-weight:800;\n    position:relative;z-index:1;word-break:break-word;text-align:center;\n  }\n  .ck-amida-close{\n    position:absolute;right:18px;bottom:16px;\n    background:#f1ebf7;color:var(--ink);border:0;border-radius:999px;\n    padding:12px 22px;font-weight:700;cursor:pointer\n  }\n  .ck-amida-confetti-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden}\n  .ck-amida-confetti{position:absolute;top:-30px;width:10px;height:18px;border-radius:999px;opacity:.95;animation:ckConfettiFall linear forwards}\n  @keyframes ckConfettiFall{to{transform:translateY(110vh) rotate(540deg);opacity:.9}}\n\u003c\/style\u003e\n\n\u003cdiv class=\"ck-amida-wrap\" id=\"ckAmidaRoot\"\u003e\n  \u003csection class=\"ck-amida-panel\"\u003e\n    \u003cdiv class=\"ck-amida-head\"\u003e\n      \u003cdiv class=\"ck-amida-hero\" aria-hidden=\"true\"\u003e\n        \u003csvg viewbox=\"0 0 360 150\" role=\"img\" aria-label=\"チラちゃんたち\"\u003e\n          \u003cdefs\u003e\n            \u003cg id=\"ck-pal-base\"\u003e\n              \u003cellipse cx=\"30\" cy=\"23\" rx=\"18\" ry=\"23\" fill=\"var(--ear-outer)\" stroke=\"#404b66\" stroke-width=\"6\"\u003e\u003c\/ellipse\u003e\n              \u003cellipse cx=\"78\" cy=\"23\" rx=\"18\" ry=\"23\" fill=\"var(--ear-outer)\" stroke=\"#404b66\" stroke-width=\"6\"\u003e\u003c\/ellipse\u003e\n              \u003cellipse cx=\"30\" cy=\"26\" rx=\"9\" ry=\"13\" fill=\"var(--ear-inner)\"\u003e\u003c\/ellipse\u003e\n              \u003cellipse cx=\"78\" cy=\"26\" rx=\"9\" ry=\"13\" fill=\"var(--ear-inner)\"\u003e\u003c\/ellipse\u003e\n              \u003cellipse cx=\"54\" cy=\"84\" rx=\"48\" ry=\"51\" fill=\"var(--body)\" stroke=\"#404b66\" stroke-width=\"6\"\u003e\u003c\/ellipse\u003e\n              \u003cellipse cx=\"54\" cy=\"94\" rx=\"30\" ry=\"27\" fill=\"var(--belly)\"\u003e\u003c\/ellipse\u003e\n              \u003cellipse cx=\"36\" cy=\"77\" rx=\"7.5\" ry=\"9\" fill=\"#2c3857\"\u003e\u003c\/ellipse\u003e\n              \u003cellipse cx=\"72\" cy=\"77\" rx=\"7.5\" ry=\"9\" fill=\"#2c3857\"\u003e\u003c\/ellipse\u003e\n              \u003ccircle cx=\"33\" cy=\"73\" r=\"2.3\" fill=\"#fff\"\u003e\u003c\/circle\u003e\n              \u003ccircle cx=\"69\" cy=\"73\" r=\"2.3\" fill=\"#fff\"\u003e\u003c\/circle\u003e\n              \u003cellipse cx=\"54\" cy=\"87\" rx=\"5\" ry=\"3.8\" fill=\"#f7a8c3\"\u003e\u003c\/ellipse\u003e\n              \u003cpath d=\"M47 92 Q54 99 61 92\" fill=\"none\" stroke=\"#2c3857\" stroke-width=\"4\" stroke-linecap=\"round\"\u003e\u003c\/path\u003e\n              \u003cpath d=\"M27 82 L10 81 M27 88 L9 88\" stroke=\"var(--whisker)\" stroke-width=\"3\" stroke-linecap=\"round\"\u003e\u003c\/path\u003e\n              \u003cpath d=\"M81 82 L98 81 M81 88 L99 88\" stroke=\"var(--whisker)\" stroke-width=\"3\" stroke-linecap=\"round\"\u003e\u003c\/path\u003e\n              \u003cellipse cx=\"22\" cy=\"89\" rx=\"9\" ry=\"6.5\" fill=\"#f7dce5\" opacity=\".92\"\u003e\u003c\/ellipse\u003e\n              \u003cellipse cx=\"86\" cy=\"89\" rx=\"9\" ry=\"6.5\" fill=\"#f7dce5\" opacity=\".92\"\u003e\u003c\/ellipse\u003e\n              \u003cellipse cx=\"16\" cy=\"105\" rx=\"11\" ry=\"9\" fill=\"var(--body)\" stroke=\"#404b66\" stroke-width=\"6\"\u003e\u003c\/ellipse\u003e\n              \u003cellipse cx=\"92\" cy=\"105\" rx=\"11\" ry=\"9\" fill=\"var(--body)\" stroke=\"#404b66\" stroke-width=\"6\"\u003e\u003c\/ellipse\u003e\n              \u003cellipse cx=\"38\" cy=\"126\" rx=\"13\" ry=\"9\" fill=\"var(--body)\" stroke=\"#404b66\" stroke-width=\"6\"\u003e\u003c\/ellipse\u003e\n              \u003cellipse cx=\"70\" cy=\"126\" rx=\"13\" ry=\"9\" fill=\"var(--body)\" stroke=\"#404b66\" stroke-width=\"6\"\u003e\u003c\/ellipse\u003e\n            \u003c\/g\u003e\n          \u003c\/defs\u003e\n          \u003ctext x=\"22\" y=\"28\" font-size=\"18\" fill=\"#ffd56f\"\u003e✦\u003c\/text\u003e\n          \u003ctext x=\"332\" y=\"36\" font-size=\"18\" fill=\"#ffd56f\"\u003e✦\u003c\/text\u003e\n          \u003cg transform=\"translate(10,8) scale(.86)\" style=\"--ear-outer:#d9d4e2; --ear-inner:#c9bfd3; --body:#ddd8e6; --belly:#efeaf3; --whisker:#d3cdd8;\"\u003e\u003cuse href=\"#ck-pal-base\"\u003e\u003c\/use\u003e\u003c\/g\u003e\n          \u003cg transform=\"translate(122,8) scale(.86)\" style=\"--ear-outer:#f3eadf; --ear-inner:#ead1bb; --body:#f5edde; --belly:#fbf5ea; --whisker:#d8d0c7;\"\u003e\u003cuse href=\"#ck-pal-base\"\u003e\u003c\/use\u003e\u003c\/g\u003e\n          \u003cg transform=\"translate(234,8) scale(.86)\" style=\"--ear-outer:#fafafe; --ear-inner:#d9d1e7; --body:#f6f6fb; --belly:#ffffff; --whisker:#ddd8e5;\"\u003e\u003cuse href=\"#ck-pal-base\"\u003e\u003c\/use\u003e\u003c\/g\u003e\n        \u003c\/svg\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"ck-amida-badge\"\u003eAPRIL FOOL × あみだくじ\u003c\/div\u003e\n      \u003ch2\u003eクーポンあみだくじ\u003c\/h2\u003e\n      \u003cp class=\"ck-amida-sub\"\u003e\n        好きな番号を選んでください。\u003cbr\u003e\n        「選んだ番号でくじをスタート」ボタンを押してあみだくじスタート!!\u003cbr\u003e\n        2人に1人当たります🎯\u003cbr\u003e\n        当たったらクーポンコードをメモに控えましょう。\u003cbr\u003e\n        クーポンコードは2026年4月30日まで有効です。期限を過ぎますとご使用できません。再発行もできません。予めご了承くださいませ。\n      \u003c\/p\u003e\n      \u003cdiv class=\"ck-amida-status\" id=\"ckAmidaStatus\"\u003eお1人様一回限りです。\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"ck-amida-board\"\u003e\n      \u003ccanvas id=\"ckAmidaCanvas\" width=\"900\" height=\"1260\" aria-label=\"あみだくじ\"\u003e\u003c\/canvas\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"ck-amida-actions\"\u003e\n      \u003cbutton class=\"ck-amida-btn\" id=\"ckAmidaStart\" type=\"button\"\u003e選んだ番号でくじをスタート\u003c\/button\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"ck-amida-overlay\" id=\"ckAmidaOverlay\" aria-hidden=\"true\"\u003e\n  \u003cdiv class=\"ck-amida-modal\" id=\"ckAmidaModal\"\u003e\n    \u003cdiv class=\"ck-amida-confetti-layer\" id=\"ckAmidaConfetti\"\u003e\u003c\/div\u003e\n\n    \u003cdiv class=\"ck-amida-winpals\" id=\"ckAmidaPals\" aria-hidden=\"true\"\u003e\n      \u003csvg viewbox=\"0 0 380 190\" role=\"img\" aria-label=\"お祝いするチラちゃんたち\"\u003e\n        \u003cdefs\u003e\n          \u003cg id=\"ck-party-pal\"\u003e\n            \u003cellipse cx=\"30\" cy=\"23\" rx=\"18\" ry=\"23\" fill=\"var(--ear-outer)\" stroke=\"#404b66\" stroke-width=\"6\"\u003e\u003c\/ellipse\u003e\n            \u003cellipse cx=\"78\" cy=\"23\" rx=\"18\" ry=\"23\" fill=\"var(--ear-outer)\" stroke=\"#404b66\" stroke-width=\"6\"\u003e\u003c\/ellipse\u003e\n            \u003cellipse cx=\"30\" cy=\"26\" rx=\"9\" ry=\"13\" fill=\"var(--ear-inner)\"\u003e\u003c\/ellipse\u003e\n            \u003cellipse cx=\"78\" cy=\"26\" rx=\"9\" ry=\"13\" fill=\"var(--ear-inner)\"\u003e\u003c\/ellipse\u003e\n            \u003cellipse cx=\"54\" cy=\"84\" rx=\"48\" ry=\"51\" fill=\"var(--body)\" stroke=\"#404b66\" stroke-width=\"6\"\u003e\u003c\/ellipse\u003e\n            \u003cellipse cx=\"54\" cy=\"94\" rx=\"30\" ry=\"27\" fill=\"var(--belly)\"\u003e\u003c\/ellipse\u003e\n            \u003cellipse cx=\"36\" cy=\"77\" rx=\"7.5\" ry=\"9\" fill=\"#2c3857\"\u003e\u003c\/ellipse\u003e\n            \u003cellipse cx=\"72\" cy=\"77\" rx=\"7.5\" ry=\"9\" fill=\"#2c3857\"\u003e\u003c\/ellipse\u003e\n            \u003ccircle cx=\"33\" cy=\"73\" r=\"2.3\" fill=\"#fff\"\u003e\u003c\/circle\u003e\n            \u003ccircle cx=\"69\" cy=\"73\" r=\"2.3\" fill=\"#fff\"\u003e\u003c\/circle\u003e\n            \u003cellipse cx=\"54\" cy=\"87\" rx=\"5\" ry=\"3.8\" fill=\"#f7a8c3\"\u003e\u003c\/ellipse\u003e\n            \u003cpath d=\"M47 92 Q54 99 61 92\" fill=\"none\" stroke=\"#2c3857\" stroke-width=\"4\" stroke-linecap=\"round\"\u003e\u003c\/path\u003e\n            \u003cpath d=\"M27 82 L10 81 M27 88 L9 88\" stroke=\"var(--whisker)\" stroke-width=\"3\" stroke-linecap=\"round\"\u003e\u003c\/path\u003e\n            \u003cpath d=\"M81 82 L98 81 M81 88 L99 88\" stroke=\"var(--whisker)\" stroke-width=\"3\" stroke-linecap=\"round\"\u003e\u003c\/path\u003e\n            \u003cellipse cx=\"22\" cy=\"89\" rx=\"9\" ry=\"6.5\" fill=\"#f7dce5\" opacity=\".92\"\u003e\u003c\/ellipse\u003e\n            \u003cellipse cx=\"86\" cy=\"89\" rx=\"9\" ry=\"6.5\" fill=\"#f7dce5\" opacity=\".92\"\u003e\u003c\/ellipse\u003e\n            \u003cellipse cx=\"16\" cy=\"105\" rx=\"11\" ry=\"9\" fill=\"var(--body)\" stroke=\"#404b66\" stroke-width=\"6\"\u003e\u003c\/ellipse\u003e\n            \u003cellipse cx=\"92\" cy=\"105\" rx=\"11\" ry=\"9\" fill=\"var(--body)\" stroke=\"#404b66\" stroke-width=\"6\"\u003e\u003c\/ellipse\u003e\n            \u003cellipse cx=\"38\" cy=\"126\" rx=\"13\" ry=\"9\" fill=\"var(--body)\" stroke=\"#404b66\" stroke-width=\"6\"\u003e\u003c\/ellipse\u003e\n            \u003cellipse cx=\"70\" cy=\"126\" rx=\"13\" ry=\"9\" fill=\"var(--body)\" stroke=\"#404b66\" stroke-width=\"6\"\u003e\u003c\/ellipse\u003e\n          \u003c\/g\u003e\n        \u003c\/defs\u003e\n        \u003ctext x=\"26\" y=\"34\" font-size=\"20\" fill=\"#ffd56f\"\u003e✦\u003c\/text\u003e\n        \u003ctext x=\"184\" y=\"24\" font-size=\"20\" fill=\"#ffd56f\"\u003e✦\u003c\/text\u003e\n        \u003ctext x=\"340\" y=\"34\" font-size=\"20\" fill=\"#ffd56f\"\u003e✦\u003c\/text\u003e\n        \u003cg transform=\"translate(18,28) scale(.92)\" style=\"--ear-outer:#d9d4e2; --ear-inner:#c9bfd3; --body:#ddd8e6; --belly:#efeaf3; --whisker:#d3cdd8;\"\u003e\u003cuse href=\"#ck-party-pal\"\u003e\u003c\/use\u003e\u003c\/g\u003e\n        \u003cg transform=\"translate(136,20) scale(.98)\" style=\"--ear-outer:#f3eadf; --ear-inner:#ead1bb; --body:#f5edde; --belly:#fbf5ea; --whisker:#d8d0c7;\"\u003e\u003cuse href=\"#ck-party-pal\"\u003e\u003c\/use\u003e\u003c\/g\u003e\n        \u003cg transform=\"translate(258,28) scale(.92)\" style=\"--ear-outer:#fafafe; --ear-inner:#d9d1e7; --body:#f6f6fb; --belly:#ffffff; --whisker:#ddd8e5;\"\u003e\u003cuse href=\"#ck-party-pal\"\u003e\u003c\/use\u003e\u003c\/g\u003e\n      \u003c\/svg\u003e\n    \u003c\/div\u003e\n\n    \u003ch2 class=\"ck-amida-result-title\" id=\"ckAmidaResultTitle\"\u003e\u003c\/h2\u003e\n    \u003cdiv class=\"ck-amida-result-sub\" id=\"ckAmidaResultSub\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"ck-amida-coupon\" id=\"ckAmidaCoupon\" style=\"display:none;margin-left:auto;margin-right:auto;\"\u003e\u003c\/div\u003e\n    \u003cbutton class=\"ck-amida-close\" id=\"ckAmidaClose\" type=\"button\"\u003e閉じる\u003c\/button\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n  const root = document.getElementById('ckAmidaRoot');\n  if (!root || root.dataset.ready === '1') return;\n  root.dataset.ready = '1';\n\n  const COUPON_CODE = 'PRANK2026';\n  const START_COUNT = 10;\n  const STORAGE_KEY = 'ck_amida_prank2026_played';\n  const STORAGE_RESULT_KEY = 'ck_amida_prank2026_result';\n\n  const canvas = document.getElementById('ckAmidaCanvas');\n  const ctx = canvas.getContext('2d');\n  const statusText = document.getElementById('ckAmidaStatus');\n  const drawButton = document.getElementById('ckAmidaStart');\n  const overlay = document.getElementById('ckAmidaOverlay');\n  const modal = document.getElementById('ckAmidaModal');\n  const resultTitle = document.getElementById('ckAmidaResultTitle');\n  const resultSub = document.getElementById('ckAmidaResultSub');\n  const couponBox = document.getElementById('ckAmidaCoupon');\n  const closeButton = document.getElementById('ckAmidaClose');\n  const confettiLayer = document.getElementById('ckAmidaConfetti');\n  const celebratePals = document.getElementById('ckAmidaPals');\n\n  const topY = 130;\n  const boardTop = 176;\n  const boardBottom = 1032;\n  const labelBottomY = 1112;\n  const marginX = 95;\n  const spacing = (canvas.width - marginX * 2) \/ (START_COUNT - 1);\n  const xs = Array.from({ length: START_COUNT }, (_, i) =\u003e Math.round(marginX + spacing * i));\n  const hiddenMaskTop = boardTop + (boardBottom - boardTop) * 0.24;\n  const hiddenMaskBottom = boardTop + (boardBottom - boardTop) * 0.78;\n\n  let selectedStart = null;\n  let animating = false;\n  let resultByStart = Array.from({ length: START_COUNT }, () =\u003e false);\n\n  function hashString(str){\n    let h = 2166136261;\n    for(let i = 0; i \u003c str.length; i++){\n      h ^= str.charCodeAt(i);\n      h = Math.imul(h, 16777619);\n    }\n    return h \u003e\u003e\u003e 0;\n  }\n\n  function mulberry32(a){\n    return function(){\n      let t = a += 0x6D2B79F5;\n      t = Math.imul(t ^ (t \u003e\u003e\u003e 15), t | 1);\n      t ^= t + Math.imul(t ^ (t \u003e\u003e\u003e 7), t | 61);\n      return ((t ^ (t \u003e\u003e\u003e 14)) \u003e\u003e\u003e 0) \/ 4294967296;\n    };\n  }\n\n  function shuffle(arr, rnd){\n    const a = arr.slice();\n    for(let i = a.length - 1; i \u003e 0; i--){\n      const j = Math.floor(rnd() * (i + 1));\n      [a[i], a[j]] = [a[j], a[i]];\n    }\n    return a;\n  }\n\n  function regenerateWinners(){\n    const seed = hashString(String(Date.now()) + '-' + String(Math.random()));\n    const rnd = mulberry32(seed);\n    const winnerStarts = shuffle([0,1,2,3,4,5,6,7,8,9], rnd).slice(0,5);\n    resultByStart = Array.from({ length: START_COUNT }, () =\u003e false);\n    winnerStarts.forEach(i =\u003e { resultByStart[i] = true; });\n  }\n\n  function buildHorizontals(){\n    const rnd = mulberry32(hashString('chirakira-2026-aprilfool-board-fixed'));\n    const lines = [];\n    for (let y = boardTop + 36; y \u003c boardBottom - 36; y += 44) {\n      const countThisRow = 2 + Math.floor(rnd() * 2);\n      const pairs = new Set();\n      let attempts = 0;\n      while (pairs.size \u003c countThisRow \u0026\u0026 attempts \u003c 200) {\n        attempts++;\n        const i = Math.floor(rnd() * (START_COUNT - 1));\n        if (pairs.has(i) || pairs.has(i - 1) || pairs.has(i + 1)) continue;\n        pairs.add(i);\n      }\n      Array.from(pairs).sort((a, b) =\u003e a - b).forEach(i =\u003e {\n        lines.push({ x1: xs[i], x2: xs[i + 1], y });\n      });\n    }\n    return lines;\n  }\n\n  const horizontals = buildHorizontals();\n  const horizontalMap = new Map();\n  horizontals.forEach(h =\u003e {\n    horizontalMap.set(h.x1 + '-' + h.y, { otherX: h.x2 });\n    horizontalMap.set(h.x2 + '-' + h.y, { otherX: h.x1 });\n  });\n\n  function getPathForStart(startIndex){\n    let x = xs[startIndex];\n    let y = boardTop;\n    const segments = [];\n    const rowYs = [...new Set(horizontals.map(h =\u003e h.y))].sort((a,b)=\u003ea-b);\n\n    rowYs.forEach(rowY =\u003e {\n      segments.push({ type:'v', x, y1:y, y2:rowY });\n      const hit = horizontalMap.get(x + '-' + rowY);\n      if (hit) {\n        segments.push({ type:'h', x1:x, x2:hit.otherX, y:rowY });\n        x = hit.otherX;\n      }\n      y = rowY;\n    });\n\n    segments.push({ type:'v', x, y1:y, y2:boardBottom });\n    return { endIndex: xs.indexOf(x), segments };\n  }\n\n  const paths = xs.map((_, i) =\u003e getPathForStart(i));\n\n  function roundRect(x,y,w,h,r){\n    ctx.beginPath();\n    ctx.moveTo(x+r,y);\n    ctx.lineTo(x+w-r,y);\n    ctx.quadraticCurveTo(x+w,y,x+w,y+r);\n    ctx.lineTo(x+w,y+h-r);\n    ctx.quadraticCurveTo(x+w,y+h,x+w-r,y+h);\n    ctx.lineTo(x+r,y+h);\n    ctx.quadraticCurveTo(x,y+h,x,y+h-r);\n    ctx.lineTo(x,y+r);\n    ctx.quadraticCurveTo(x,y,x+r,y);\n    ctx.closePath();\n  }\n\n  function drawStar(x,y,r,color){\n    ctx.save();\n    ctx.translate(x,y);\n    ctx.fillStyle = color;\n    ctx.beginPath();\n    for(let i=0;i\u003c4;i++){\n      ctx.lineTo(Math.cos((18+i*90)*Math.PI\/180)*r, Math.sin((18+i*90)*Math.PI\/180)*r);\n      ctx.lineTo(Math.cos((63+i*90)*Math.PI\/180)*(r*0.42), Math.sin((63+i*90)*Math.PI\/180)*(r*0.42));\n    }\n    ctx.closePath();\n    ctx.fill();\n    ctx.restore();\n  }\n\n  function drawCuteLabel(x, y, en, jp) {\n    const w = 152, h = 50;\n    ctx.save();\n    ctx.translate(x - w \/ 2, y - h \/ 2);\n    ctx.fillStyle = '#fff';\n    ctx.strokeStyle = '#efdce8';\n    ctx.lineWidth = 2;\n    roundRect(0, 0, w, h, 24);\n    ctx.fill();\n    ctx.stroke();\n    ctx.fillStyle = '#ffe9f2';\n    roundRect(8, 8, w - 16, h - 16, 18);\n    ctx.fill();\n    ctx.fillStyle = '#b7849f';\n    ctx.font = 'bold 10px sans-serif';\n    ctx.textAlign = 'center';\n    ctx.textBaseline = 'alphabetic';\n    ctx.fillText(en, w \/ 2, 17);\n    ctx.fillStyle = '#6f6076';\n    ctx.font = 'bold 18px sans-serif';\n    ctx.textBaseline = 'middle';\n    ctx.fillText(jp, w \/ 2, 31);\n    ctx.fillStyle = '#ffd56f';\n    ctx.font = '16px sans-serif';\n    ctx.fillText('✦', 18, 29);\n    ctx.fillText('✦', w - 18, 29);\n    ctx.restore();\n  }\n\n  function drawBoard(progressPath = null, progressLength = 0){\n    ctx.clearRect(0,0,canvas.width,canvas.height);\n\n    for(let i=0;i\u003c36;i++){\n      const px = 30 + (i * 43) % canvas.width;\n      const py = 20 + (i * 67) % 120;\n      drawStar(px, py, (i % 3) + 5, i % 2 === 0 ? '#ffd76d' : '#ffb6cb');\n    }\n\n    drawCuteLabel(canvas.width \/ 2, topY - 46, 'START', 'スタート');\n\n    xs.forEach((x,i)=\u003e{\n      const isSelected = selectedStart === i;\n      ctx.fillStyle = isSelected ? '#ff95b8' : '#fff';\n      ctx.strokeStyle = isSelected ? '#ff95b8' : '#eadde8';\n      ctx.lineWidth = 2;\n      roundRect(x - 24, topY - 24, 48, 48, 24);\n      ctx.fill();\n      ctx.stroke();\n      ctx.fillStyle = isSelected ? '#fff' : '#6d5f74';\n      ctx.font = 'bold 18px sans-serif';\n      ctx.textAlign = 'center';\n      ctx.textBaseline = 'middle';\n      ctx.fillText(String(i + 1), x, topY);\n    });\n\n    ctx.strokeStyle = '#62526d';\n    ctx.lineWidth = 4;\n    ctx.lineCap = 'round';\n    xs.forEach(x =\u003e {\n      ctx.beginPath();\n      ctx.moveTo(x, boardTop);\n      ctx.lineTo(x, boardBottom);\n      ctx.stroke();\n    });\n\n    horizontals.forEach(h =\u003e {\n      ctx.beginPath();\n      ctx.moveTo(h.x1, h.y);\n      ctx.lineTo(h.x2, h.y);\n      ctx.stroke();\n    });\n\n    ctx.fillStyle = 'rgba(255, 248, 252, 1)';\n    roundRect(20, hiddenMaskTop, canvas.width - 40, hiddenMaskBottom - hiddenMaskTop, 28);\n    ctx.fill();\n    ctx.strokeStyle = '#f0e4ed';\n    ctx.lineWidth = 2;\n    ctx.stroke();\n\n    ctx.fillStyle = 'rgba(255, 248, 252, 0.92)';\n    roundRect(28, hiddenMaskTop + 16, canvas.width - 56, hiddenMaskBottom - hiddenMaskTop - 32, 22);\n    ctx.fill();\n\n    ctx.fillStyle = '#8a7a8f';\n    ctx.font = 'bold 20px sans-serif';\n    ctx.textAlign = 'center';\n    ctx.textBaseline = 'middle';\n    ctx.fillText('この中央帯は見えません', canvas.width \/ 2, (hiddenMaskTop + hiddenMaskBottom) \/ 2 - 10);\n    ctx.font = '14px sans-serif';\n    ctx.fillText('見た目では当たりが分からない仕様です', canvas.width \/ 2, (hiddenMaskTop + hiddenMaskBottom) \/ 2 + 18);\n\n    drawCuteLabel(canvas.width \/ 2, labelBottomY + 52, 'GOAL', 'ゴール');\n\n    const goalLabels = ['A','B','C','D','E','F','G','H','I','J'];\n    xs.forEach((x,i)=\u003e{\n      ctx.fillStyle = '#fff';\n      ctx.strokeStyle = '#eadde8';\n      ctx.lineWidth = 2;\n      roundRect(x - 22, labelBottomY - 22, 44, 44, 14);\n      ctx.fill();\n      ctx.stroke();\n      ctx.fillStyle = '#6d5f74';\n      ctx.font = 'bold 18px sans-serif';\n      ctx.textAlign = 'center';\n      ctx.textBaseline = 'middle';\n      ctx.fillText(goalLabels[i], x, labelBottomY);\n    });\n\n    if (progressPath \u0026\u0026 progressLength \u003e 0) {\n      ctx.save();\n      ctx.strokeStyle = '#ff7ba7';\n      ctx.lineWidth = 8;\n      ctx.lineCap = 'round';\n      ctx.lineJoin = 'round';\n      let remain = progressLength;\n\n      for (const seg of progressPath.segments) {\n        const len = seg.type === 'v' ? Math.abs(seg.y2 - seg.y1) : Math.abs(seg.x2 - seg.x1);\n        if (remain \u003c= 0) break;\n        const use = Math.min(remain, len);\n        ctx.beginPath();\n        if (seg.type === 'v') {\n          const dir = seg.y2 \u003e= seg.y1 ? 1 : -1;\n          ctx.moveTo(seg.x, seg.y1);\n          ctx.lineTo(seg.x, seg.y1 + use * dir);\n        } else {\n          const dir = seg.x2 \u003e= seg.x1 ? 1 : -1;\n          ctx.moveTo(seg.x1, seg.y);\n          ctx.lineTo(seg.x1 + use * dir, seg.y);\n        }\n        ctx.stroke();\n        remain -= use;\n      }\n      ctx.restore();\n    }\n  }\n\n  function segmentTotalLength(path){\n    return path.segments.reduce((sum, seg) =\u003e sum + (seg.type === 'v' ? Math.abs(seg.y2 - seg.y1) : Math.abs(seg.x2 - seg.x1)), 0);\n  }\n\n  function animatePath(startIndex, onDone){\n    const path = paths[startIndex];\n    const total = segmentTotalLength(path);\n    const duration = 2200;\n    const start = performance.now();\n\n    function frame(now){\n      const t = Math.min(1, (now - start) \/ duration);\n      const eased = 1 - Math.pow(1 - t, 3);\n      drawBoard(path, total * eased);\n      if (t \u003c 1) requestAnimationFrame(frame);\n      else onDone(path.endIndex);\n    }\n    requestAnimationFrame(frame);\n  }\n\n  function makeConfetti(){\n    confettiLayer.innerHTML = '';\n    const colors = ['#ff95b8','#ffd76d','#9ed8ff','#c8b6ff','#ffb7d1'];\n    for(let i=0;i\u003c42;i++){\n      const el = document.createElement('span');\n      el.className = 'ck-amida-confetti';\n      el.style.left = (Math.random()*100) + '%';\n      el.style.background = colors[i % colors.length];\n      el.style.animationDuration = (1.8 + Math.random()*1.8) + 's';\n      el.style.animationDelay = (Math.random()*0.8) + 's';\n      el.style.transform = 'rotate(' + (Math.random()*120) + 'deg)';\n      confettiLayer.appendChild(el);\n    }\n  }\n\n  function showResult(isWin){\n    modal.className = 'ck-amida-modal ' + (isWin ? 'win' : 'lose');\n    resultTitle.textContent = isWin ? '大当たり' : '残念でした……';\n    resultSub.textContent = isWin ? '【クーポン】' : '';\n    couponBox.style.display = isWin ? 'inline-block' : 'none';\n    couponBox.textContent = isWin ? COUPON_CODE : '';\n    confettiLayer.innerHTML = '';\n    celebratePals.classList.toggle('show', isWin);\n    if (isWin) makeConfetti();\n    overlay.classList.add('show');\n    overlay.setAttribute('aria-hidden', 'false');\n  }\n\n  function persistPlayed(isWin){\n    try {\n      localStorage.setItem(STORAGE_KEY, '1');\n      localStorage.setItem(STORAGE_RESULT_KEY, JSON.stringify({ win: !!isWin }));\n    } catch (e) {}\n  }\n\n  function hasPlayed(){\n    try {\n      return localStorage.getItem(STORAGE_KEY) === '1';\n    } catch (e) {\n      return false;\n    }\n  }\n\n  function readPlayedResult(){\n    try {\n      const raw = localStorage.getItem(STORAGE_RESULT_KEY);\n      if (!raw) return null;\n      return JSON.parse(raw);\n    } catch (e) {\n      return null;\n    }\n  }\n\n  function clickToSelect(e){\n    if (animating || hasPlayed()) return;\n\n    const rect = canvas.getBoundingClientRect();\n    const scaleX = canvas.width \/ rect.width;\n    const scaleY = canvas.height \/ rect.height;\n    const x = (e.clientX - rect.left) * scaleX;\n    const y = (e.clientY - rect.top) * scaleY;\n\n    if (y \u003c topY - 28 || y \u003e topY + 28) return;\n\n    let nearest = null, dist = Infinity;\n    xs.forEach((sx, i) =\u003e {\n      const d = Math.abs(sx - x);\n      if (d \u003c dist) { dist = d; nearest = i; }\n    });\n\n    if (dist \u003c= 32) {\n      selectedStart = nearest;\n      statusText.textContent = '番号 ' + (nearest + 1) + ' を選択中です。';\n      statusText.style.color = '#b7849f';\n      drawBoard();\n    }\n  }\n\n  function doDraw(){\n    if (animating || hasPlayed()) return;\n\n    if (selectedStart === null) {\n      statusText.textContent = '先に番号を1つ選んでください。';\n      statusText.style.color = '#b7849f';\n      return;\n    }\n\n    animating = true;\n    drawButton.disabled = true;\n    statusText.textContent = '番号 ' + (selectedStart + 1) + ' から進んでいます…';\n    statusText.style.color = '#8d78c6';\n\n    animatePath(selectedStart, () =\u003e {\n      const isWin = resultByStart[selectedStart];\n      animating = false;\n      drawButton.disabled = true;\n      persistPlayed(isWin);\n      statusText.textContent = isWin ? '大当たりです。おめでとうございます🎊' : '残念ハズレでした。';\n      statusText.style.color = isWin ? '#e96fa4' : '#7f6f8d';\n      showResult(isWin);\n    });\n  }\n\n  closeButton.addEventListener('click', () =\u003e {\n    overlay.classList.remove('show');\n    overlay.setAttribute('aria-hidden', 'true');\n  });\n\n  overlay.addEventListener('click', e =\u003e {\n    if (e.target === overlay) {\n      overlay.classList.remove('show');\n      overlay.setAttribute('aria-hidden', 'true');\n    }\n  });\n\n  regenerateWinners();\n  canvas.addEventListener('click', clickToSelect);\n  drawButton.addEventListener('click', doDraw);\n  drawBoard();\n\n  if (hasPlayed()) {\n    drawButton.disabled = true;\n    const prev = readPlayedResult();\n    statusText.textContent = 'お1人様一回限りです。';\n    statusText.style.color = '#e96fa4';\n    if (prev \u0026\u0026 typeof prev.win === 'boolean') {\n      showResult(prev.win);\n    }\n  }\n})();\n\u003c\/script\u003e","products":[{"product_id":"uv-led_resin_aqualis","title":"SK本舗 UV-LEDクラフトレジン『Aqualis -アクアリス-』シリーズ","description":"\u003ch2 style=\"text-align: center;\"\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0760\/2490\/5945\/files\/1_d26d2ee1-07ad-4c47-b64f-a55e4c1614f6.jpg?v=1764205787\"\u003e\u003c\/h2\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0760\/2490\/5945\/files\/Aqualis.jpg?v=1764209968\"\u003e\u003c\/p\u003e\n\u003ch3 style=\"text-align: center;\"\u003e\u003cstrong\u003eSK本舗から新しいレジン液の登場です!!\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0760\/2490\/5945\/files\/Aqualis__-03.jpg?v=1764209262\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0760\/2490\/5945\/files\/Aqualis__-04.jpg?v=1764205906\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0760\/2490\/5945\/files\/Aqualis__-08_c47fef7d-5002-4f8a-b485-f1bf7eb19bee.jpg?v=1766478305\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0760\/2490\/5945\/files\/Aqualis__-05.jpg?v=1764205906\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0760\/2490\/5945\/files\/Aqualis__-06.jpg?v=1764205906\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0760\/2490\/5945\/files\/Aqualis__-08.jpg?v=1764205906\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0760\/2490\/5945\/files\/Aqualis__-09.jpg?v=1764205906\"\u003e\u003c\/p\u003e\n\u003cp\u003e◆『Aqualis -アクアリス-』とは◆\u003c\/p\u003e\n\u003cp\u003e「Aqua（水）」＋「Crystallis（水晶）」から生まれた言葉。\u003cbr\u003e  まるでクリスタルのような高透明感をお楽しみください。\u003c\/p\u003e\n\u003cp\u003e〈point1〉\u003cbr\u003e高い透明度と黄変への強さで、クリスタルのような透明感が持続します。\u003cbr\u003e〈point2〉\u003cbr\u003e収縮率が低いため反りやしわになりにくいです。\u003cbr\u003e〈point3〉\u003cbr\u003e完全硬化後はベタつきがなく、 美しい仕上がりになります。\u003cbr\u003e〈point4〉\u003cbr\u003e特に超低粘度はサラサラなので、 気泡抜けもよく着色剤が綺麗に混ざります。\u003cbr\u003e※弊社着色 『フェリシアの小瓶』で実験を行っています\u003cbr\u003e〈point5〉\u003cbr\u003eコーティングレジン (Kirari\u0026amp;Fuwari) とも相性抜群◎\u003cbr\u003eより綺麗にレジン作品を仕上げることができます。\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch3\u003e\u003cstrong\u003e用途に合わせて3種類から粘度をお選びいただけます\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003e◇超低粘度◇\u003c\/strong\u003e\u003cbr\u003eメープルシロップのようなサラサラ感!!\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e気泡抜けが抜群!!\u003c\/strong\u003e\u003cbr\u003e\u003cstrong\u003eスムーズな作品づくりをサポート\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e超サラサラで、気泡抜け抜群。\u003cbr\u003e細かいモールドの奥にも浸透しやすく使いやすい。\u003cbr\u003eドライフラワーやラメなどの封入物を浸して下準備するのにも相性◎\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e◇中粘度◇\u003c\/strong\u003e\u003cbr\u003eはちみつのようなとろーり感!!\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e初心者にもおすすめ!!\u003c\/strong\u003e\u003cbr\u003e\u003cstrong\u003eオールマイティな使い心地!!\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eほどよい粘度で扱いやすい。\u003cbr\u003e一本あれば様々な用途に使えるので、いろんな作品や表現方法を試してみたい、チャレンジ精神一杯な方の強い味方になれるレジン液です。\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e◇超高粘度◇\u003c\/strong\u003e\u003cbr\u003eいちごジャムのようなねっとり感!!\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003cstrong\u003e表面をぷっくり盛る作品におすすめ!!\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e高粘度でぷっくりと盛るのに最適なレジン。\u003cbr\u003e硬めで流れにくく、空枠やミール皿などの作業にもおすすめ。\u003cbr\u003eあえて気泡を残したい水や海の作品にもぴったりです！\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e≪ご使用上のご注意≫\u003cbr\u003e・作業を行う際は皮膚や衣類・家具などに付着させないよう、作業用手袋やエプロン等を着用の上、十分にご注意ください。\u003cbr\u003e・皮膚の弱い方やアレルギー体質の方は、かぶれの原因となる場合がございます。作業用手袋等を必ずご利用ください。皮膚に付いた場合はすぐに石鹸水で洗い流してください。\u003cbr\u003e・使用中に身体に異常を感じた場合、すぐに使用を中止し、医師の診断を受けてください。\u003cbr\u003e・硬化中は硬化熱により高温となりますので十分にご注意ください。\u003cbr\u003e・火気の近くでレジン作業を行わないでください。\u003cbr\u003e・電子レンジ、オーブンでの使用はできません。\u003cbr\u003e・硬化後は十分冷ましてから作業を行なってください。レジンが硬化熱を持ったまま型から外そうとすると、型が破損する恐れがあります。\u003cbr\u003e・小児の手の届かない場所に保管してください。\u003cbr\u003e・本品は食べ物ではございません。口の中に入れないでください。\u003cbr\u003e・人体には直接使用しないでください。\u003cbr\u003e・開封後はキャップをしっかりと締め、直接日光や照明の当らない場所で立てて保管の上、お早めにご使用ください。\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003ca href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0760\/2490\/5945\/files\/05.png?v=1766476192\" title=\"レジン比較表\"\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0760\/2490\/5945\/files\/05.png?v=1766476192\"\u003e\u003c\/a\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003ca href=\"https:\/\/chirakiracraft.com\/collections\/uv-resin_ai-diagnosis\" title=\"★レジン選びに迷ったらこちらを試してみてね★\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0760\/2490\/5945\/files\/1480x700.png?v=1772784489\" alt=\"\"\u003e\u003c\/a\u003e\u003c\/p\u003e","brand":"SK本舗","offers":[{"title":"超低粘度 \/ 50g","offer_id":47393703624921,"sku":"SK050AQLV","price":980.0,"currency_code":"JPY","in_stock":true},{"title":"超低粘度 \/ 100g","offer_id":47362437546201,"sku":"SK100AQLV","price":1880.0,"currency_code":"JPY","in_stock":true},{"title":"超低粘度 \/ 250g","offer_id":47362437578969,"sku":"SK250AQLV","price":3980.0,"currency_code":"JPY","in_stock":true},{"title":"超低粘度 \/ 500g（250gボトル2本でご提供）","offer_id":47362437611737,"sku":"SK500AQLV","price":6800.0,"currency_code":"JPY","in_stock":true},{"title":"超低粘度 \/ 1000g（250gボトル4本でご提供）","offer_id":47362437644505,"sku":"SK1000AQLV","price":12800.0,"currency_code":"JPY","in_stock":true},{"title":"中粘度 \/ 50g","offer_id":47393703657689,"sku":"SK050AQMV","price":980.0,"currency_code":"JPY","in_stock":true},{"title":"中粘度 \/ 100g","offer_id":47362437677273,"sku":"SK100AQMV","price":1880.0,"currency_code":"JPY","in_stock":true},{"title":"中粘度 \/ 250g","offer_id":47362437710041,"sku":"SK250AQMV","price":3980.0,"currency_code":"JPY","in_stock":true},{"title":"中粘度 \/ 500g（250gボトル2本でご提供）","offer_id":47362437742809,"sku":"SK500AQMV","price":6800.0,"currency_code":"JPY","in_stock":true},{"title":"中粘度 \/ 1000g（250gボトル4本でご提供）","offer_id":47362437775577,"sku":"SK1000AQMV","price":12800.0,"currency_code":"JPY","in_stock":true},{"title":"超高粘度 \/ 50g","offer_id":47393703690457,"sku":"SK050AQHV","price":980.0,"currency_code":"JPY","in_stock":true},{"title":"超高粘度 \/ 100g","offer_id":47362437808345,"sku":"SK100AQHV","price":1880.0,"currency_code":"JPY","in_stock":true},{"title":"超高粘度 \/ 250g","offer_id":47362437841113,"sku":"SK250AQHV","price":3980.0,"currency_code":"JPY","in_stock":true},{"title":"超高粘度 \/ 500g（250gボトル2本でご提供）","offer_id":47362437873881,"sku":"SK500AQHV","price":6800.0,"currency_code":"JPY","in_stock":true},{"title":"超高粘度 \/ 1000g（250gボトル4本でご提供）","offer_id":47362437906649,"sku":"SK1000AQHV","price":12800.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0760\/2490\/5945\/files\/Aqualis.jpg?v=1764209996"}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0760\/2490\/5945\/collections\/1_-02_11dad4ea-c112-4b1d-9050-4c3552440d00.jpg?v=1775027719","url":"https:\/\/chirakiracraft.com\/collections\/april-fools-2026_coupon-lottery.oembed","provider":"-手づくり本舗- Chira kira craft（チラキラ）","version":"1.0","type":"link"}