{
  "version": 3,
  "sources": ["/cdn/shop/t/1/assets/invite-engine.js?x=1794415662202"],
  "sourcesContent": ["(function (global) {\n'use strict';\nvar W = 1080, H = 1920, TAU = Math.PI * 2;\nvar clamp = function (v, a, b) { return Math.max(a === undefined ? 0 : a, Math.min(b === undefined ? 1 : b, v)); };\nvar ease = {\nout: function (t) { return 1 - Math.pow(1 - t, 3); },\nback: function (t) { var c1 = 1.70158, c3 = c1 + 1; return 1 + c3 * Math.pow(t - 1, 3) + c1 * Math.pow(t - 1, 2); }\n};\nfunction rng(seed) {\nvar s = (seed >>> 0) || 1;\nreturn function () { s ^= s << 13; s ^= s >>> 17; s ^= s << 5; return ((s >>> 0) % 1000000) / 1000000; };\n}\nfunction rgba(hex, a) {\nvar h = hex.replace('#', '');\nif (h.length === 3) h = h[0] + h[0] + h[1] + h[1] + h[2] + h[2];\nvar n = parseInt(h, 16);\nreturn 'rgba(' + (n >> 16 & 255) + ',' + (n >> 8 & 255) + ',' + (n & 255) + ',' + a + ')';\n}\nfunction heartPath(ctx, s) {\nctx.beginPath();\nctx.moveTo(0, s * 0.35);\nctx.bezierCurveTo(-s * 1.1, -s * 0.35, -s * 0.5, -s * 1.0, 0, -s * 0.4);\nctx.bezierCurveTo(s * 0.5, -s * 1.0, s * 1.1, -s * 0.35, 0, s * 0.35);\nctx.closePath();\n}\nfunction starPath(ctx, r, pts, inner) {\nctx.beginPath();\nfor (var i = 0; i < pts * 2; i++) {\nvar rr = i % 2 ? r * inner : r, a = i * Math.PI / pts - Math.PI / 2;\nctx[i ? 'lineTo' : 'moveTo'](Math.cos(a) * rr, Math.sin(a) * rr);\n}\nctx.closePath();\n}\nfunction petalPath(ctx, len, wid) {\nctx.beginPath();\nctx.moveTo(0, 0);\nctx.quadraticCurveTo(wid, -len * 0.5, 0, -len);\nctx.quadraticCurveTo(-wid, -len * 0.5, 0, 0);\nctx.closePath();\n}\nfunction roundRect(ctx, x, y, w, h, r) {\nctx.beginPath();\nctx.moveTo(x + r, y); ctx.lineTo(x + w - r, y); ctx.quadraticCurveTo(x + w, y, x + w, y + r);\nctx.lineTo(x + w, y + h - r); ctx.quadraticCurveTo(x + w, y + h, x + w - r, y + h);\nctx.lineTo(x + r, y + h); ctx.quadraticCurveTo(x, y + h, x, y + h - r);\nctx.lineTo(x, y + r); ctx.quadraticCurveTo(x, y, x + r, y); ctx.closePath();\n}\nfunction flower(ctx, x, y, r, col, center, rot, n) {\nctx.save(); ctx.translate(x, y); ctx.rotate(rot);\nctx.fillStyle = col;\nfor (var i = 0; i < (n || 5); i++) { ctx.rotate(TAU / (n || 5)); petalPath(ctx, r, r * 0.55); ctx.fill(); }\nctx.fillStyle = center; ctx.beginPath(); ctx.arc(0, 0, r * 0.22, 0, TAU); ctx.fill();\nctx.restore();\n}\nfunction leaf(ctx, x, y, len, rot, col) {\nctx.save(); ctx.translate(x, y); ctx.rotate(rot); ctx.fillStyle = col; petalPath(ctx, len, len * 0.3); ctx.fill(); ctx.restore();\n}\nfunction goldGrad(ctx, x0, x1, st, t) {\nvar w = (x1 - x0) || 1, shift = ((t * 0.18) % 1) * w * 2 - w;\nvar g = ctx.createLinearGradient(x0 - w + shift, 0, x1 + w + shift, 0);\nvar a = st.accent, hi = st.accentHi || '#fff6d6', lo = st.accentLo || a;\n[0, 0.33, 0.66, 1].forEach(function (p) { g.addColorStop(p, lo); });\n[0.12, 0.45, 0.78].forEach(function (p) { g.addColorStop(p, a); });\n[0.165, 0.5, 0.83].forEach(function (p) { g.addColorStop(p, hi); });\n[0.21, 0.55, 0.88].forEach(function (p) { g.addColorStop(p, a); });\nreturn g;\n}\nvar patternCache = {};\nfunction mandalaImage(color) {\nif (patternCache[color]) return patternCache[color];\nvar c = document.createElement('canvas'); c.width = c.height = 1000;\nvar x = c.getContext('2d'); x.translate(500, 500); x.strokeStyle = color; x.lineWidth = 3;\nfor (var k = 1; k <= 5; k++) {\nvar n = 8 + k * 4, r = k * 92;\nx.beginPath(); x.arc(0, 0, r, 0, TAU); x.stroke();\nfor (var i = 0; i < n; i++) {\nx.save(); x.rotate(i * TAU / n); x.translate(0, -r + 4);\npetalPath(x, 78, 30); x.stroke();\nx.beginPath(); x.arc(0, -90, 5, 0, TAU); x.stroke();\nx.restore();\n}\n}\nx.beginPath(); x.arc(0, 0, 30, 0, TAU); x.stroke();\npatternCache[color] = c; return c;\n}\nfunction drawBackground(ctx, st, t) {\nvar g = ctx.createLinearGradient(0, 0, W * 0.35, H);\nst.bg.forEach(function (c, i) { g.addColorStop(i / (st.bg.length - 1), c); });\nctx.fillStyle = g; ctx.fillRect(0, 0, W, H);\nvar pulse = 0.85 + 0.15 * Math.sin(t * 0.9);\nvar rg = ctx.createRadialGradient(W / 2, H * 0.45, 0, W / 2, H * 0.45, 900 * pulse);\nrg.addColorStop(0, st.glow || 'rgba(255,255,255,.18)'); rg.addColorStop(1, 'rgba(255,255,255,0)');\nctx.fillStyle = rg; ctx.fillRect(0, 0, W, H);\nif (st.pattern === 'mandala') {\nctx.save(); ctx.globalAlpha = st.patternAlpha || 0.09; ctx.translate(W / 2, H * 0.47); ctx.rotate(t * 0.04);\nctx.drawImage(mandalaImage(st.accent), -720, -720, 1440, 1440); ctx.restore();\n} else if (st.pattern === 'rays') {\nctx.save(); ctx.translate(W / 2, H * 0.45); ctx.rotate(t * 0.06); ctx.fillStyle = 'rgba(255,255,255,' + (st.patternAlpha || 0.07) + ')';\nfor (var i = 0; i < 16; i++) { ctx.rotate(TAU / 16); ctx.beginPath(); ctx.moveTo(0, 0); ctx.lineTo(-130, -1500); ctx.lineTo(130, -1500); ctx.closePath(); ctx.fill(); }\nctx.restore();\n} else if (st.pattern === 'gingham') {\nvar gc = st.patternColor || st.accent, ga = st.patternAlpha || 0.12, cell = st.patternCell || 90;\nctx.fillStyle = rgba(gc, ga);\nfor (var gx = 0; gx < W; gx += cell * 2) ctx.fillRect(gx, 0, cell, H);\nfor (var gy = 0; gy < H; gy += cell * 2) ctx.fillRect(0, gy, W, cell);\n} else if (st.pattern === 'hearts') {\nctx.fillStyle = rgba(st.patternColor || st.accent, st.patternAlpha || 0.1);\nfor (var hy = 0; hy < 16; hy++) for (var hx = 0; hx < 8; hx++) { ctx.save(); ctx.translate(hx * 150 + (hy % 2 ? 75 : 0), hy * 130 + 40); ctx.rotate((hx + hy) % 2 ? 0.25 : -0.25); heartPath(ctx, 16); ctx.fill(); ctx.restore(); }\n\n} else if (st.pattern === 'checker') {\nvar cc = st.patternCell || 80; ctx.fillStyle = rgba(st.patternColor || st.accent, st.patternAlpha || 0.08);\nfor (var cy = 0; cy < H / cc; cy++) for (var cx = 0; cx < W / cc; cx++) if ((cx + cy) % 2) ctx.fillRect(cx * cc, cy * cc, cc, cc);\n} else if (st.pattern === 'stripes') {\nctx.save(); ctx.fillStyle = rgba(st.patternColor || st.accent, st.patternAlpha || 0.07); ctx.translate(W / 2, H / 2); ctx.rotate(st.stripeAngle === undefined ? -0.5 : st.stripeAngle);\nfor (var sx = -1400; sx < 1400; sx += 140) ctx.fillRect(sx, -1400, 70, 2800); ctx.restore();\n\n} else if (st.pattern === 'dots') {\nctx.fillStyle = rgba(st.accent, st.patternAlpha || 0.1);\nfor (var yy = 0; yy < 22; yy++) for (var xx = 0; xx < 12; xx++) {\nctx.beginPath(); ctx.arc(xx * 100 + (yy % 2 ? 50 : 0), yy * 92 + 20, 7, 0, TAU); ctx.fill();\n}\n}\n}\nvar RISING = { balloons: 1, hearts: 1, bubbles: 1, lanterns: 1, butterflies: 1, notes: 1 };\nvar STATIC = { sparkles: 1, bokeh: 1, stars: 1, clouds: 1 };\nfunction drawParticles(ctx, st, t) {\nvar p = st.particles; if (!p) return;\nvar r = rng(p.seed || 7), n = p.count || 30, cols = p.colors, base = p.size || 22, speed = p.speed || 1;\nfor (var i = 0; i < n; i++) {\nvar x0 = r() * W, y0 = r() * (H + 300), sp = (0.5 + r()) * speed, sz = base * (0.55 + r() * 0.9),\nph = r() * TAU, col = cols[Math.floor(r() * cols.length)], rot = r() * TAU, x, y, a = 1;\nif (STATIC[p.type]) {\nx = x0 + Math.sin(t * 0.3 + ph) * 26; y = (y0 % H) + Math.cos(t * 0.25 + ph) * 26;\na = 0.25 + 0.75 * Math.abs(Math.sin(t * (0.8 + sp * 0.6) + ph));\n} else if (RISING[p.type]) {\ny = H + 160 - ((y0 + sp * 70 * t) % (H + 320)); x = x0 + Math.sin(t * 0.7 + ph) * 34;\n} else {\ny = ((y0 + sp * 95 * t) % (H + 320)) - 160; x = x0 + Math.sin(t * 0.9 + ph) * 46;\n}\nctx.save(); ctx.translate(x, y); ctx.globalAlpha = a * (p.alpha || 0.9);\nswitch (p.type) {\ncase 'petals':\nctx.rotate(rot + t * sp * 0.8); ctx.scale(1, 0.55 + 0.45 * Math.sin(t * 1.7 + ph));\nctx.fillStyle = col; ctx.translate(0, sz); petalPath(ctx, sz * 2, sz * 0.9); ctx.fill(); break;\ncase 'confetti':\nctx.rotate(rot + t * sp * 1.6); ctx.scale(Math.cos(t * 3 * sp + ph), 1);\nctx.fillStyle = col; ctx.fillRect(-sz * 0.6, -sz * 0.28, sz * 1.2, sz * 0.56); break;\ncase 'snow':\nctx.fillStyle = col; ctx.globalAlpha *= 0.85; ctx.beginPath(); ctx.arc(0, 0, sz * 0.5, 0, TAU); ctx.fill(); break;\ncase 'marigold':\nctx.rotate(rot + t * sp * 0.5); ctx.fillStyle = col;\nfor (var k = 0; k < 10; k++) { ctx.rotate(TAU / 10); ctx.beginPath(); ctx.arc(0, -sz * 0.62, sz * 0.36, 0, TAU); ctx.fill(); }\nctx.beginPath(); ctx.arc(0, 0, sz * 0.62, 0, TAU); ctx.fill();\nctx.fillStyle = 'rgba(160,60,0,.35)'; ctx.beginPath(); ctx.arc(0, 0, sz * 0.3, 0, TAU); ctx.fill(); break;\ncase 'balloons':\nctx.strokeStyle = 'rgba(255,255,255,.7)'; ctx.lineWidth = 2; ctx.beginPath(); ctx.moveTo(0, sz * 1.2);\nctx.quadraticCurveTo(sz * 0.3, sz * 2, 0, sz * 2.9); ctx.stroke();\nctx.fillStyle = col; ctx.beginPath(); ctx.ellipse(0, 0, sz, sz * 1.2, 0, 0, TAU); ctx.fill();\nctx.beginPath(); ctx.moveTo(-sz * 0.14, sz * 1.18); ctx.lineTo(sz * 0.14, sz * 1.18); ctx.lineTo(0, sz * 1.4); ctx.fill();\nctx.fillStyle = 'rgba(255,255,255,.35)'; ctx.beginPath(); ctx.ellipse(-sz * 0.35, -sz * 0.45, sz * 0.18, sz * 0.32, 0.5, 0, TAU); ctx.fill(); break;\ncase 'hearts':\nctx.rotate(Math.sin(t + ph) * 0.3); ctx.fillStyle = col; heartPath(ctx, sz); ctx.fill(); break;\ncase 'bubbles':\nctx.strokeStyle = col; ctx.lineWidth = 3; ctx.beginPath(); ctx.arc(0, 0, sz, 0, TAU); ctx.stroke();\nctx.fillStyle = rgba('#ffffff', 0.18); ctx.fill();\nctx.fillStyle = 'rgba(255,255,255,.7)'; ctx.beginPath(); ctx.arc(-sz * 0.35, -sz * 0.35, sz * 0.14, 0, TAU); ctx.fill(); break;\ncase 'lanterns':\nvar lg = ctx.createRadialGradient(0, 0, 0, 0, 0, sz * 2.4); lg.addColorStop(0, rgba(col, 0.55)); lg.addColorStop(1, rgba(col, 0));\nctx.fillStyle = lg; ctx.beginPath(); ctx.arc(0, 0, sz * 2.4, 0, TAU); ctx.fill();\nctx.fillStyle = col; roundRect(ctx, -sz * 0.55, -sz * 0.8, sz * 1.1, sz * 1.5, sz * 0.3); ctx.fill();\nctx.fillStyle = 'rgba(255,250,220,.8)'; ctx.beginPath(); ctx.ellipse(0, sz * 0.25, sz * 0.22, sz * 0.32, 0, 0, TAU); ctx.fill(); break;\ncase 'sparkles':\nctx.rotate(ph + t * 0.4); ctx.fillStyle = col; starPath(ctx, sz, 4, 0.22); ctx.fill(); break;\ncase 'butterflies':\nvar fl = 0.35 + 0.65 * Math.abs(Math.cos(t * 6 * sp + ph)); ctx.rotate(Math.sin(t + ph) * 0.4);\n[-1, 1].forEach(function (k) { ctx.save(); ctx.scale(k * fl, 1); ctx.fillStyle = col; ctx.beginPath(); ctx.ellipse(sz * 0.5, -sz * 0.3, sz * 0.55, sz * 0.42, 0.5, 0, TAU); ctx.fill(); ctx.globalAlpha *= 0.8; ctx.beginPath(); ctx.ellipse(sz * 0.35, sz * 0.32, sz * 0.32, sz * 0.26, -0.5, 0, TAU); ctx.fill(); ctx.restore(); });\nctx.fillStyle = 'rgba(70,50,90,.6)'; ctx.fillRect(-sz * 0.06, -sz * 0.45, sz * 0.12, sz * 0.9); break;\ncase 'stars':\nctx.rotate(ph + Math.sin(t * 0.6 + ph) * 0.3); ctx.fillStyle = col; ctx.strokeStyle = col; ctx.lineJoin = 'round'; ctx.lineWidth = sz * 0.25; starPath(ctx, sz, 5, 0.5); ctx.fill(); ctx.stroke(); break;\ncase 'daisies':\nctx.rotate(rot + t * sp * 0.6);\nfor (var q = 0; q < 10; q++) { ctx.rotate(TAU / 10); ctx.fillStyle = '#ffffff'; petalPath(ctx, sz, sz * 0.3); ctx.fill(); }\nctx.fillStyle = col; ctx.beginPath(); ctx.arc(0, 0, sz * 0.32, 0, TAU); ctx.fill(); break;\ncase 'clouds':\nctx.globalAlpha = (p.alpha || 0.7); ctx.translate(((t * 22 * sp + x0) % (W + 600)) - x - 300, 0); ctx.fillStyle = col; ctx.beginPath();\n[[-0.9, 0.15, 0.55], [-0.3, -0.2, 0.75], [0.4, -0.1, 0.7], [1.0, 0.18, 0.5], [0, 0.25, 0.6]].forEach(function (c) { ctx.moveTo(c[0] * sz + c[2] * sz, c[1] * sz); ctx.arc(c[0] * sz, c[1] * sz, c[2] * sz, 0, TAU); }); ctx.fill(); break;\n\ncase 'notes':\nctx.rotate(Math.sin(t * 1.5 + ph) * 0.3); ctx.fillStyle = col; ctx.strokeStyle = col; ctx.lineWidth = sz * 0.16;\nctx.beginPath(); ctx.ellipse(0, 0, sz * 0.42, sz * 0.3, -0.4, 0, TAU); ctx.fill();\nctx.beginPath(); ctx.moveTo(sz * 0.36, -sz * 0.08); ctx.lineTo(sz * 0.36, -sz * 1.3); ctx.quadraticCurveTo(sz * 0.8, -sz * 1.0, sz * 0.75, -sz * 0.6); ctx.stroke(); break;\n\ncase 'bokeh':\nvar bg = ctx.createRadialGradient(0, 0, 0, 0, 0, sz * 2); bg.addColorStop(0, rgba(col, 0.75)); bg.addColorStop(0.4, rgba(col, 0.3)); bg.addColorStop(1, rgba(col, 0));\nctx.fillStyle = bg; ctx.beginPath(); ctx.arc(0, 0, sz * 2, 0, TAU); ctx.fill(); break;\n}\nctx.restore();\n}\n}\nfunction strokeIn(ctx, len, p) { ctx.setLineDash([len * p, len]); }\nfunction drawFrame(ctx, st, t) {\nvar p = ease.out(clamp(t / 1.8)), f = st.frame;\nif (!f || f === 'none') return;\nctx.save(); ctx.lineCap = 'round';\nif (f === 'gold' || f === 'simple') {\nvar m = f === 'gold' ? 54 : 60, w = W - m * 2, h = H - m * 2, per = (w + h) * 2;\nctx.strokeStyle = f === 'gold' ? goldGrad(ctx, 0, W, st, t) : rgba(st.accent, 0.75);\nctx.lineWidth = f === 'gold' ? 5 : 4; strokeIn(ctx, per, p);\nroundRect(ctx, m, m, w, h, f === 'gold' ? 8 : 46); ctx.stroke();\nif (f === 'gold') {\nctx.lineWidth = 2; roundRect(ctx, m + 20, m + 20, w - 40, h - 40, 4); ctx.stroke();\nctx.setLineDash([]); ctx.globalAlpha = p; ctx.fillStyle = ctx.strokeStyle; ctx.lineWidth = 3;\n[[m, m, 0], [W - m, m, 1], [W - m, H - m, 2], [m, H - m, 3]].forEach(function (c) {\nctx.save(); ctx.translate(c[0], c[1]); ctx.rotate(c[2] * Math.PI / 2);\nctx.beginPath(); ctx.arc(64, 64, 44, Math.PI, Math.PI * 1.5); ctx.stroke();\nctx.beginPath(); ctx.arc(46, 46, 78, Math.PI * 0.05, Math.PI * 0.45); ctx.stroke();\nctx.save(); ctx.translate(46, 46); ctx.rotate(Math.PI / 4); ctx.fillRect(-11, -11, 22, 22); ctx.restore();\nctx.beginPath(); ctx.arc(150, 20, 6, 0, TAU); ctx.fill(); ctx.beginPath(); ctx.arc(20, 150, 6, 0, TAU); ctx.fill();\nctx.restore();\n});\n}\n} else if (f === 'arch') {\nctx.strokeStyle = goldGrad(ctx, 0, W, st, t); strokeIn(ctx, 5600, p);\n[0, 24].forEach(function (o, i) {\nvar l = 70 + o, r = W - 70 - o, b = H - 70 - o, sy = 600, top = 130 + o * 1.4;\nctx.lineWidth = i ? 2 : 5; ctx.beginPath(); ctx.moveTo(W / 2, top);\nctx.bezierCurveTo(W / 2 + 130, top + 150, r, sy - 300, r, sy); ctx.lineTo(r, b); ctx.lineTo(l, b); ctx.lineTo(l, sy);\nctx.bezierCurveTo(l, sy - 300, W / 2 - 130, top + 150, W / 2, top); ctx.stroke();\n});\nctx.setLineDash([]); ctx.globalAlpha = p; ctx.fillStyle = ctx.strokeStyle;\nctx.beginPath(); ctx.arc(W / 2, 104, 12, 0, TAU); ctx.fill();\nctx.save(); ctx.translate(W / 2, 70); petalPath(ctx, 40, 14); ctx.fill(); ctx.restore();\n} else if (f === 'mandala') {\nvar img = mandalaImage(st.accent);\nctx.globalAlpha = 0.55 * p;\n[[W / 2, -40, 1], [W / 2, H + 40, -1]].forEach(function (c) {\nctx.save(); ctx.translate(c[0], c[1]); ctx.rotate(t * 0.08 * c[2]); ctx.drawImage(img, -430, -430, 860, 860); ctx.restore();\n});\n} else if (f === 'floral') {\nvar fc = st.flowers || ['#e8a0ad', '#f4c6cf', '#d9798b'], lc = st.leaf || '#8fae8b', ce = st.accentHi || '#fff3c4';\n[[0, 0, 0], [W, H, Math.PI]].forEach(function (c) {\nctx.save(); ctx.translate(c[0], c[1]); ctx.rotate(c[2]); ctx.scale(p, p);\nvar sway = Math.sin(t * 0.8) * 0.04; ctx.rotate(sway);\n[[250, 40, 150, 1.9], [60, 250, 150, 2.9], [330, 150, 130, 2.0], [150, 330, 130, 2.7], [420, 50, 110, 1.75], [50, 430, 110, 3.0]]\n.forEach(function (l) { leaf(ctx, l[0], l[1], l[2], l[3], lc); });\nflower(ctx, 110, 110, 120, fc[0], ce, t * 0.05); flower(ctx, 290, 70, 80, fc[1], ce, 0.6 - t * 0.04);\nflower(ctx, 70, 290, 84, fc[2], ce, 1.1 + t * 0.04); flower(ctx, 230, 220, 62, fc[1], ce, 0.3);\nflower(ctx, 420, 110, 50, fc[2], ce, 0.9); flower(ctx, 110, 420, 50, fc[0], ce, 0.2);\nctx.restore();\n});\n}\nctx.restore();\n}\nfunction flame(ctx, x, y, s, t, ph) {\nvar fl = 1 + 0.12 * Math.sin(t * 9 + ph) + 0.06 * Math.sin(t * 17 + ph);\nctx.save(); ctx.translate(x, y);\nvar g = ctx.createRadialGradient(0, -s * 0.4, 0, 0, -s * 0.4, s * 2.4); g.addColorStop(0, 'rgba(255,200,90,.55)'); g.addColorStop(1, 'rgba(255,200,90,0)');\nctx.fillStyle = g; ctx.beginPath(); ctx.arc(0, -s * 0.4, s * 2.4, 0, TAU); ctx.fill();\nctx.scale(1, fl); ctx.fillStyle = '#ffb030';\nctx.beginPath(); ctx.moveTo(0, -s); ctx.quadraticCurveTo(s * 0.6, -s * 0.1, 0, 0); ctx.quadraticCurveTo(-s * 0.6, -s * 0.1, 0, -s); ctx.fill();\nctx.fillStyle = '#fff3b0'; ctx.beginPath(); ctx.moveTo(0, -s * 0.6); ctx.quadraticCurveTo(s * 0.28, -s * 0.08, 0, -s * 0.04); ctx.quadraticCurveTo(-s * 0.28, -s * 0.08, 0, -s * 0.6); ctx.fill();\nctx.restore();\n}\nvar emblems = {\ntrophy: function (ctx, s, t, st) {\n  var g = goldGrad(ctx, -s * 0.35, s * 0.35, st, t);\n  ctx.strokeStyle = g; ctx.lineWidth = s * 0.05;\n  ctx.beginPath(); ctx.arc(-s * 0.27, -s * 0.12, s * 0.11, Math.PI * 0.5, Math.PI * 1.5); ctx.stroke();\n  ctx.beginPath(); ctx.arc(s * 0.27, -s * 0.12, s * 0.11, -Math.PI * 0.5, Math.PI * 0.5); ctx.stroke();\n  ctx.fillStyle = g; ctx.beginPath(); ctx.moveTo(-s * 0.27, -s * 0.3); ctx.lineTo(s * 0.27, -s * 0.3); ctx.bezierCurveTo(s * 0.27, s * 0.02, s * 0.12, s * 0.1, s * 0.05, s * 0.12); ctx.lineTo(-s * 0.05, s * 0.12); ctx.bezierCurveTo(-s * 0.12, s * 0.1, -s * 0.27, s * 0.02, -s * 0.27, -s * 0.3); ctx.fill();\n  ctx.fillRect(-s * 0.04, s * 0.11, s * 0.08, s * 0.13); roundRect(ctx, -s * 0.15, s * 0.22, s * 0.3, s * 0.06, s * 0.02); ctx.fill();\n  ctx.fillStyle = st.trophyBase || '#3b2a1a'; roundRect(ctx, -s * 0.22, s * 0.28, s * 0.44, s * 0.14, s * 0.03); ctx.fill();\n  ctx.fillStyle = g; roundRect(ctx, -s * 0.12, s * 0.32, s * 0.24, s * 0.06, s * 0.01); ctx.fill();\n  ctx.save(); ctx.translate(0, -s * 0.12); ctx.rotate(Math.sin(t * 1.5) * 0.1); ctx.fillStyle = rgba('#ffffff', 0.85); starPath(ctx, s * 0.09, 5, 0.45); ctx.fill(); ctx.restore();\n  ctx.save(); ctx.translate(s * 0.2, -s * 0.36); ctx.globalAlpha *= Math.abs(Math.sin(t * 2.4)); ctx.fillStyle = '#ffffff'; starPath(ctx, s * 0.06, 4, 0.2); ctx.fill(); ctx.restore();\n},\nlion: function (ctx, s, t, st) {\n  var mane = st.mane || ['#d9822b', '#b85c1a'], face = st.lionFace || '#f5c26b', dark = '#4a2a12';\n  ctx.save(); ctx.rotate(Math.sin(t * 1.3) * 0.06);\n  for (var i = 0; i < 14; i++) { ctx.save(); ctx.rotate(i * TAU / 14 + Math.sin(t * 2 + i) * 0.03); ctx.fillStyle = mane[i % 2]; ctx.beginPath(); ctx.ellipse(0, -s * 0.3, s * 0.11, s * 0.16, 0, 0, TAU); ctx.fill(); ctx.restore(); }\n  ctx.fillStyle = mane[0]; ctx.beginPath(); ctx.arc(0, 0, s * 0.3, 0, TAU); ctx.fill();\n  [-1, 1].forEach(function (k) { ctx.fillStyle = face; ctx.beginPath(); ctx.arc(k * s * 0.17, -s * 0.2, s * 0.07, 0, TAU); ctx.fill(); ctx.fillStyle = '#e8a1a1'; ctx.beginPath(); ctx.arc(k * s * 0.17, -s * 0.2, s * 0.035, 0, TAU); ctx.fill(); });\n  ctx.fillStyle = face; ctx.beginPath(); ctx.ellipse(0, s * 0.01, s * 0.24, s * 0.23, 0, 0, TAU); ctx.fill();\n  ctx.fillStyle = '#fff3dc'; ctx.beginPath(); ctx.ellipse(0, s * 0.1, s * 0.12, s * 0.09, 0, 0, TAU); ctx.fill();\n  var blink = (t % 3.4) < 0.14 ? 0.15 : 1;\n  [-1, 1].forEach(function (k) { ctx.fillStyle = dark; ctx.beginPath(); ctx.ellipse(k * s * 0.09, -s * 0.04, s * 0.026, s * 0.034 * blink, 0, 0, TAU); ctx.fill(); });\n  ctx.fillStyle = '#6b3a1e'; ctx.beginPath(); ctx.moveTo(-s * 0.05, s * 0.05); ctx.lineTo(s * 0.05, s * 0.05); ctx.lineTo(0, s * 0.1); ctx.closePath(); ctx.fill();\n  ctx.strokeStyle = dark; ctx.lineWidth = s * 0.012; ctx.lineCap = 'round'; ctx.beginPath(); ctx.moveTo(0, s * 0.1); ctx.lineTo(0, s * 0.13); ctx.arc(-s * 0.03, s * 0.13, s * 0.03, 0, Math.PI * 0.8); ctx.moveTo(0, s * 0.13); ctx.arc(s * 0.03, s * 0.13, s * 0.03, Math.PI, Math.PI * 0.2, true); ctx.stroke();\n  ctx.fillStyle = rgba('#ff8a65', 0.45); [-1, 1].forEach(function (k) { ctx.beginPath(); ctx.ellipse(k * s * 0.15, s * 0.07, s * 0.035, s * 0.022, 0, 0, TAU); ctx.fill(); });\n  ctx.restore();\n},\nracecar: function (ctx, s, t, st) {\n  ctx.scale(1.3, 1.3);\n  var c = st.car || '#e63946', bob = Math.abs(Math.sin(t * 8)) * s * 0.008;\n  ctx.strokeStyle = rgba('#ffffff', 0.6); ctx.lineCap = 'round';\n  for (var i = 0; i < 4; i++) { var ph = (t * 1.6 + i * 0.25) % 1; ctx.save(); ctx.lineWidth = s * 0.018; ctx.globalAlpha *= 1 - ph; ctx.beginPath(); ctx.moveTo(-s * (0.42 + ph * 0.2), -s * 0.04 + i * s * 0.05); ctx.lineTo(-s * (0.52 + ph * 0.3), -s * 0.04 + i * s * 0.05); ctx.stroke(); ctx.restore(); }\n  ctx.translate(0, -bob);\n  ctx.fillStyle = c; ctx.beginPath(); ctx.moveTo(-s * 0.44, s * 0.12); ctx.lineTo(-s * 0.44, s * 0.0); ctx.quadraticCurveTo(-s * 0.4, -s * 0.06, -s * 0.28, -s * 0.06); ctx.lineTo(-s * 0.14, -s * 0.06); ctx.quadraticCurveTo(-s * 0.06, -s * 0.2, s * 0.08, -s * 0.18); ctx.quadraticCurveTo(s * 0.18, -s * 0.16, s * 0.22, -s * 0.06); ctx.lineTo(s * 0.4, -s * 0.03); ctx.quadraticCurveTo(s * 0.46, s * 0.02, s * 0.45, s * 0.12); ctx.closePath(); ctx.fill();\n  ctx.fillStyle = st.carDark || '#9e1f2b'; ctx.fillRect(-s * 0.5, -s * 0.12, s * 0.1, s * 0.04); ctx.fillRect(-s * 0.46, -s * 0.1, s * 0.03, s * 0.1);\n  ctx.fillStyle = rgba('#bfe6ff', 0.95); ctx.beginPath(); ctx.moveTo(-s * 0.08, -s * 0.07); ctx.quadraticCurveTo(-s * 0.02, -s * 0.16, s * 0.07, -s * 0.15); ctx.quadraticCurveTo(s * 0.14, -s * 0.13, s * 0.16, -s * 0.07); ctx.closePath(); ctx.fill();\n  ctx.fillStyle = '#ffffff'; ctx.fillRect(-s * 0.44, s * 0.03, s * 0.88, s * 0.025);\n  ctx.beginPath(); ctx.arc(-s * 0.22, s * 0.0, s * 0.07, 0, TAU); ctx.fill();\n  ctx.fillStyle = '#1a1a1a'; ctx.font = '700 ' + Math.round(s * 0.09) + 'px Arial, sans-serif'; ctx.textAlign = 'center'; ctx.textBaseline = 'middle'; ctx.fillText(st.carNumber || '2', -s * 0.22, s * 0.005);\n  [-0.26, 0.28].forEach(function (x) {\n    ctx.save(); ctx.translate(x * s, s * 0.13); ctx.fillStyle = '#1e1e24'; ctx.beginPath(); ctx.arc(0, 0, s * 0.1, 0, TAU); ctx.fill(); ctx.fillStyle = '#c9ccd6'; ctx.beginPath(); ctx.arc(0, 0, s * 0.05, 0, TAU); ctx.fill();\n    ctx.rotate(t * 12); ctx.strokeStyle = '#6b6e78'; ctx.lineWidth = s * 0.012; for (var k = 0; k < 3; k++) { ctx.rotate(TAU / 3); ctx.beginPath(); ctx.moveTo(0, 0); ctx.lineTo(0, s * 0.045); ctx.stroke(); } ctx.restore();\n  });\n},\nsun: function (ctx, s, t, st) {\n  ctx.save(); ctx.rotate(t * 0.3); ctx.fillStyle = st.rays || '#ffb703';\n  for (var i = 0; i < 12; i++) { ctx.rotate(TAU / 12); ctx.beginPath(); ctx.moveTo(-s * 0.05, -s * 0.3); ctx.lineTo(0, -s * (0.44 + (i % 2 ? 0 : 0.04))); ctx.lineTo(s * 0.05, -s * 0.3); ctx.closePath(); ctx.fill(); }\n  ctx.restore();\n  var g = ctx.createRadialGradient(-s * 0.06, -s * 0.06, s * 0.02, 0, 0, s * 0.3); g.addColorStop(0, '#fff3a0'); g.addColorStop(1, '#ffc93c');\n  ctx.fillStyle = g; ctx.beginPath(); ctx.arc(0, 0, s * 0.27, 0, TAU); ctx.fill();\n  if (st.cuteFace) {\n    var blink = (t % 3.3) < 0.14 ? 0.15 : 1;\n    ctx.fillStyle = '#6b4300'; [-1, 1].forEach(function (k) { ctx.beginPath(); ctx.ellipse(k * s * 0.08, -s * 0.03, s * 0.025, s * 0.035 * blink, 0, 0, TAU); ctx.fill(); });\n    ctx.strokeStyle = '#6b4300'; ctx.lineWidth = s * 0.018; ctx.lineCap = 'round'; ctx.beginPath(); ctx.arc(0, s * 0.03, s * 0.08, 0.25, Math.PI - 0.25); ctx.stroke();\n    ctx.fillStyle = rgba('#ff7a59', 0.45); [-1, 1].forEach(function (k) { ctx.beginPath(); ctx.ellipse(k * s * 0.16, s * 0.06, s * 0.04, s * 0.025, 0, 0, TAU); ctx.fill(); });\n  }\n},\ncompass: function (ctx, s, t, st) {\n  var g = goldGrad(ctx, -s * 0.4, s * 0.4, st, t);\n  ctx.fillStyle = g; ctx.beginPath(); ctx.arc(0, 0, s * 0.38, 0, TAU); ctx.fill();\n  ctx.beginPath(); ctx.arc(0, -s * 0.42, s * 0.05, 0, TAU); ctx.fill();\n  ctx.fillStyle = '#fbf3e0'; ctx.beginPath(); ctx.arc(0, 0, s * 0.32, 0, TAU); ctx.fill();\n  ctx.strokeStyle = rgba('#5a4630', 0.6); ctx.lineWidth = 2;\n  for (var i = 0; i < 16; i++) { ctx.save(); ctx.rotate(i * TAU / 16); ctx.beginPath(); ctx.moveTo(0, -s * 0.31); ctx.lineTo(0, -s * (i % 4 ? 0.28 : 0.25)); ctx.stroke(); ctx.restore(); }\n  ctx.fillStyle = '#5a4630'; ctx.font = '700 ' + Math.round(s * 0.07) + 'px Georgia, serif'; ctx.textAlign = 'center'; ctx.textBaseline = 'middle';\n  [['N', 0, -0.2], ['E', 0.2, 0], ['S', 0, 0.2], ['W', -0.2, 0]].forEach(function (d) { ctx.fillText(d[0], d[1] * s, d[2] * s); });\n  ctx.save(); ctx.rotate(0.6 + Math.sin(t * 1.4) * 0.35 + Math.sin(t * 3.7) * 0.08);\n  ctx.fillStyle = st.needle || '#d64545'; ctx.beginPath(); ctx.moveTo(0, -s * 0.24); ctx.lineTo(s * 0.045, 0); ctx.lineTo(-s * 0.045, 0); ctx.closePath(); ctx.fill();\n  ctx.fillStyle = '#34506b'; ctx.beginPath(); ctx.moveTo(0, s * 0.24); ctx.lineTo(s * 0.045, 0); ctx.lineTo(-s * 0.045, 0); ctx.closePath(); ctx.fill();\n  ctx.fillStyle = g; ctx.beginPath(); ctx.arc(0, 0, s * 0.03, 0, TAU); ctx.fill(); ctx.restore();\n},\ndino: function (ctx, s, t, st) {\n  var c = st.dino || '#5aa84a', belly = st.dinoBelly || '#d8f0a8', sp = st.spikes || '#f2a33a', step = Math.sin(t * 4) * s * 0.012;\n  ctx.translate(0, Math.abs(Math.sin(t * 4)) * -s * 0.01);\n  ctx.fillStyle = c;\n  ctx.beginPath(); ctx.moveTo(-s * 0.12, s * 0.1); ctx.quadraticCurveTo(-s * 0.36, s * 0.12, -s * 0.48, -s * 0.02 + Math.sin(t * 2) * s * 0.02); ctx.quadraticCurveTo(-s * 0.32, s * 0.22, -s * 0.06, s * 0.24); ctx.closePath(); ctx.fill();\n  ctx.fillStyle = sp; for (var i = 0; i < 5; i++) { var x = -s * 0.22 + i * s * 0.1, y = -s * 0.08 - Math.sin(i / 4 * Math.PI) * s * 0.07; ctx.beginPath(); ctx.moveTo(x - s * 0.04, y + s * 0.03); ctx.lineTo(x, y - s * 0.06); ctx.lineTo(x + s * 0.04, y + s * 0.03); ctx.closePath(); ctx.fill(); }\n  ctx.fillStyle = c; ctx.beginPath(); ctx.ellipse(-s * 0.02, s * 0.08, s * 0.24, s * 0.18, 0, 0, TAU); ctx.fill();\n  ctx.beginPath(); ctx.moveTo(s * 0.12, s * 0.0); ctx.quadraticCurveTo(s * 0.18, -s * 0.18, s * 0.2, -s * 0.22); ctx.lineTo(s * 0.32, -s * 0.18); ctx.quadraticCurveTo(s * 0.26, -s * 0.02, s * 0.2, s * 0.08); ctx.closePath(); ctx.fill();\n  ctx.beginPath(); ctx.ellipse(s * 0.28, -s * 0.26, s * 0.15, s * 0.11, 0.15, 0, TAU); ctx.fill();\n  ctx.fillStyle = belly; ctx.beginPath(); ctx.ellipse(s * 0.04, s * 0.12, s * 0.14, s * 0.1, -0.2, 0, TAU); ctx.fill();\n  ctx.fillStyle = c; [[-0.14, step], [0.1, -step]].forEach(function (l) { roundRect(ctx, l[0] * s - s * 0.05, s * 0.18 + l[1], s * 0.1, s * 0.2, s * 0.04); ctx.fill(); });\n  var blink = (t % 3) < 0.13 ? 0.15 : 1;\n  ctx.fillStyle = '#ffffff'; ctx.beginPath(); ctx.arc(s * 0.3, -s * 0.3, s * 0.045, 0, TAU); ctx.fill();\n  ctx.fillStyle = '#1e2a14'; ctx.beginPath(); ctx.ellipse(s * 0.31, -s * 0.3, s * 0.025, s * 0.03 * blink, 0, 0, TAU); ctx.fill();\n  ctx.strokeStyle = '#1e2a14'; ctx.lineWidth = s * 0.012; ctx.lineCap = 'round'; ctx.beginPath(); ctx.arc(s * 0.33, -s * 0.24, s * 0.06, 0.3, 1.2); ctx.stroke();\n  ctx.fillStyle = rgba('#ff8a8a', 0.5); ctx.beginPath(); ctx.ellipse(s * 0.22, -s * 0.22, s * 0.03, s * 0.02, 0, 0, TAU); ctx.fill();\n},\ncontroller: function (ctx, s, t, st) {\n  var body = st.pad || '#3d3d4e', glow = 0.6 + 0.4 * Math.sin(t * 3);\n  ctx.rotate(Math.sin(t * 1.2) * 0.07);\n  var gl = ctx.createRadialGradient(0, 0, 0, 0, 0, s * 0.6); gl.addColorStop(0, rgba(st.accent, 0.35 * glow)); gl.addColorStop(1, rgba(st.accent, 0));\n  ctx.fillStyle = gl; ctx.beginPath(); ctx.arc(0, 0, s * 0.6, 0, TAU); ctx.fill();\n  ctx.fillStyle = body; ctx.beginPath(); ctx.moveTo(-s * 0.28, -s * 0.14); ctx.lineTo(s * 0.28, -s * 0.14); ctx.bezierCurveTo(s * 0.46, -s * 0.14, s * 0.5, s * 0.08, s * 0.44, s * 0.2); ctx.bezierCurveTo(s * 0.4, s * 0.3, s * 0.3, s * 0.28, s * 0.22, s * 0.14); ctx.lineTo(-s * 0.22, s * 0.14); ctx.bezierCurveTo(-s * 0.3, s * 0.28, -s * 0.4, s * 0.3, -s * 0.44, s * 0.2); ctx.bezierCurveTo(-s * 0.5, s * 0.08, -s * 0.46, -s * 0.14, -s * 0.28, -s * 0.14); ctx.fill();\n  ctx.fillStyle = '#e8e8f0'; ctx.fillRect(-s * 0.3, -s * 0.03, s * 0.14, s * 0.045); ctx.fillRect(-s * 0.255, -s * 0.075, s * 0.045, s * 0.135);\n  var bc = ['#ff4d6d', '#39d98a', '#4dabff', '#ffd23f'];\n  [[0.27, -0.07], [0.33, -0.01], [0.27, 0.05], [0.21, -0.01]].forEach(function (b, i) { ctx.save(); ctx.fillStyle = bc[i]; ctx.globalAlpha *= (i === Math.floor(t * 2) % 4) ? 1 : 0.75; ctx.beginPath(); ctx.arc(b[0] * s, b[1] * s, s * 0.032, 0, TAU); ctx.fill(); ctx.restore(); });\n  ctx.fillStyle = '#5c5c70'; [-0.09, 0.09].forEach(function (x) { ctx.beginPath(); ctx.arc(x * s, s * 0.06, s * 0.045, 0, TAU); ctx.fill(); });\n  ctx.fillStyle = st.accent; roundRect(ctx, -s * 0.05, -s * 0.07, s * 0.1, s * 0.03, s * 0.015); ctx.fill();\n},\nbolt: function (ctx, s, t, st) {\n  var red = st.shield || '#e53935', rim = st.rim || '#ffd23f', pulse = 1 + 0.04 * Math.sin(t * 4);\n  ctx.save(); ctx.globalAlpha *= 0.5; var gl = ctx.createRadialGradient(0, 0, 0, 0, 0, s * 0.62); gl.addColorStop(0, rgba(rim, 0.7)); gl.addColorStop(1, rgba(rim, 0)); ctx.fillStyle = gl; ctx.beginPath(); ctx.arc(0, 0, s * 0.62, 0, TAU); ctx.fill(); ctx.restore();\n  ctx.scale(pulse, pulse);\n  function shield(r) { ctx.beginPath(); ctx.moveTo(0, -r); ctx.quadraticCurveTo(r * 0.75, -r * 0.95, r * 0.9, -r * 0.7); ctx.quadraticCurveTo(r * 0.95, r * 0.3, 0, r * 1.05); ctx.quadraticCurveTo(-r * 0.95, r * 0.3, -r * 0.9, -r * 0.7); ctx.quadraticCurveTo(-r * 0.75, -r * 0.95, 0, -r); ctx.closePath(); }\n  ctx.fillStyle = rim; shield(s * 0.42); ctx.fill(); ctx.fillStyle = red; shield(s * 0.35); ctx.fill();\n  ctx.fillStyle = rim; ctx.beginPath(); ctx.moveTo(s * 0.06, -s * 0.28); ctx.lineTo(-s * 0.14, s * 0.04); ctx.lineTo(-s * 0.01, s * 0.04); ctx.lineTo(-s * 0.07, s * 0.3); ctx.lineTo(s * 0.15, -s * 0.04); ctx.lineTo(s * 0.02, -s * 0.04); ctx.closePath(); ctx.fill();\n  ctx.fillStyle = rgba('#ffffff', 0.25); ctx.beginPath(); ctx.ellipse(-s * 0.15, -s * 0.18, s * 0.06, s * 0.12, 0.5, 0, TAU); ctx.fill();\n},\nmedal: function (ctx, s, t, st) {\n  var rc = st.ribbon || ['#c62828', '#1565c0'];\n  ctx.fillStyle = rc[0]; ctx.beginPath(); ctx.moveTo(-s * 0.2, -s * 0.46); ctx.lineTo(-s * 0.04, -s * 0.46); ctx.lineTo(s * 0.06, -s * 0.06); ctx.lineTo(-s * 0.08, -s * 0.02); ctx.closePath(); ctx.fill();\n  ctx.fillStyle = rc[1]; ctx.beginPath(); ctx.moveTo(s * 0.2, -s * 0.46); ctx.lineTo(s * 0.04, -s * 0.46); ctx.lineTo(-s * 0.06, -s * 0.06); ctx.lineTo(s * 0.08, -s * 0.02); ctx.closePath(); ctx.fill();\n  ctx.save(); ctx.translate(0, s * 0.14); ctx.rotate(Math.sin(t * 1.6) * 0.08);\n  var g = goldGrad(ctx, -s * 0.25, s * 0.25, st, t);\n  ctx.fillStyle = g; ctx.beginPath(); for (var i = 0; i < 24; i++) { var a = i * TAU / 24, r = s * (i % 2 ? 0.25 : 0.27); ctx[i ? 'lineTo' : 'moveTo'](Math.cos(a) * r, Math.sin(a) * r); } ctx.closePath(); ctx.fill();\n  ctx.fillStyle = st.accentLo || '#b8862f'; ctx.beginPath(); ctx.arc(0, 0, s * 0.2, 0, TAU); ctx.fill();\n  ctx.fillStyle = g; starPath(ctx, s * 0.13, 5, 0.45); ctx.fill();\n  ctx.restore();\n  ctx.save(); ctx.translate(s * 0.2, s * 0.0); ctx.globalAlpha *= Math.abs(Math.sin(t * 2.2)); ctx.fillStyle = '#ffffff'; starPath(ctx, s * 0.06, 4, 0.2); ctx.fill(); ctx.restore();\n},\nsunglasses: function (ctx, s, t, st) {\n  var fr = st.shades || '#ff4081', lens = st.lens || '#1a1a2e';\n  ctx.rotate(-0.08 + Math.sin(t * 1.5) * 0.06);\n  ctx.strokeStyle = fr; ctx.lineWidth = s * 0.04; ctx.lineCap = 'round';\n  ctx.beginPath(); ctx.moveTo(-s * 0.4, -s * 0.08); ctx.lineTo(-s * 0.48, -s * 0.14); ctx.moveTo(s * 0.4, -s * 0.08); ctx.lineTo(s * 0.48, -s * 0.14); ctx.stroke();\n  ctx.beginPath(); ctx.moveTo(-s * 0.06, -s * 0.06); ctx.quadraticCurveTo(0, -s * 0.11, s * 0.06, -s * 0.06); ctx.stroke();\n  [-1, 1].forEach(function (k) {\n    ctx.save(); ctx.translate(k * s * 0.22, 0);\n    ctx.fillStyle = fr; roundRect(ctx, -s * 0.19, -s * 0.13, s * 0.38, s * 0.26, s * 0.1); ctx.fill();\n    ctx.fillStyle = lens; roundRect(ctx, -s * 0.16, -s * 0.1, s * 0.32, s * 0.2, s * 0.08); ctx.fill();\n    ctx.save(); roundRect(ctx, -s * 0.16, -s * 0.1, s * 0.32, s * 0.2, s * 0.08); ctx.clip();\n    var sw = ((t * 0.5) % 1.6) * s * 0.6 - s * 0.4; ctx.fillStyle = rgba('#ffffff', 0.35); ctx.beginPath(); ctx.moveTo(sw - s * 0.05, -s * 0.12); ctx.lineTo(sw + s * 0.03, -s * 0.12); ctx.lineTo(sw - s * 0.07, s * 0.12); ctx.lineTo(sw - s * 0.15, s * 0.12); ctx.closePath(); ctx.fill(); ctx.restore();\n    ctx.restore();\n  });\n  ctx.save(); ctx.translate(s * 0.36, -s * 0.16); ctx.globalAlpha *= Math.abs(Math.sin(t * 2.5)); ctx.fillStyle = '#ffffff'; starPath(ctx, s * 0.07, 4, 0.2); ctx.fill(); ctx.restore();\n},\nrocket: function (ctx, s, t, st) {\n  var shake = Math.sin(t * 30) * s * 0.004; ctx.translate(shake, Math.sin(t * 1.4) * s * 0.03); ctx.rotate(0.35);\n  for (var i = 0; i < 5; i++) { var ph = (t * 0.9 + i * 0.2) % 1; ctx.save(); ctx.globalAlpha *= (1 - ph) * 0.7; ctx.fillStyle = '#e8e8f2'; ctx.beginPath(); ctx.arc(Math.sin(i * 2 + t) * s * 0.05, s * (0.36 + ph * 0.3), s * (0.05 + ph * 0.07), 0, TAU); ctx.fill(); ctx.restore(); }\n  flame(ctx, 0, s * 0.36, s * 0.14, t, 0);\n  ctx.fillStyle = st.fin || '#e53935';\n  [-1, 1].forEach(function (k) { ctx.beginPath(); ctx.moveTo(k * s * 0.09, s * 0.08); ctx.quadraticCurveTo(k * s * 0.24, s * 0.16, k * s * 0.2, s * 0.34); ctx.lineTo(k * s * 0.08, s * 0.24); ctx.closePath(); ctx.fill(); });\n  var g = ctx.createLinearGradient(-s * 0.12, 0, s * 0.12, 0); g.addColorStop(0, '#d9dce8'); g.addColorStop(0.45, '#ffffff'); g.addColorStop(1, '#b9bdcc');\n  ctx.fillStyle = g; ctx.beginPath(); ctx.moveTo(0, -s * 0.44); ctx.bezierCurveTo(s * 0.18, -s * 0.28, s * 0.14, s * 0.12, s * 0.09, s * 0.28); ctx.lineTo(-s * 0.09, s * 0.28); ctx.bezierCurveTo(-s * 0.14, s * 0.12, -s * 0.18, -s * 0.28, 0, -s * 0.44); ctx.fill();\n  ctx.fillStyle = st.fin || '#e53935'; ctx.beginPath(); ctx.moveTo(0, -s * 0.44); ctx.bezierCurveTo(s * 0.09, -s * 0.36, s * 0.12, -s * 0.3, s * 0.13, -s * 0.26); ctx.lineTo(-s * 0.13, -s * 0.26); ctx.bezierCurveTo(-s * 0.12, -s * 0.3, -s * 0.09, -s * 0.36, 0, -s * 0.44); ctx.fill();\n  ctx.fillStyle = '#34506b'; ctx.beginPath(); ctx.arc(0, -s * 0.1, s * 0.075, 0, TAU); ctx.fill(); ctx.fillStyle = '#8fd3ff'; ctx.beginPath(); ctx.arc(0, -s * 0.1, s * 0.055, 0, TAU); ctx.fill();\n  ctx.fillStyle = rgba('#ffffff', 0.7); ctx.beginPath(); ctx.arc(-s * 0.02, -s * 0.12, s * 0.015, 0, TAU); ctx.fill();\n  ctx.fillStyle = st.fin || '#e53935'; ctx.fillRect(-s * 0.015, s * 0.08, s * 0.03, s * 0.2);\n},\nmustache: function (ctx, s, t, st) {\n  var tie = st.bowtie || '#1f3a5f', mc = st.stache || '#3b2a1e', w = Math.sin(t * 2.2) * 0.05;\n  ctx.save(); ctx.translate(0, -s * 0.12); ctx.rotate(w);\n  ctx.fillStyle = mc;\n  [-1, 1].forEach(function (k) { ctx.beginPath(); ctx.moveTo(0, -s * 0.02); ctx.bezierCurveTo(k * s * 0.08, -s * 0.1, k * s * 0.2, -s * 0.08, k * s * 0.26, -s * 0.0); ctx.bezierCurveTo(k * s * 0.32, s * 0.06, k * s * 0.42, s * 0.0, k * s * 0.4, -s * 0.08); ctx.bezierCurveTo(k * s * 0.46, s * 0.06, k * s * 0.3, s * 0.12, k * s * 0.2, s * 0.06); ctx.bezierCurveTo(k * s * 0.12, s * 0.02, k * s * 0.05, s * 0.06, 0, s * 0.04); ctx.closePath(); ctx.fill(); });\n  ctx.restore();\n  ctx.save(); ctx.translate(0, s * 0.2); ctx.rotate(-w * 0.6);\n  ctx.fillStyle = tie;\n  [-1, 1].forEach(function (k) { ctx.beginPath(); ctx.moveTo(0, 0); ctx.lineTo(k * s * 0.24, -s * 0.12); ctx.quadraticCurveTo(k * s * 0.28, 0, k * s * 0.24, s * 0.12); ctx.closePath(); ctx.fill(); });\n  ctx.fillStyle = rgba('#ffffff', 0.25); [-1, 1].forEach(function (k) { for (var i = 0; i < 3; i++) { ctx.beginPath(); ctx.arc(k * s * (0.1 + i * 0.05), (i - 1) * s * 0.035, s * 0.012, 0, TAU); ctx.fill(); } });\n  ctx.fillStyle = st.bowtieKnot || tie; roundRect(ctx, -s * 0.05, -s * 0.06, s * 0.1, s * 0.12, s * 0.03); ctx.fill();\n  ctx.fillStyle = rgba('#000000', 0.15); roundRect(ctx, -s * 0.05, -s * 0.06, s * 0.1, s * 0.12, s * 0.03); ctx.fill();\n  ctx.restore();\n},\nsoccer: function (ctx, s, t, st) {\n  var bounce = Math.abs(Math.sin(t * 2.6)) * s * 0.08;\n  ctx.fillStyle = rgba('#000000', 0.18); ctx.beginPath(); ctx.ellipse(0, s * 0.42, s * (0.26 - bounce * 0.6 / s), s * 0.04, 0, 0, TAU); ctx.fill();\n  ctx.translate(0, -bounce); ctx.rotate(t * 0.8);\n  var r = s * 0.32, g = ctx.createRadialGradient(-r * 0.3, -r * 0.3, r * 0.1, 0, 0, r); g.addColorStop(0, '#ffffff'); g.addColorStop(1, '#d8dbe2');\n  ctx.fillStyle = g; ctx.beginPath(); ctx.arc(0, 0, r, 0, TAU); ctx.fill();\n  ctx.save(); ctx.beginPath(); ctx.arc(0, 0, r, 0, TAU); ctx.clip();\n  function pent(x, y, rr, rot) { ctx.beginPath(); for (var i = 0; i < 5; i++) { var a = rot + i * TAU / 5 - Math.PI / 2; ctx[i ? 'lineTo' : 'moveTo'](x + Math.cos(a) * rr, y + Math.sin(a) * rr); } ctx.closePath(); ctx.fill(); }\n  ctx.fillStyle = '#22252e'; pent(0, 0, r * 0.32, 0);\n  for (var i = 0; i < 5; i++) { var a = i * TAU / 5 - Math.PI / 2; pent(Math.cos(a) * r * 0.95, Math.sin(a) * r * 0.95, r * 0.3, Math.PI / 5 + a + Math.PI / 2); }\n  ctx.strokeStyle = '#22252e'; ctx.lineWidth = s * 0.01;\n  for (var j = 0; j < 5; j++) { var b = j * TAU / 5 - Math.PI / 2; ctx.beginPath(); ctx.moveTo(Math.cos(b) * r * 0.32, Math.sin(b) * r * 0.32); ctx.lineTo(Math.cos(b) * r * 0.68, Math.sin(b) * r * 0.68); ctx.stroke(); }\n  ctx.restore();\n  ctx.strokeStyle = rgba('#000000', 0.25); ctx.lineWidth = s * 0.012; ctx.beginPath(); ctx.arc(0, 0, r, 0, TAU); ctx.stroke();\n},\nguitar: function (ctx, s, t, st) {\n  ctx.scale(1.1, 1.1);\n  var c = st.guitar || '#e53935';\n  ctx.rotate(-0.6 + Math.sin(t * 2) * 0.06);\n  ctx.fillStyle = '#5d3a1a'; roundRect(ctx, -s * 0.03, -s * 0.48, s * 0.06, s * 0.5, s * 0.01); ctx.fill();\n  ctx.fillStyle = '#222'; roundRect(ctx, -s * 0.05, -s * 0.56, s * 0.1, s * 0.1, s * 0.03); ctx.fill();\n  ctx.fillStyle = '#d0d0d0'; for (var i = 0; i < 3; i++) { ctx.beginPath(); ctx.arc(-s * 0.06, -s * 0.54 + i * s * 0.03, s * 0.01, 0, TAU); ctx.arc(s * 0.06, -s * 0.54 + i * s * 0.03, s * 0.01, 0, TAU); ctx.fill(); }\n  var g = ctx.createLinearGradient(-s * 0.2, 0, s * 0.2, s * 0.3); g.addColorStop(0, c); g.addColorStop(1, st.guitarDark || '#9e1b1b');\n  ctx.fillStyle = g; ctx.beginPath(); ctx.moveTo(0, -s * 0.02); ctx.bezierCurveTo(s * 0.1, -s * 0.12, s * 0.2, -s * 0.06, s * 0.16, s * 0.04); ctx.bezierCurveTo(s * 0.3, s * 0.12, s * 0.26, s * 0.4, 0, s * 0.42); ctx.bezierCurveTo(-s * 0.26, s * 0.4, -s * 0.28, s * 0.14, -s * 0.16, s * 0.06); ctx.bezierCurveTo(-s * 0.24, -s * 0.02, -s * 0.14, -s * 0.16, -s * 0.06, -s * 0.06); ctx.closePath(); ctx.fill();\n  ctx.fillStyle = '#f5f5f5'; ctx.beginPath(); ctx.moveTo(-s * 0.1, s * 0.12); ctx.quadraticCurveTo(0, s * 0.06, s * 0.12, s * 0.14); ctx.lineTo(s * 0.1, s * 0.32); ctx.quadraticCurveTo(-s * 0.02, s * 0.38, -s * 0.12, s * 0.3); ctx.closePath(); ctx.fill();\n  ctx.fillStyle = '#222'; [0.14, 0.22].forEach(function (y) { roundRect(ctx, -s * 0.06, y * s, s * 0.12, s * 0.04, s * 0.01); ctx.fill(); });\n  ctx.fillStyle = '#888'; roundRect(ctx, -s * 0.05, s * 0.29, s * 0.1, s * 0.025, s * 0.01); ctx.fill();\n  var vib = Math.sin(t * 40) * s * 0.003; ctx.strokeStyle = rgba('#f0e6c8', 0.85); ctx.lineWidth = 1.5;\n  for (var k = -2; k <= 2; k++) { ctx.beginPath(); ctx.moveTo(k * s * 0.01, -s * 0.48); ctx.quadraticCurveTo(k * s * 0.01 + vib, -s * 0.1, k * s * 0.01, s * 0.3); ctx.stroke(); }\n},\ntreasure: function (ctx, s, t, st) {\n  var wood = st.wood || '#8b5a2b', band = goldGrad(ctx, -s * 0.4, s * 0.4, st, t), open = 0.35 + 0.12 * Math.sin(t * 1.5);\n  var gl = ctx.createRadialGradient(0, -s * 0.02, 0, 0, -s * 0.02, s * 0.55); gl.addColorStop(0, 'rgba(255,220,120,.7)'); gl.addColorStop(1, 'rgba(255,220,120,0)');\n  ctx.fillStyle = gl; ctx.beginPath(); ctx.arc(0, -s * 0.02, s * 0.55, 0, TAU); ctx.fill();\n  ctx.save(); ctx.translate(0, -s * 0.02); ctx.scale(1, -Math.sin(open) * 1.6); ctx.fillStyle = st.woodDark || '#6b4220'; roundRect(ctx, -s * 0.34, 0, s * 0.68, s * 0.14, s * 0.06); ctx.fill(); ctx.restore();\n  ctx.fillStyle = '#ffd54f'; for (var i = 0; i < 9; i++) { ctx.beginPath(); ctx.ellipse(-s * 0.24 + i * s * 0.06, -s * 0.03 - (i % 3) * s * 0.02, s * 0.05, s * 0.025, 0, 0, TAU); ctx.fill(); }\n  ctx.fillStyle = '#e53935'; ctx.beginPath(); ctx.arc(-s * 0.08, -s * 0.07, s * 0.03, 0, TAU); ctx.fill(); ctx.fillStyle = '#29b6f6'; ctx.beginPath(); ctx.arc(s * 0.1, -s * 0.06, s * 0.025, 0, TAU); ctx.fill();\n  ctx.fillStyle = wood; roundRect(ctx, -s * 0.36, -s * 0.02, s * 0.72, s * 0.36, s * 0.04); ctx.fill();\n  ctx.fillStyle = band; ctx.fillRect(-s * 0.36, -s * 0.02, s * 0.72, s * 0.04); [-0.26, 0.22].forEach(function (x) { ctx.fillRect(x * s, -s * 0.02, s * 0.04, s * 0.36); });\n  roundRect(ctx, -s * 0.05, s * 0.06, s * 0.1, s * 0.12, s * 0.02); ctx.fill(); ctx.fillStyle = '#3b2a1a'; ctx.beginPath(); ctx.arc(0, s * 0.11, s * 0.015, 0, TAU); ctx.fill();\n  for (var j = 0; j < 4; j++) { var ph = (t * 0.6 + j / 4) % 1; ctx.save(); ctx.translate((j - 1.5) * s * 0.12, -s * 0.1 - ph * s * 0.35); ctx.globalAlpha *= Math.sin(ph * Math.PI); ctx.fillStyle = '#fff6c2'; starPath(ctx, s * 0.04, 4, 0.25); ctx.fill(); ctx.restore(); }\n},\nnecktie: function (ctx, s, t, st) {\n  ctx.scale(1.15, 1.15);\n  var tie = st.tie || '#c62828', stripe = st.tieStripe || '#f1c56a', sw = Math.sin(t * 1.8) * 0.06;\n  ctx.fillStyle = '#ffffff'; ctx.strokeStyle = rgba('#000000', 0.12); ctx.lineWidth = 2;\n  [-1, 1].forEach(function (k) { ctx.beginPath(); ctx.moveTo(0, -s * 0.34); ctx.lineTo(k * s * 0.26, -s * 0.42); ctx.lineTo(k * s * 0.18, -s * 0.2); ctx.closePath(); ctx.fill(); ctx.stroke(); });\n  ctx.save(); ctx.translate(0, -s * 0.3); ctx.rotate(sw);\n  ctx.fillStyle = tie; ctx.beginPath(); ctx.moveTo(-s * 0.07, -s * 0.04); ctx.lineTo(s * 0.07, -s * 0.04); ctx.lineTo(s * 0.05, s * 0.07); ctx.lineTo(-s * 0.05, s * 0.07); ctx.closePath(); ctx.fill();\n  ctx.beginPath(); ctx.moveTo(-s * 0.05, s * 0.07); ctx.lineTo(s * 0.05, s * 0.07); ctx.lineTo(s * 0.13, s * 0.6); ctx.lineTo(0, s * 0.72); ctx.lineTo(-s * 0.13, s * 0.6); ctx.closePath(); ctx.fill();\n  ctx.save(); ctx.clip(); ctx.strokeStyle = stripe; ctx.lineWidth = s * 0.03;\n  for (var i = 0; i < 7; i++) { ctx.beginPath(); ctx.moveTo(-s * 0.2, s * (0.1 + i * 0.1)); ctx.lineTo(s * 0.2, s * (0.0 + i * 0.1)); ctx.stroke(); }\n  ctx.restore(); ctx.restore();\n},\nsmiley: function (ctx, s, t, st) {\n  var sq = 1 + 0.05 * Math.sin(t * 5), bounce = Math.abs(Math.sin(t * 2.5)) * s * 0.05;\n  ctx.translate(0, -bounce); ctx.scale(1 / sq, sq);\n  var g = ctx.createRadialGradient(-s * 0.1, -s * 0.12, s * 0.03, 0, 0, s * 0.38); g.addColorStop(0, '#fff59d'); g.addColorStop(1, '#ffc107');\n  ctx.fillStyle = g; ctx.beginPath(); ctx.arc(0, 0, s * 0.36, 0, TAU); ctx.fill();\n  ctx.strokeStyle = rgba('#e09b00', 0.6); ctx.lineWidth = s * 0.015; ctx.stroke();\n  var blink = (t % 2.8) < 0.13 ? 0.12 : 1;\n  ctx.fillStyle = '#3b2600'; [-1, 1].forEach(function (k) { ctx.beginPath(); ctx.ellipse(k * s * 0.12, -s * 0.08, s * 0.04, s * 0.065 * blink, 0, 0, TAU); ctx.fill(); });\n  ctx.fillStyle = '#3b2600'; ctx.beginPath(); ctx.moveTo(-s * 0.2, s * 0.06); ctx.quadraticCurveTo(0, s * 0.34, s * 0.2, s * 0.06); ctx.quadraticCurveTo(0, s * 0.14, -s * 0.2, s * 0.06); ctx.fill();\n  ctx.fillStyle = '#ff6f61'; ctx.beginPath(); ctx.ellipse(0, s * 0.18, s * 0.07, s * 0.035, 0, 0, TAU); ctx.fill();\n  ctx.fillStyle = rgba('#ff7a59', 0.45); [-1, 1].forEach(function (k) { ctx.beginPath(); ctx.ellipse(k * s * 0.24, s * 0.06, s * 0.05, s * 0.03, 0, 0, TAU); ctx.fill(); });\n},\n\ncastle: function (ctx, s, t, st) {\n  var wall = st.castleWall || '#fbe3ee', shade = st.castleShade || '#f2c4d8', roof = st.castleRoof || st.accent, glow = st.accentHi || '#fff2b3';\n  var g = ctx.createRadialGradient(0, s * 0.05, 0, 0, s * 0.05, s * 0.7); g.addColorStop(0, rgba('#ffffff', 0.35)); g.addColorStop(1, rgba('#ffffff', 0));\n  ctx.fillStyle = g; ctx.beginPath(); ctx.arc(0, s * 0.05, s * 0.7, 0, TAU); ctx.fill();\n  function tower(x, w, top, bottom) {\n    ctx.fillStyle = wall; ctx.fillRect(x - w / 2, top, w, bottom - top);\n    ctx.fillStyle = shade; ctx.fillRect(x + w * 0.18, top, w * 0.32, bottom - top);\n    ctx.fillStyle = roof; ctx.beginPath(); ctx.moveTo(x - w * 0.68, top + 2); ctx.lineTo(x, top - w * 1.5); ctx.lineTo(x + w * 0.68, top + 2); ctx.closePath(); ctx.fill();\n    ctx.strokeStyle = rgba(st.ink || '#333', 0.35); ctx.lineWidth = 2; ctx.beginPath(); ctx.moveTo(x, top - w * 1.5); ctx.lineTo(x, top - w * 1.5 - s * 0.09); ctx.stroke();\n    var wave = Math.sin(t * 4 + x) * s * 0.012;\n    ctx.fillStyle = st.accentHi || '#ffd1e3'; ctx.beginPath(); ctx.moveTo(x, top - w * 1.5 - s * 0.09); ctx.quadraticCurveTo(x + s * 0.04, top - w * 1.5 - s * 0.08 + wave, x + s * 0.08, top - w * 1.5 - s * 0.07); ctx.lineTo(x, top - w * 1.5 - s * 0.05); ctx.closePath(); ctx.fill();\n  }\n  ctx.fillStyle = wall; ctx.fillRect(-s * 0.36, s * 0.02, s * 0.72, s * 0.4);\n  for (var i = 0; i < 9; i++) { ctx.fillRect(-s * 0.36 + i * s * 0.085, -s * 0.02, s * 0.05, s * 0.05); }\n  tower(-s * 0.33, s * 0.15, -s * 0.12, s * 0.42); tower(s * 0.33, s * 0.15, -s * 0.12, s * 0.42); tower(0, s * 0.2, -s * 0.24, s * 0.42);\n  ctx.fillStyle = roof; ctx.beginPath(); ctx.moveTo(-s * 0.08, s * 0.42); ctx.lineTo(-s * 0.08, s * 0.28); ctx.arc(0, s * 0.28, s * 0.08, Math.PI, 0); ctx.lineTo(s * 0.08, s * 0.42); ctx.closePath(); ctx.fill();\n  ctx.globalAlpha *= 0.75 + 0.25 * Math.sin(t * 2.4);\n  ctx.fillStyle = glow;\n  [[0, -0.1], [-0.33, 0.02], [0.33, 0.02], [-0.17, 0.14], [0.17, 0.14]].forEach(function (w) {\n    ctx.beginPath(); ctx.moveTo(w[0] * s - s * 0.025, w[1] * s + s * 0.05); ctx.lineTo(w[0] * s - s * 0.025, w[1] * s); ctx.arc(w[0] * s, w[1] * s, s * 0.025, Math.PI, 0); ctx.lineTo(w[0] * s + s * 0.025, w[1] * s + s * 0.05); ctx.closePath(); ctx.fill();\n  });\n},\nwand: function (ctx, s, t, st) {\n  ctx.rotate(-0.35 + Math.sin(t * 1.4) * 0.12);\n  var sg = ctx.createLinearGradient(0, -s * 0.1, 0, s * 0.48); sg.addColorStop(0, st.accentHi || '#fff'); sg.addColorStop(1, st.accentLo || st.accent);\n  ctx.strokeStyle = sg; ctx.lineCap = 'round'; ctx.lineWidth = s * 0.045; ctx.beginPath(); ctx.moveTo(0, -s * 0.06); ctx.lineTo(0, s * 0.48); ctx.stroke();\n  ctx.fillStyle = st.wandRibbon || '#ff8cc6'; ctx.beginPath(); ctx.ellipse(-s * 0.05, s * 0.03, s * 0.05, s * 0.025, -0.5, 0, TAU); ctx.ellipse(s * 0.05, s * 0.03, s * 0.05, s * 0.025, 0.5, 0, TAU); ctx.fill();\n  var gl = ctx.createRadialGradient(0, -s * 0.22, 0, 0, -s * 0.22, s * 0.42); gl.addColorStop(0, rgba(st.glowColor || '#fff3b0', 0.7)); gl.addColorStop(1, rgba(st.glowColor || '#fff3b0', 0));\n  ctx.fillStyle = gl; ctx.beginPath(); ctx.arc(0, -s * 0.22, s * 0.42, 0, TAU); ctx.fill();\n  ctx.save(); ctx.translate(0, -s * 0.22); ctx.rotate(t * 0.6); ctx.fillStyle = goldGrad(ctx, -s * 0.2, s * 0.2, st, t);\n  ctx.lineJoin = 'round'; ctx.lineWidth = s * 0.03; ctx.strokeStyle = ctx.fillStyle; starPath(ctx, s * 0.19, 5, 0.48); ctx.fill(); ctx.stroke(); ctx.restore();\n  for (var i = 0; i < 7; i++) {\n    var a = t * 1.3 + i * TAU / 7, rr = s * (0.3 + 0.06 * Math.sin(t * 2 + i));\n    ctx.save(); ctx.translate(Math.cos(a) * rr, -s * 0.22 + Math.sin(a) * rr); ctx.globalAlpha *= 0.4 + 0.6 * Math.abs(Math.sin(t * 3 + i));\n    ctx.fillStyle = i % 2 ? '#ffffff' : (st.accentHi || '#fff'); starPath(ctx, s * 0.035, 4, 0.25); ctx.fill(); ctx.restore();\n  }\n},\nbow: function (ctx, s, t, st) {\n  var c = st.bow || st.accent, d = st.bowDark || st.accentLo || c, w = 1 + 0.04 * Math.sin(t * 3);\n  ctx.scale(w, 2 - w);\n  ctx.fillStyle = d;\n  [-1, 1].forEach(function (k) {\n    ctx.beginPath(); ctx.moveTo(k * s * 0.04, s * 0.06); ctx.quadraticCurveTo(k * s * 0.14, s * 0.3, k * s * 0.2, s * 0.46); ctx.lineTo(k * s * 0.1, s * 0.41); ctx.lineTo(k * s * 0.05, s * 0.48); ctx.quadraticCurveTo(k * s * 0.02, s * 0.25, -k * s * 0.02, s * 0.06); ctx.closePath(); ctx.fill();\n  });\n  [-1, 1].forEach(function (k) {\n    var g = ctx.createLinearGradient(0, -s * 0.2, k * s * 0.45, s * 0.1); g.addColorStop(0, c); g.addColorStop(1, d);\n    ctx.fillStyle = g; ctx.beginPath(); ctx.moveTo(0, 0); ctx.bezierCurveTo(k * s * 0.2, -s * 0.36, k * s * 0.52, -s * 0.22, k * s * 0.44, s * 0.02);\n    ctx.bezierCurveTo(k * s * 0.4, s * 0.18, k * s * 0.2, s * 0.14, 0, 0); ctx.fill();\n    ctx.strokeStyle = rgba('#ffffff', 0.35); ctx.lineWidth = s * 0.015; ctx.beginPath(); ctx.moveTo(k * s * 0.08, -s * 0.06); ctx.quadraticCurveTo(k * s * 0.24, -s * 0.2, k * s * 0.38, -s * 0.1); ctx.stroke();\n  });\n  ctx.fillStyle = c; roundRect(ctx, -s * 0.07, -s * 0.08, s * 0.14, s * 0.15, s * 0.05); ctx.fill();\n  ctx.fillStyle = rgba('#ffffff', 0.3); roundRect(ctx, -s * 0.045, -s * 0.06, s * 0.05, s * 0.1, s * 0.025); ctx.fill();\n},\ncrown: function (ctx, s, t, st) {\n  var g = goldGrad(ctx, -s * 0.4, s * 0.4, st, t);\n  ctx.fillStyle = g; ctx.beginPath(); ctx.moveTo(-s * 0.38, s * 0.22); ctx.lineTo(-s * 0.42, -s * 0.18); ctx.lineTo(-s * 0.2, s * 0.02); ctx.lineTo(0, -s * 0.3); ctx.lineTo(s * 0.2, s * 0.02); ctx.lineTo(s * 0.42, -s * 0.18); ctx.lineTo(s * 0.38, s * 0.22); ctx.closePath(); ctx.fill();\n  roundRect(ctx, -s * 0.4, s * 0.2, s * 0.8, s * 0.1, s * 0.03); ctx.fill();\n  [[-0.42, -0.2], [0, -0.33], [0.42, -0.2]].forEach(function (b) { ctx.beginPath(); ctx.arc(b[0] * s, b[1] * s, s * 0.045, 0, TAU); ctx.fill(); });\n  var gems = st.gems || ['#ff6fa8', '#8fd3ff', '#c39bff'];\n  [[-0.24, 0.25, 0], [0, 0.25, 1], [0.24, 0.25, 2], [0, 0.02, 0]].forEach(function (j, i) {\n    ctx.fillStyle = gems[j[2]]; ctx.beginPath(); if (i === 3) { ctx.ellipse(0, j[1] * s, s * 0.05, s * 0.07, 0, 0, TAU); } else ctx.arc(j[0] * s, j[1] * s, s * 0.035, 0, TAU); ctx.fill();\n  });\n  ctx.save(); ctx.translate(s * 0.28, -s * 0.06); ctx.globalAlpha *= Math.abs(Math.sin(t * 2.2)); ctx.fillStyle = '#ffffff'; starPath(ctx, s * 0.07, 4, 0.2); ctx.fill(); ctx.restore();\n  ctx.save(); ctx.translate(-s * 0.12, -s * 0.12); ctx.globalAlpha *= Math.abs(Math.sin(t * 2.2 + 1.6)); ctx.fillStyle = '#ffffff'; starPath(ctx, s * 0.05, 4, 0.2); ctx.fill(); ctx.restore();\n},\nbook: function (ctx, s, t, st) {\n  ctx.fillStyle = st.bookCover || st.accentLo || '#5a2a6a';\n  ctx.beginPath(); ctx.moveTo(-s * 0.46, s * 0.2); ctx.quadraticCurveTo(-s * 0.22, s * 0.12, 0, s * 0.26); ctx.quadraticCurveTo(s * 0.22, s * 0.12, s * 0.46, s * 0.2); ctx.lineTo(s * 0.46, s * 0.27); ctx.quadraticCurveTo(s * 0.22, s * 0.19, 0, s * 0.33); ctx.quadraticCurveTo(-s * 0.22, s * 0.19, -s * 0.46, s * 0.27); ctx.closePath(); ctx.fill();\n  [-1, 1].forEach(function (k) {\n    ctx.fillStyle = '#fffaf0'; ctx.beginPath(); ctx.moveTo(0, s * 0.24); ctx.quadraticCurveTo(k * s * 0.2, s * 0.1, k * s * 0.42, s * 0.18); ctx.lineTo(k * s * 0.42, -s * 0.08); ctx.quadraticCurveTo(k * s * 0.2, -s * 0.16, 0, -s * 0.04); ctx.closePath(); ctx.fill();\n    ctx.strokeStyle = rgba(st.accentLo || '#a07040', 0.35); ctx.lineWidth = 2;\n    for (var i = 0; i < 4; i++) { var y = -s * 0.02 + i * s * 0.05; ctx.beginPath(); ctx.moveTo(k * s * 0.07, y + s * 0.02); ctx.quadraticCurveTo(k * s * 0.2, y - s * 0.04, k * s * 0.35, y + s * 0.01); ctx.stroke(); }\n  });\n  for (var j = 0; j < 9; j++) {\n    var ph = (t * 0.45 + j / 9) % 1, x = Math.sin(j * 2.3 + t) * s * 0.18 * ph + (j - 4) * s * 0.02, y = -s * 0.05 - ph * s * 0.5;\n    ctx.save(); ctx.translate(x, y); ctx.globalAlpha *= Math.sin(ph * Math.PI); ctx.fillStyle = j % 3 ? (st.accentHi || '#fff3b0') : '#ffffff';\n    ctx.rotate(t + j); starPath(ctx, s * (0.025 + (j % 3) * 0.012), j % 2 ? 4 : 5, j % 2 ? 0.25 : 0.45); ctx.fill(); ctx.restore();\n  }\n},\nmushroom: function (ctx, s, t, st) {\n  var gl = ctx.createRadialGradient(0, 0, 0, 0, 0, s * 0.6); gl.addColorStop(0, rgba(st.glowColor || '#fff6c2', 0.45)); gl.addColorStop(1, rgba(st.glowColor || '#fff6c2', 0));\n  ctx.fillStyle = gl; ctx.beginPath(); ctx.arc(0, 0, s * 0.6, 0, TAU); ctx.fill();\n  ctx.fillStyle = st.leaf || '#7fb069';\n  for (var i = -5; i <= 5; i++) { ctx.save(); ctx.translate(i * s * 0.05, s * 0.42); ctx.rotate(i * 0.12 + Math.sin(t * 2 + i) * 0.08); petalPath(ctx, s * (0.12 + (i % 2 ? 0.04 : 0)), s * 0.025); ctx.fill(); ctx.restore(); }\n  ctx.fillStyle = '#fff4e2'; ctx.beginPath(); ctx.moveTo(-s * 0.13, s * 0.42); ctx.quadraticCurveTo(-s * 0.16, s * 0.15, -s * 0.11, -s * 0.02); ctx.lineTo(s * 0.11, -s * 0.02); ctx.quadraticCurveTo(s * 0.16, s * 0.15, s * 0.13, s * 0.42); ctx.closePath(); ctx.fill();\n  ctx.fillStyle = st.accentLo || '#a0522d'; ctx.beginPath(); ctx.moveTo(-s * 0.045, s * 0.42); ctx.lineTo(-s * 0.045, s * 0.3); ctx.arc(0, s * 0.3, s * 0.045, Math.PI, 0); ctx.lineTo(s * 0.045, s * 0.42); ctx.fill();\n  ctx.save(); ctx.fillStyle = '#ffe9a0'; ctx.globalAlpha *= 0.7 + 0.3 * Math.sin(t * 3); ctx.beginPath(); ctx.arc(0, s * 0.13, s * 0.035, 0, TAU); ctx.fill(); ctx.restore();\n  var cg = ctx.createLinearGradient(0, -s * 0.36, 0, 0); cg.addColorStop(0, st.cap || '#ff7aa8'); cg.addColorStop(1, st.capDark || '#e0457f');\n  ctx.fillStyle = cg; ctx.beginPath(); ctx.moveTo(-s * 0.4, s * 0.02); ctx.bezierCurveTo(-s * 0.42, -s * 0.36, s * 0.42, -s * 0.36, s * 0.4, s * 0.02); ctx.quadraticCurveTo(0, -s * 0.06, -s * 0.4, s * 0.02); ctx.fill();\n  ctx.fillStyle = '#ffffff'; [[-0.22, -0.08, 0.05], [0, -0.2, 0.06], [0.22, -0.1, 0.045], [-0.08, -0.06, 0.03], [0.12, -0.02, 0.03]].forEach(function (d) { ctx.beginPath(); ctx.arc(d[0] * s, d[1] * s, d[2] * s, 0, TAU); ctx.fill(); });\n},\nbutterfly: function (ctx, s, t, st) {\n  var w = st.wings || ['#c9a7ff', '#ff9ccf', '#8ad8ff'], flap = 0.55 + 0.45 * Math.abs(Math.cos(t * 3.2));\n  ctx.rotate(Math.sin(t * 1.1) * 0.08);\n  [-1, 1].forEach(function (k) {\n    ctx.save(); ctx.scale(k * flap, 1);\n    var g = ctx.createLinearGradient(0, -s * 0.4, s * 0.45, s * 0.1); g.addColorStop(0, w[0]); g.addColorStop(1, w[1]);\n    ctx.fillStyle = g; ctx.beginPath(); ctx.moveTo(0, -s * 0.02); ctx.bezierCurveTo(s * 0.1, -s * 0.45, s * 0.5, -s * 0.42, s * 0.44, -s * 0.12); ctx.bezierCurveTo(s * 0.4, s * 0.02, s * 0.15, s * 0.02, 0, 0); ctx.fill();\n    var g2 = ctx.createLinearGradient(0, 0, s * 0.3, s * 0.35); g2.addColorStop(0, w[1]); g2.addColorStop(1, w[2]);\n    ctx.fillStyle = g2; ctx.beginPath(); ctx.moveTo(0, s * 0.02); ctx.bezierCurveTo(s * 0.3, s * 0.0, s * 0.36, s * 0.3, s * 0.2, s * 0.34); ctx.bezierCurveTo(s * 0.08, s * 0.37, s * 0.02, s * 0.18, 0, s * 0.04); ctx.fill();\n    ctx.fillStyle = rgba('#ffffff', 0.55); [[0.28, -0.2, 0.05], [0.18, -0.28, 0.03], [0.17, 0.18, 0.035]].forEach(function (d) { ctx.beginPath(); ctx.arc(d[0] * s, d[1] * s, d[2] * s, 0, TAU); ctx.fill(); });\n    ctx.strokeStyle = rgba(st.ink || '#3a2a4a', 0.6); ctx.lineWidth = s * 0.012; ctx.beginPath(); ctx.moveTo(s * 0.01, -s * 0.16); ctx.quadraticCurveTo(s * 0.05, -s * 0.3, s * 0.12, -s * 0.34); ctx.stroke();\n    ctx.fillStyle = rgba(st.ink || '#3a2a4a', 0.6); ctx.beginPath(); ctx.arc(s * 0.12, -s * 0.34, s * 0.018, 0, TAU); ctx.fill();\n    ctx.restore();\n  });\n  ctx.fillStyle = st.bodyColor || '#4a3560'; ctx.beginPath(); ctx.ellipse(0, s * 0.04, s * 0.03, s * 0.2, 0, 0, TAU); ctx.fill();\n  ctx.beginPath(); ctx.arc(0, -s * 0.15, s * 0.04, 0, TAU); ctx.fill();\n},\nblossom: function (ctx, s, t, st) {\n  var c = st.flowers || ['#f4a3b8', '#f9cdd8', '#e57c98'], ce = st.accentHi || '#ffe38a', lc = st.leaf || '#8fb38a';\n  [[-0.7, 0.42], [0.7, 0.42], [-2.5, 0.36], [2.5, 0.36]].forEach(function (l) { leaf(ctx, 0, 0, s * l[1], l[0] + Math.sin(t) * 0.05, lc); });\n  ctx.rotate(t * 0.15);\n  flower(ctx, 0, 0, s * 0.36, c[2], ce, 0, 8); flower(ctx, 0, 0, s * 0.28, c[0], ce, 0.4, 8); flower(ctx, 0, 0, s * 0.18, c[1], ce, 0.1, 6);\n  ctx.fillStyle = ce; ctx.beginPath(); ctx.arc(0, 0, s * 0.06, 0, TAU); ctx.fill();\n  ctx.fillStyle = st.accentLo || '#c0874a'; for (var i = 0; i < 8; i++) { ctx.beginPath(); ctx.arc(Math.cos(i * TAU / 8) * s * 0.035, Math.sin(i * TAU / 8) * s * 0.035, s * 0.008, 0, TAU); ctx.fill(); }\n},\ndaisy: function (ctx, s, t, st) {\n  var lc = st.leaf || '#7fae6a';\n  ctx.strokeStyle = lc; ctx.lineWidth = s * 0.03; ctx.lineCap = 'round'; ctx.beginPath(); ctx.moveTo(0, 0); ctx.quadraticCurveTo(s * 0.05, s * 0.25, -s * 0.02, s * 0.48); ctx.stroke();\n  leaf(ctx, 0, s * 0.32, s * 0.2, -1.0, lc); leaf(ctx, 0, s * 0.26, s * 0.18, 1.1, lc);\n  ctx.save(); ctx.rotate(t * 0.25 + Math.sin(t) * 0.1);\n  for (var i = 0; i < 16; i++) { ctx.save(); ctx.rotate(i * TAU / 16); ctx.fillStyle = i % 2 ? '#ffffff' : '#fbf6ee'; petalPath(ctx, s * 0.32, s * 0.075); ctx.fill(); ctx.strokeStyle = rgba('#d8c8a8', 0.6); ctx.lineWidth = 1.5; ctx.stroke(); ctx.restore(); }\n  var g = ctx.createRadialGradient(-s * 0.03, -s * 0.03, 0, 0, 0, s * 0.11); g.addColorStop(0, '#ffe680'); g.addColorStop(1, '#f2a91c');\n  ctx.fillStyle = g; ctx.beginPath(); ctx.arc(0, 0, s * 0.1, 0, TAU); ctx.fill(); ctx.restore();\n},\nrose: function (ctx, s, t, st) {\n  var c = st.rose || ['#c2185b', '#e04682', '#8e0f40'], lc = st.leaf || '#5f8f5a';\n  leaf(ctx, -s * 0.12, s * 0.2, s * 0.3, -2.0, lc); leaf(ctx, s * 0.12, s * 0.2, s * 0.3, 2.0, lc);\n  var b = 1 + 0.03 * Math.sin(t * 2); ctx.scale(b, b);\n  ctx.fillStyle = c[2]; ctx.beginPath(); ctx.arc(0, 0, s * 0.3, 0, TAU); ctx.fill();\n  for (var i = 0; i < 5; i++) { ctx.save(); ctx.rotate(i * TAU / 5 + 0.3); ctx.fillStyle = c[0]; ctx.beginPath(); ctx.ellipse(0, -s * 0.17, s * 0.17, s * 0.14, 0, 0, TAU); ctx.fill(); ctx.restore(); }\n  for (var j = 0; j < 4; j++) { ctx.save(); ctx.rotate(j * TAU / 4 + 1.0); ctx.fillStyle = c[1]; ctx.beginPath(); ctx.ellipse(0, -s * 0.09, s * 0.12, s * 0.09, 0, 0, TAU); ctx.fill(); ctx.restore(); }\n  ctx.strokeStyle = c[2]; ctx.lineWidth = s * 0.018; ctx.lineCap = 'round';\n  ctx.beginPath(); for (var a = 0; a < 3 * TAU; a += 0.2) { var r = s * 0.012 * a; ctx[a ? 'lineTo' : 'moveTo'](Math.cos(a) * r, Math.sin(a) * r); } ctx.stroke();\n  ctx.fillStyle = rgba('#ffffff', 0.25); ctx.beginPath(); ctx.ellipse(-s * 0.12, -s * 0.16, s * 0.06, s * 0.03, -0.6, 0, TAU); ctx.fill();\n},\nstar5: function (ctx, s, t, st) {\n  var gl = ctx.createRadialGradient(0, 0, 0, 0, 0, s * 0.62); gl.addColorStop(0, rgba(st.glowColor || '#fff3a8', 0.55)); gl.addColorStop(1, rgba(st.glowColor || '#fff3a8', 0));\n  ctx.fillStyle = gl; ctx.beginPath(); ctx.arc(0, 0, s * 0.62, 0, TAU); ctx.fill();\n  ctx.rotate(Math.sin(t * 1.2) * 0.1);\n  var g = ctx.createLinearGradient(0, -s * 0.4, 0, s * 0.4); g.addColorStop(0, st.starHi || '#fff2a0'); g.addColorStop(1, st.starLo || '#f6b93b');\n  ctx.fillStyle = g; ctx.strokeStyle = g; ctx.lineJoin = 'round'; ctx.lineWidth = s * 0.09; starPath(ctx, s * 0.36, 5, 0.5); ctx.fill(); ctx.stroke();\n  if (st.cuteFace) {\n    var blink = (t % 3.2) < 0.15 ? 0.15 : 1;\n    ctx.fillStyle = '#5a4030'; [-1, 1].forEach(function (k) { ctx.beginPath(); ctx.ellipse(k * s * 0.08, -s * 0.02, s * 0.028, s * 0.04 * blink, 0, 0, TAU); ctx.fill(); });\n    ctx.strokeStyle = '#5a4030'; ctx.lineWidth = s * 0.018; ctx.lineCap = 'round'; ctx.beginPath(); ctx.arc(0, s * 0.04, s * 0.05, 0.2, Math.PI - 0.2); ctx.stroke();\n    ctx.fillStyle = rgba('#ff8a8a', 0.5); [-1, 1].forEach(function (k) { ctx.beginPath(); ctx.ellipse(k * s * 0.15, s * 0.06, s * 0.04, s * 0.025, 0, 0, TAU); ctx.fill(); });\n  }\n},\nstrawberry: function (ctx, s, t, st) {\n  ctx.rotate(Math.sin(t * 1.5) * 0.06);\n  var g = ctx.createRadialGradient(-s * 0.1, -s * 0.05, s * 0.02, 0, s * 0.05, s * 0.45); g.addColorStop(0, '#ff6b7d'); g.addColorStop(1, '#d6203f');\n  ctx.fillStyle = g; ctx.beginPath(); ctx.moveTo(0, s * 0.42); ctx.bezierCurveTo(-s * 0.2, s * 0.32, -s * 0.4, s * 0.05, -s * 0.33, -s * 0.15); ctx.bezierCurveTo(-s * 0.26, -s * 0.3, s * 0.26, -s * 0.3, s * 0.33, -s * 0.15); ctx.bezierCurveTo(s * 0.4, s * 0.05, s * 0.2, s * 0.32, 0, s * 0.42); ctx.fill();\n  ctx.fillStyle = '#ffe9a6';\n  for (var r = 0; r < 5; r++) for (var c = -3; c <= 3; c++) { var x = (c + (r % 2) * 0.5) * s * 0.085, y = -s * 0.12 + r * s * 0.1; if (Math.abs(x) > s * (0.3 - r * 0.05)) continue; ctx.beginPath(); ctx.ellipse(x, y, s * 0.012, s * 0.02, 0, 0, TAU); ctx.fill(); }\n  ctx.fillStyle = st.leaf || '#4caf50';\n  for (var i = 0; i < 6; i++) { ctx.save(); ctx.translate(0, -s * 0.24); ctx.rotate(-1.4 + i * 0.56); petalPath(ctx, s * 0.17, s * 0.06); ctx.fill(); ctx.restore(); }\n  ctx.strokeStyle = '#3d8b40'; ctx.lineWidth = s * 0.03; ctx.lineCap = 'round'; ctx.beginPath(); ctx.moveTo(0, -s * 0.26); ctx.quadraticCurveTo(s * 0.02, -s * 0.36, s * 0.07, -s * 0.4); ctx.stroke();\n  ctx.fillStyle = rgba('#ffffff', 0.35); ctx.beginPath(); ctx.ellipse(-s * 0.17, -s * 0.06, s * 0.04, s * 0.08, 0.4, 0, TAU); ctx.fill();\n},\ncherries: function (ctx, s, t, st) {\n  var sw = Math.sin(t * 2) * 0.05;\n  ctx.strokeStyle = '#5d8a3a'; ctx.lineWidth = s * 0.025; ctx.lineCap = 'round';\n  ctx.beginPath(); ctx.moveTo(s * 0.02, -s * 0.36); ctx.quadraticCurveTo(-s * 0.2, -s * 0.15, -s * 0.18 + sw * s, s * 0.1); ctx.stroke();\n  ctx.beginPath(); ctx.moveTo(s * 0.02, -s * 0.36); ctx.quadraticCurveTo(s * 0.12, -s * 0.1, s * 0.18 - sw * s, s * 0.14); ctx.stroke();\n  leaf(ctx, s * 0.02, -s * 0.36, s * 0.24, 1.0, st.leaf || '#6fae4a');\n  [[-0.18 + sw, 0.2], [0.18 - sw, 0.24]].forEach(function (c) {\n    var x = c[0] * s, y = c[1] * s, g = ctx.createRadialGradient(x - s * 0.05, y - s * 0.05, s * 0.01, x, y, s * 0.16);\n    g.addColorStop(0, st.cherryHi || '#ff5a6e'); g.addColorStop(1, st.cherry || '#b5102b');\n    ctx.fillStyle = g; ctx.beginPath(); ctx.arc(x, y, s * 0.15, 0, TAU); ctx.fill();\n    ctx.fillStyle = rgba('#ffffff', 0.55); ctx.beginPath(); ctx.ellipse(x - s * 0.06, y - s * 0.06, s * 0.03, s * 0.05, 0.6, 0, TAU); ctx.fill();\n  });\n},\nteddy: function (ctx, s, t, st) {\n  var fur = st.fur || '#b07a4f', light = st.furLight || '#e3bf95', dark = '#4a2e1c', tilt = Math.sin(t * 1.2) * 0.06;\n  ctx.rotate(tilt);\n  ctx.fillStyle = fur; ctx.beginPath(); ctx.ellipse(0, s * 0.32, s * 0.26, s * 0.17, 0, Math.PI, 0); ctx.fill();\n  [-1, 1].forEach(function (k) { ctx.fillStyle = fur; ctx.beginPath(); ctx.arc(k * s * 0.24, -s * 0.24, s * 0.1, 0, TAU); ctx.fill(); ctx.fillStyle = light; ctx.beginPath(); ctx.arc(k * s * 0.24, -s * 0.24, s * 0.055, 0, TAU); ctx.fill(); });\n  ctx.fillStyle = fur; ctx.beginPath(); ctx.ellipse(0, -s * 0.04, s * 0.3, s * 0.27, 0, 0, TAU); ctx.fill();\n  ctx.fillStyle = light; ctx.beginPath(); ctx.ellipse(0, s * 0.06, s * 0.13, s * 0.1, 0, 0, TAU); ctx.fill();\n  ctx.fillStyle = dark; ctx.beginPath(); ctx.ellipse(0, s * 0.02, s * 0.05, s * 0.035, 0, 0, TAU); ctx.fill();\n  ctx.strokeStyle = dark; ctx.lineWidth = s * 0.014; ctx.lineCap = 'round'; ctx.beginPath(); ctx.moveTo(0, s * 0.05); ctx.lineTo(0, s * 0.09); ctx.arc(-s * 0.035, s * 0.09, s * 0.035, 0, Math.PI * 0.8); ctx.moveTo(0, s * 0.09); ctx.arc(s * 0.035, s * 0.09, s * 0.035, Math.PI, Math.PI * 0.2, true); ctx.stroke();\n  var blink = (t % 3.6) < 0.14 ? 0.15 : 1;\n  [-1, 1].forEach(function (k) { ctx.fillStyle = dark; ctx.beginPath(); ctx.ellipse(k * s * 0.11, -s * 0.08, s * 0.03, s * 0.035 * blink, 0, 0, TAU); ctx.fill(); ctx.fillStyle = '#fff'; ctx.beginPath(); ctx.arc(k * s * 0.11 + s * 0.01, -s * 0.09, s * 0.009 * blink, 0, TAU); ctx.fill(); });\n  ctx.fillStyle = rgba('#ff8a8a', 0.4); [-1, 1].forEach(function (k) { ctx.beginPath(); ctx.ellipse(k * s * 0.19, s * 0.03, s * 0.045, s * 0.028, 0, 0, TAU); ctx.fill(); });\n  ctx.save(); ctx.translate(0, s * 0.22); ctx.scale(0.42, 0.42); emblems.bow(ctx, s, t, st); ctx.restore();\n},\ncloud: function (ctx, s, t, st) {\n  var c = st.cloud || '#ffffff', sh = st.cloudShade || '#e3e9f7', bob = Math.sin(t * 1.4) * s * 0.02;\n  ctx.translate(0, bob);\n  function puff(col, dy) { ctx.fillStyle = col; ctx.beginPath(); [[-0.26, 0.06, 0.16], [-0.1, -0.06, 0.2], [0.12, -0.1, 0.23], [0.3, 0.04, 0.16], [0, 0.1, 0.2]].forEach(function (p) { ctx.moveTo(p[0] * s + p[2] * s, p[1] * s + dy); ctx.arc(p[0] * s, p[1] * s + dy, p[2] * s, 0, TAU); }); ctx.fill(); }\n  puff(sh, s * 0.04); puff(c, 0);\n  if (st.cuteFace) {\n    ctx.fillStyle = '#5b5577'; [-1, 1].forEach(function (k) { ctx.beginPath(); ctx.arc(k * s * 0.08, s * 0.02, s * 0.022, 0, TAU); ctx.fill(); });\n    ctx.strokeStyle = '#5b5577'; ctx.lineWidth = s * 0.014; ctx.lineCap = 'round'; ctx.beginPath(); ctx.arc(0, s * 0.05, s * 0.035, 0.25, Math.PI - 0.25); ctx.stroke();\n    ctx.fillStyle = rgba('#ff9cbc', 0.5); [-1, 1].forEach(function (k) { ctx.beginPath(); ctx.ellipse(k * s * 0.14, s * 0.07, s * 0.035, s * 0.02, 0, 0, TAU); ctx.fill(); });\n  }\n  for (var i = 0; i < 4; i++) { ctx.save(); ctx.translate([-0.36, 0.38, -0.2, 0.24][i] * s, [-0.22, -0.26, 0.32, 0.3][i] * s); ctx.globalAlpha *= Math.abs(Math.sin(t * 2 + i * 1.3)); ctx.fillStyle = st.accentHi || '#ffe58a'; starPath(ctx, s * 0.045, 4, 0.25); ctx.fill(); ctx.restore(); }\n},\nswan: function (ctx, s, t, st) {\n  ctx.scale(1.25, 1.25);\n  var bob = Math.sin(t * 1.3) * s * 0.015; ctx.translate(0, bob);\n  ctx.strokeStyle = rgba(st.accent, 0.5); ctx.lineWidth = s * 0.012; ctx.lineCap = 'round';\n  for (var i = 0; i < 3; i++) { var w = s * (0.3 + i * 0.08) * (1 + 0.04 * Math.sin(t * 2 + i)); ctx.beginPath(); ctx.moveTo(-w, s * (0.33 + i * 0.04)); ctx.quadraticCurveTo(0, s * (0.36 + i * 0.04), w, s * (0.33 + i * 0.04)); ctx.stroke(); }\n  ctx.fillStyle = '#ffffff'; ctx.strokeStyle = st.swanLine || '#e6dbe2'; ctx.lineWidth = s * 0.012;\n  ctx.beginPath(); ctx.moveTo(-s * 0.36, s * 0.08); ctx.bezierCurveTo(-s * 0.3, s * 0.32, s * 0.24, s * 0.34, s * 0.32, s * 0.12); ctx.bezierCurveTo(s * 0.2, s * 0.18, s * 0.08, s * 0.1, s * 0.06, s * 0.06); ctx.bezierCurveTo(-s * 0.08, s * 0.14, -s * 0.24, s * 0.14, -s * 0.36, s * 0.08); ctx.fill(); ctx.stroke();\n  ctx.fillStyle = st.wingTint || '#fbeef3'; ctx.beginPath(); ctx.moveTo(-s * 0.2, s * 0.14); ctx.bezierCurveTo(-s * 0.3, -s * 0.06, -s * 0.06, -s * 0.02, s * 0.12, s * 0.16); ctx.bezierCurveTo(-s * 0.02, s * 0.22, -s * 0.14, s * 0.22, -s * 0.2, s * 0.14); ctx.fill(); ctx.stroke();\n  ctx.lineWidth = s * 0.075; ctx.strokeStyle = '#ffffff'; ctx.lineCap = 'round';\n  ctx.beginPath(); ctx.moveTo(s * 0.22, s * 0.16); ctx.bezierCurveTo(s * 0.3, -s * 0.02, s * 0.1, -s * 0.12, s * 0.16, -s * 0.28); ctx.stroke();\n  ctx.fillStyle = '#ffffff'; ctx.beginPath(); ctx.arc(s * 0.18, -s * 0.3, s * 0.055, 0, TAU); ctx.fill();\n  ctx.fillStyle = '#f39c3d'; ctx.beginPath(); ctx.moveTo(s * 0.22, -s * 0.32); ctx.lineTo(s * 0.32, -s * 0.27); ctx.lineTo(s * 0.22, -s * 0.27); ctx.closePath(); ctx.fill();\n  ctx.fillStyle = '#2b2b2b'; ctx.beginPath(); ctx.arc(s * 0.19, -s * 0.31, s * 0.011, 0, TAU); ctx.fill();\n  ctx.save(); ctx.translate(s * 0.17, -s * 0.37); ctx.scale(0.16, 0.16); emblems.crown(ctx, s, t, st); ctx.restore();\n},\nrainbow: function (ctx, s, t, st) {\n  var cols = st.rainbow || ['#ff8a9a', '#ffb27a', '#ffe17a', '#9fe39a', '#8ccaff', '#b9a2ff'], p = clamp(t / 1.6);\n  ctx.lineCap = 'round';\n  cols.forEach(function (c, i) { ctx.strokeStyle = c; ctx.lineWidth = s * 0.05; ctx.beginPath(); ctx.arc(0, s * 0.2, s * (0.42 - i * 0.05), Math.PI, Math.PI + Math.PI * Math.max(p, 0.001)); ctx.stroke(); });\n  [-1, 1].forEach(function (k) {\n    ctx.save(); ctx.translate(k * s * 0.3, s * 0.22); ctx.scale(0.42, 0.42);\n    ctx.fillStyle = '#ffffff'; ctx.beginPath(); [[-0.2, 0.04, 0.16], [0, -0.06, 0.22], [0.2, 0.04, 0.16], [0, 0.08, 0.18]].forEach(function (q) { ctx.moveTo(q[0] * s + q[2] * s, q[1] * s); ctx.arc(q[0] * s, q[1] * s, q[2] * s, 0, TAU); }); ctx.fill(); ctx.restore();\n  });\n  for (var i = 0; i < 5; i++) { ctx.save(); ctx.translate(Math.cos(Math.PI + i * 0.7 + 0.2) * s * 0.52, s * 0.2 + Math.sin(Math.PI + i * 0.7 + 0.2) * s * 0.52); ctx.globalAlpha *= Math.abs(Math.sin(t * 2.4 + i)); ctx.fillStyle = cols[i]; starPath(ctx, s * 0.04, 4, 0.25); ctx.fill(); ctx.restore(); }\n},\nairballoon: function (ctx, s, t, st) {\n  ctx.scale(1.15, 1.15);\n  var cols = st.stripes || ['#f7a8c4', '#fff1f5', '#b9a2ff', '#fff1f5'];\n  ctx.translate(0, Math.sin(t * 1.1) * s * 0.03); ctx.rotate(Math.sin(t * 0.8) * 0.05);\n  ctx.save(); ctx.beginPath(); ctx.moveTo(0, s * 0.18); ctx.bezierCurveTo(-s * 0.18, s * 0.08, -s * 0.34, -s * 0.06, -s * 0.32, -s * 0.2); ctx.bezierCurveTo(-s * 0.3, -s * 0.46, s * 0.3, -s * 0.46, s * 0.32, -s * 0.2); ctx.bezierCurveTo(s * 0.34, -s * 0.06, s * 0.18, s * 0.08, 0, s * 0.18); ctx.clip();\n  for (var i = -4; i < 4; i++) { ctx.fillStyle = cols[(i + 8) % cols.length]; ctx.beginPath(); ctx.ellipse(0, -s * 0.1, Math.abs(i + 0.5) * s * 0.09, s * 0.5, 0, 0, TAU); ctx.fill(); }\n  for (var j = 3; j >= 0; j--) { ctx.fillStyle = cols[j % cols.length]; ctx.beginPath(); ctx.ellipse(0, -s * 0.1, (j + 0.5) * s * 0.09, s * 0.5, 0, 0, TAU); ctx.fill(); }\n  ctx.fillStyle = rgba('#ffffff', 0.25); ctx.beginPath(); ctx.ellipse(-s * 0.16, -s * 0.24, s * 0.05, s * 0.12, 0.3, 0, TAU); ctx.fill();\n  ctx.restore();\n  ctx.strokeStyle = rgba(st.ink || '#6a5a7a', 0.6); ctx.lineWidth = s * 0.01;\n  ctx.beginPath(); ctx.moveTo(-s * 0.08, s * 0.15); ctx.lineTo(-s * 0.06, s * 0.3); ctx.moveTo(s * 0.08, s * 0.15); ctx.lineTo(s * 0.06, s * 0.3); ctx.stroke();\n  ctx.fillStyle = st.basket || '#c8945c'; roundRect(ctx, -s * 0.08, s * 0.3, s * 0.16, s * 0.12, s * 0.02); ctx.fill();\n  ctx.strokeStyle = rgba('#7a5230', 0.5); ctx.beginPath(); ctx.moveTo(-s * 0.08, s * 0.35); ctx.lineTo(s * 0.08, s * 0.35); ctx.stroke();\n},\n\nrings: function (ctx, s, t, st) {\nctx.lineWidth = s * 0.055; ctx.strokeStyle = goldGrad(ctx, -s / 2, s / 2, st, t);\nctx.beginPath(); ctx.arc(-s * 0.17, s * 0.06, s * 0.27, 0, TAU); ctx.stroke();\nctx.beginPath(); ctx.arc(s * 0.17, s * 0.06, s * 0.27, 0, TAU); ctx.stroke();\nctx.save(); ctx.translate(-s * 0.17, -s * 0.3); ctx.fillStyle = '#eafcff';\nctx.beginPath(); ctx.moveTo(-s * 0.09, -s * 0.03); ctx.lineTo(-s * 0.05, -s * 0.09); ctx.lineTo(s * 0.05, -s * 0.09); ctx.lineTo(s * 0.09, -s * 0.03); ctx.lineTo(0, s * 0.09); ctx.closePath(); ctx.fill();\nctx.globalAlpha = 0.5 + 0.5 * Math.sin(t * 4); ctx.fillStyle = '#fff'; ctx.translate(s * 0.08, -s * 0.1); starPath(ctx, s * 0.07, 4, 0.2); ctx.fill(); ctx.restore();\n},\nheart: function (ctx, s, t, st) {\nvar b = 1 + 0.05 * Math.sin(t * 3.2); ctx.scale(b, b);\nvar g = ctx.createLinearGradient(0, -s * 0.4, 0, s * 0.3); g.addColorStop(0, st.accentHi || st.accent); g.addColorStop(1, st.accentLo || st.accent);\nctx.fillStyle = g; ctx.translate(0, s * 0.12); heartPath(ctx, s * 0.42); ctx.fill();\n},\ndiya: function (ctx, s, t, st) {\nflame(ctx, 0, -s * 0.04, s * 0.3, t, 0);\nvar g = ctx.createLinearGradient(-s * 0.4, 0, s * 0.4, 0); g.addColorStop(0, '#b5541a'); g.addColorStop(0.5, '#f0a13a'); g.addColorStop(1, '#b5541a');\nctx.fillStyle = g; ctx.beginPath(); ctx.moveTo(-s * 0.44, 0); ctx.quadraticCurveTo(-s * 0.3, s * 0.36, 0, s * 0.36); ctx.quadraticCurveTo(s * 0.3, s * 0.36, s * 0.44, 0);\nctx.quadraticCurveTo(0, s * 0.1, -s * 0.44, 0); ctx.fill();\nctx.fillStyle = st.accentHi || '#ffe7a3';\nfor (var i = -2; i <= 2; i++) { ctx.beginPath(); ctx.arc(i * s * 0.11, s * 0.2 - Math.abs(i) * s * 0.03, s * 0.022, 0, TAU); ctx.fill(); }\n},\ncake: function (ctx, s, t, st) {\nvar c1 = '#fff5f8', c2 = st.cake || '#ff8fb0';\nctx.fillStyle = c2; roundRect(ctx, -s * 0.4, s * 0.1, s * 0.8, s * 0.3, s * 0.04); ctx.fill();\nctx.fillStyle = c1; roundRect(ctx, -s * 0.28, -s * 0.14, s * 0.56, s * 0.26, s * 0.04); ctx.fill();\nctx.fillStyle = c1; ctx.beginPath(); ctx.moveTo(-s * 0.4, s * 0.12);\nfor (var i = 0; i < 8; i++) { var x = -s * 0.4 + i * s * 0.1; ctx.quadraticCurveTo(x + s * 0.05, s * 0.25, x + s * 0.1, s * 0.12); }\nctx.closePath(); ctx.fill();\nctx.fillStyle = st.accent; for (var k = 0; k < 5; k++) { ctx.beginPath(); ctx.arc(-s * 0.2 + k * s * 0.1, -s * 0.02, s * 0.022, 0, TAU); ctx.fill(); }\n[-0.16, 0, 0.16].forEach(function (x, j) {\nctx.fillStyle = ['#7ad7ff', '#ffe066', '#b69cff'][j]; ctx.fillRect(x * s - s * 0.018, -s * 0.3, s * 0.036, s * 0.16);\nflame(ctx, x * s, -s * 0.31, s * 0.1, t, j * 2);\n});\n},\nmoon: function (ctx, s, t, st) {\nctx.save(); ctx.beginPath(); ctx.rect(-s, -s, s * 2, s * 2); ctx.arc(s * 0.16, -s * 0.06, s * 0.36, 0, TAU, true); ctx.clip('evenodd');\nctx.fillStyle = goldGrad(ctx, -s / 2, s / 2, st, t); ctx.beginPath(); ctx.arc(0, 0, s * 0.44, 0, TAU); ctx.fill(); ctx.restore();\nctx.save(); ctx.translate(s * 0.22, -s * 0.08); ctx.rotate(Math.sin(t) * 0.15); ctx.fillStyle = st.accentHi || '#fff6d6'; starPath(ctx, s * 0.13, 5, 0.42); ctx.fill(); ctx.restore();\n},\ntree: function (ctx, s, t, st) {\nctx.fillStyle = '#6b3e1e'; ctx.fillRect(-s * 0.05, s * 0.3, s * 0.1, s * 0.14);\n[['#1f7a3d', 0.34, 0.3, 0.3], ['#259148', 0.27, 0.1, 0.3], ['#2ea653', 0.2, -0.1, 0.28]].forEach(function (l) {\nctx.fillStyle = l[0]; ctx.beginPath(); ctx.moveTo(-s * l[1], s * l[2]); ctx.lineTo(s * l[1], s * l[2]); ctx.lineTo(0, s * (l[2] - l[3])); ctx.closePath(); ctx.fill();\n});\n[[-0.14, 0.22, '#ff5a5a'], [0.1, 0.2, '#ffd34d'], [0.02, 0.02, '#6ecbff'], [-0.08, -0.02, '#ffd34d'], [0.08, -0.2, '#ff5a5a'], [0.2, 0.25, '#6ecbff'], [-0.04, -0.2, '#fff']].forEach(function (b, i) {\nctx.globalAlpha = 0.6 + 0.4 * Math.sin(t * 3 + i * 1.7); ctx.fillStyle = b[2]; ctx.beginPath(); ctx.arc(b[0] * s, b[1] * s, s * 0.028, 0, TAU); ctx.fill();\n});\nctx.globalAlpha = 1; ctx.save(); ctx.translate(0, -s * 0.4); ctx.rotate(Math.sin(t * 2) * 0.1); ctx.fillStyle = '#ffd34d'; starPath(ctx, s * 0.09, 5, 0.45); ctx.fill(); ctx.restore();\n},\nhouse: function (ctx, s, t, st) {\nctx.fillStyle = st.accentLo || st.accent; ctx.fillRect(s * 0.16, -s * 0.36, s * 0.08, s * 0.2);\nctx.fillStyle = st.houseWall || '#fffaf2'; ctx.fillRect(-s * 0.3, -s * 0.06, s * 0.6, s * 0.44);\nctx.fillStyle = st.accent; ctx.beginPath(); ctx.moveTo(-s * 0.42, -s * 0.04); ctx.lineTo(0, -s * 0.42); ctx.lineTo(s * 0.42, -s * 0.04); ctx.closePath(); ctx.fill();\nctx.fillStyle = st.accentLo || st.accent; roundRect(ctx, -s * 0.07, s * 0.12, s * 0.14, s * 0.26, s * 0.07); ctx.fill();\nctx.save(); ctx.translate(0, -s * 0.16); var b = 1 + 0.08 * Math.sin(t * 3); ctx.scale(b, b); ctx.fillStyle = '#fff'; heartPath(ctx, s * 0.07); ctx.fill(); ctx.restore();\nctx.fillStyle = '#ffe9a8'; ctx.fillRect(-s * 0.23, s * 0.04, s * 0.1, s * 0.1); ctx.fillRect(s * 0.13, s * 0.04, s * 0.1, s * 0.1);\n},\nfeet: function (ctx, s, t, st) {\n[-1, 1].forEach(function (d) {\nctx.save(); ctx.translate(d * s * 0.17, Math.sin(t * 2 + d) * s * 0.02); ctx.rotate(d * 0.16); ctx.fillStyle = d < 0 ? st.accent : (st.accent2 || st.accent);\nctx.beginPath(); ctx.ellipse(0, s * 0.1, s * 0.11, s * 0.2, 0, 0, TAU); ctx.fill();\n[[-0.1, -0.13, 0.035], [-0.045, -0.18, 0.038], [0.015, -0.2, 0.04], [0.075, -0.18, 0.045], [0.12, -0.12, 0.05]].forEach(function (o) {\nctx.beginPath(); ctx.arc(-d * o[0] * s, o[1] * s, o[2] * s, 0, TAU); ctx.fill();\n});\nctx.restore();\n});\n},\nlotus: function (ctx, s, t, st) {\nvar c = st.lotus || ['#ff8fb3', '#ffc2d4', '#ff6f9c'], br = 1 + 0.03 * Math.sin(t * 2);\nctx.translate(0, s * 0.22); ctx.scale(br, br);\n[[-1.25, 0.34, c[2]], [1.25, 0.34, c[2]], [-0.8, 0.44, c[0]], [0.8, 0.44, c[0]], [-0.38, 0.5, c[1]], [0.38, 0.5, c[1]], [0, 0.56, c[0]]].forEach(function (p) {\nctx.save(); ctx.rotate(p[0]); ctx.fillStyle = p[2]; petalPath(ctx, s * p[1], s * 0.16); ctx.fill(); ctx.restore();\n});\nctx.fillStyle = st.accent; ctx.beginPath(); ctx.ellipse(0, s * 0.03, s * 0.34, s * 0.035, 0, 0, TAU); ctx.fill();\n},\nballoons: function (ctx, s, t, st) {\nvar cs = st.balloonColors || ['#ff5a7a', '#ffc93c', '#4db8ff'];\n[[-0.2, -0.05, -0.25], [0.2, -0.05, 0.25], [0, -0.2, 0]].forEach(function (b, i) {\nvar bob = Math.sin(t * 1.6 + i * 2) * s * 0.02, x = b[0] * s, y = b[1] * s + bob;\nctx.strokeStyle = rgba(st.ink, 0.5); ctx.lineWidth = 2.5; ctx.beginPath(); ctx.moveTo(x, y + s * 0.2); ctx.quadraticCurveTo(x * 0.6, s * 0.3, 0, s * 0.46); ctx.stroke();\nctx.fillStyle = cs[i]; ctx.beginPath(); ctx.ellipse(x, y, s * 0.16, s * 0.2, b[2], 0, TAU); ctx.fill();\nctx.fillStyle = 'rgba(255,255,255,.4)'; ctx.beginPath(); ctx.ellipse(x - s * 0.05, y - s * 0.08, s * 0.03, s * 0.055, 0.5, 0, TAU); ctx.fill();\n});\n},\nstar: function (ctx, s, t, st) {\nctx.rotate(Math.sin(t * 0.8) * 0.12); ctx.fillStyle = goldGrad(ctx, -s / 2, s / 2, st, t); starPath(ctx, s * 0.42, 4, 0.25); ctx.fill();\nctx.rotate(Math.PI / 4); ctx.globalAlpha = 0.7; starPath(ctx, s * 0.24, 4, 0.25); ctx.fill();\n}\n};\nfunction drawEmblem(ctx, type, y, size, t, local, st, delay) {\nvar efn = emblems[type] || BABY_ILL[type]; if (!efn) return;\nvar p = clamp((local - (delay || 0)) / 0.9); if (p <= 0) return;\nctx.save(); ctx.translate(W / 2, y * H + Math.sin(t * 1.3) * 8);\nvar sc = ease.back(p); ctx.scale(sc, sc); ctx.globalAlpha *= clamp(p * 2);\nefn(ctx, size, t, st); ctx.restore();\n}\nfunction fontStr(st, key, size, italic, weight) {\nvar fam = st.fonts[key] || st.fonts.body, fb = key === 'script' ? 'cursive' : (key === 'sans' ? 'sans-serif' : 'serif');\nreturn (italic ? 'italic ' : '') + (weight || 400) + ' ' + Math.round(size) + 'px \"' + fam + '\", ' + fb;\n}\nfunction fill(str, vals) {\nreturn String(str).replace(/\\{(\\w+)\\}/g, function (_, k) { return (vals[k] == null ? '' : String(vals[k])).trim(); });\n}\nfunction layout(ctx, st, ln, text) {\nvar maxW = W * (ln.mw || 0.8), size = ln.s, min = ln.s * 0.62, lines;\nvar paras = text.split(/\\n/);\nvar set = function () { ctx.font = fontStr(st, ln.f, size, ln.it, ln.w); };\nvar widest = function () { set(); return Math.max.apply(null, paras.map(function (p) { return ctx.measureText(p).width; })); };\nif (!ln.wrap) { while (widest() > maxW && size > min) size *= 0.95; }\nset(); lines = [];\nparas.forEach(function (p) {\nvar words = p.split(/\\s+/), cur = '';\nwords.forEach(function (w) {\nvar test = cur ? cur + ' ' + w : w;\nif (ctx.measureText(test).width > maxW && cur) { lines.push(cur); cur = w; } else cur = test;\n});\nif (cur) lines.push(cur);\n});\nreturn { size: size, lines: lines };\n}\nfunction drawLine(ctx, st, ln, vals, t, local, exit) {\nvar text = fill(ln.t, vals); if (ln.up) text = text.toUpperCase();\nif (!text.trim()) return;\nvar p = clamp((local - (ln.d || 0)) / (ln.dur || 0.9)); if (p <= 0) return;\nvar e = ease.out(p), alpha = clamp(p * 1.6) * exit, dy = (1 - exit) * -40, scale = 1, anim = ln.a || 'up';\nif (anim === 'up') dy += (1 - e) * 70;\nif (anim === 'drop') dy -= (1 - ease.back(p)) * 120;\nif (anim === 'zoom') scale = 0.55 + 0.45 * ease.back(p);\n    var dx = anim === 'slide' ? (1 - e) * (ln.al === 'right' ? 110 : -110) : 0;\nctx.save();\nif ('letterSpacing' in ctx) ctx.letterSpacing = ((ln.ls || 0) + (anim === 'spread' ? (1 - e) * 26 : 0)) + 'px';\nvar L = layout(ctx, st, ln, text), lh = L.size * (ln.lh || 1.22), y0 = ln.y * H - (L.lines.length - 1) * lh / 2;\nctx.textAlign = ln.al || 'center'; ctx.textBaseline = 'middle'; ctx.globalAlpha *= alpha * (ln.op == null ? 1 : ln.op);\nctx.translate((ln.x == null ? 0.5 : ln.x) * W + dx, y0 + dy); if (ln.rot) ctx.rotate(ln.rot); ctx.scale(scale, scale);\nif (st.textShadow) { ctx.shadowColor = st.textShadow; ctx.shadowBlur = 16; ctx.shadowOffsetY = 3; }\nvar total = L.lines.join('').length, shown = anim === 'type' ? Math.ceil(total * clamp((local - (ln.d || 0)) / (ln.dur || 1.4))) : total;\nL.lines.forEach(function (s, i) {\nif (anim === 'type') { var take = Math.max(0, Math.min(s.length, shown)); shown -= s.length; if (!take) return; s = s.slice(0, take); }\nvar w = ctx.measureText(s).width;\nctx.fillStyle = ln.c === 'gold' ? (st.flatAccent ? st.accent : goldGrad(ctx, ln.al === 'left' ? 0 : (ln.al === 'right' ? -w : -w / 2), ln.al === 'left' ? w : (ln.al === 'right' ? 0 : w / 2), st, t)) : (ln.c === 'accent' ? st.accent : (ln.c && ln.c.charAt(0) === '#' ? ln.c : st.ink));\nctx.fillText(s, 0, i * lh);\n});\nctx.restore();\n}\nfunction drawDivider(ctx, st, y, t, local, d, exit) {\nvar p = ease.out(clamp((local - d) / 0.9)); if (p <= 0) return;\nctx.save(); ctx.globalAlpha *= exit; ctx.translate(W / 2, y * H); ctx.strokeStyle = ctx.fillStyle = st.accent; ctx.lineWidth = 3;\nctx.beginPath(); ctx.moveTo(-230 * p, 0); ctx.lineTo(-30, 0); ctx.moveTo(30, 0); ctx.lineTo(230 * p, 0); ctx.stroke();\nctx.rotate(Math.PI / 4); ctx.fillRect(-10, -10, 20, 20); ctx.restore();\n}\nfunction drawPhoto(ctx, st, img, y, r, t, local, exit) {\nvar p = clamp(local / 0.9); if (p <= 0) return;\nvar sc = ease.back(p), iw = img.naturalWidth || img.width, ih = img.naturalHeight || img.height, m = Math.min(iw, ih);\nctx.save(); ctx.globalAlpha *= clamp(p * 2) * exit; ctx.translate(W / 2, y * H); ctx.scale(sc, sc);\nctx.save(); ctx.beginPath(); ctx.arc(0, 0, r, 0, TAU); ctx.clip();\nctx.drawImage(img, (iw - m) / 2, (ih - m) / 2, m, m, -r, -r, r * 2, r * 2); ctx.restore();\nctx.lineWidth = 8; ctx.strokeStyle = goldGrad(ctx, -r, r, st, t); ctx.beginPath(); ctx.arc(0, 0, r + 10, 0, TAU); ctx.stroke();\nctx.lineWidth = 2; ctx.beginPath(); ctx.arc(0, 0, r + 26, 0, TAU); ctx.stroke();\nctx.restore();\n}\n/* ---------- editorial layout helpers (deco layers, framed photos, rules) ---------- */\nfunction decoCol(ctx, st, c, t, x0, x1) {\n  if (c === 'gold') return st.flatAccent ? st.accent : goldGrad(ctx, x0, x1, st, t);\n  if (c === 'accent') return st.accent;\n  if (c === 'ink' || !c) return st.ink;\n  if (c === 'hi') return st.accentHi || st.accent;\n  if (c === 'lo') return st.accentLo || st.accent;\n  return c;\n}\nfunction shapePath(ctx, shape, w, h, r) {\n  ctx.beginPath();\n  if (shape === 'circle') { ctx.ellipse(0, 0, w / 2, h / 2, 0, 0, TAU); return; }\n  if (shape === 'arch') { ctx.moveTo(-w / 2, h / 2); ctx.lineTo(-w / 2, -h / 2 + w / 2); ctx.arc(0, -h / 2 + w / 2, w / 2, Math.PI, 0); ctx.lineTo(w / 2, h / 2); ctx.closePath(); return; }\n  if (shape === 'blob') {\n    for (var i = 0; i <= 64; i++) { var a = i / 64 * TAU, k = 1 + 0.06 * Math.sin(a * 3 + 0.6) + 0.04 * Math.cos(a * 5 + 1.3); ctx[i ? 'lineTo' : 'moveTo'](Math.cos(a) * w / 2 * k, Math.sin(a) * h / 2 * k); }\n    ctx.closePath(); return;\n  }\n  roundRect(ctx, -w / 2, -h / 2, w, h, r || 0);\n}\nfunction drawDeco(ctx, st, dk, vals, t, local, exit) {\n  var p = clamp((local - (dk.d || 0)) / (dk.dur || 1.1)); if (p <= 0) return;\n  var e = ease.out(p);\n  ctx.save(); ctx.globalAlpha *= clamp(p * 1.5) * exit * (dk.op == null ? 1 : dk.op);\n  var k = dk.k;\n  if (k === 'rect' || k === 'arch' || k === 'circle' || k === 'blobshape') {\n    var w = dk.w * W, h = (dk.h != null ? dk.h * H : w), cx = dk.x * W, cy = dk.y * H;\n    ctx.translate(cx, cy); if (dk.rot) ctx.rotate(dk.rot);\n    if (dk.grow) ctx.scale(1, 0.2 + 0.8 * e); else ctx.scale(0.96 + 0.04 * e, 0.96 + 0.04 * e);\n    shapePath(ctx, k === 'rect' ? 'rect' : (k === 'blobshape' ? 'blob' : k), w, h, dk.r);\n    if (dk.shadow) { ctx.shadowColor = dk.shadow; ctx.shadowBlur = 50; ctx.shadowOffsetY = 18; }\n    if (dk.fill) {\n      if (Array.isArray(dk.fill)) { var g = ctx.createLinearGradient(-w / 2, -h / 2, w / 2, h / 2); dk.fill.forEach(function (c, i) { g.addColorStop(i / (dk.fill.length - 1), c); }); ctx.fillStyle = g; }\n      else ctx.fillStyle = decoCol(ctx, st, dk.fill, t, -w / 2, w / 2);\n      ctx.fill();\n    }\n    ctx.shadowColor = 'transparent';\n    if (dk.stroke) { ctx.lineWidth = dk.lw || 2; ctx.strokeStyle = decoCol(ctx, st, dk.stroke, t, -w / 2, w / 2); ctx.stroke(); }\n  } else if (k === 'line') {\n    var x1 = dk.x1 * W, y1 = dk.y1 * H, x2 = dk.x2 * W, y2 = dk.y2 * H;\n    ctx.strokeStyle = decoCol(ctx, st, dk.c || 'accent', t, Math.min(x1, x2), Math.max(x1, x2) + 1); ctx.lineWidth = dk.lw || 2; ctx.lineCap = 'round';\n    if (dk.dash) ctx.setLineDash(dk.dash);\n    ctx.beginPath(); ctx.moveTo(x1, y1); ctx.lineTo(x1 + (x2 - x1) * e, y1 + (y2 - y1) * e); ctx.stroke();\n  } else if (k === 'dot') {\n    ctx.fillStyle = decoCol(ctx, st, dk.c || 'accent', t, 0, W); ctx.translate(dk.x * W, dk.y * H);\n    if (dk.diamond) { ctx.rotate(Math.PI / 4); ctx.fillRect(-dk.r, -dk.r, dk.r * 2, dk.r * 2); } else { ctx.beginPath(); ctx.arc(0, 0, dk.r || 6, 0, TAU); ctx.fill(); }\n  } else if (k === 'blob') {\n    var rr = dk.r, rnd = rng(dk.seed || 7), ph = [rnd() * 6, rnd() * 6, rnd() * 6], dr = Math.sin(t * 0.5 + ph[0]) * (dk.drift || 18);\n    ctx.translate(dk.x * W + dr, dk.y * H + Math.cos(t * 0.4 + ph[1]) * (dk.drift || 18)); ctx.rotate(t * 0.05 + ph[2]);\n    ctx.beginPath();\n    for (var i = 0; i <= 72; i++) { var a = i / 72 * TAU, m = 1 + 0.16 * Math.sin(a * 3 + ph[0] + t * 0.35) + 0.09 * Math.sin(a * 5 + ph[1] - t * 0.25); ctx[i ? 'lineTo' : 'moveTo'](Math.cos(a) * rr * m, Math.sin(a) * rr * m * (dk.squash || 1)); }\n    ctx.closePath();\n    if (Array.isArray(dk.c)) { var bg = ctx.createLinearGradient(-rr, -rr, rr, rr); bg.addColorStop(0, dk.c[0]); bg.addColorStop(1, dk.c[1]); ctx.fillStyle = bg; } else ctx.fillStyle = decoCol(ctx, st, dk.c, t, -rr, rr);\n    if (dk.stroke) { ctx.lineWidth = dk.lw || 3; ctx.strokeStyle = decoCol(ctx, st, dk.stroke, t, -rr, rr); ctx.stroke(); } else ctx.fill();\n  } else if (k === 'big') {\n    var txt = fill(dk.t, vals); if (dk.up) txt = txt.toUpperCase(); if (!txt.trim()) { ctx.restore(); return; }\n    if ('letterSpacing' in ctx) ctx.letterSpacing = (dk.ls || 0) + 'px';\n    ctx.font = fontStr(st, dk.f || 'title', dk.s, dk.it, dk.w); ctx.textAlign = dk.al || 'center'; ctx.textBaseline = 'middle';\n    ctx.translate(dk.x * W, dk.y * H + (1 - e) * 40); if (dk.rot) ctx.rotate(dk.rot);\n    var tw = ctx.measureText(txt).width;\n    if (dk.stroke) { ctx.lineWidth = dk.lw || 2; ctx.strokeStyle = decoCol(ctx, st, dk.stroke, t, -tw / 2, tw / 2); ctx.strokeText(txt, 0, 0); }\n    else { ctx.fillStyle = decoCol(ctx, st, dk.c || 'accent', t, -tw / 2, tw / 2); ctx.fillText(txt, 0, 0); }\n  } else if (k === 'sprig') {\n    var fc = st.flowers || ['#e8a0ad', '#f4c6cf', '#d9798b'], lc = st.leaf || '#8fae8b', ce = st.accentHi || '#fff3c4';\n    ctx.translate(dk.x * W, dk.y * H); ctx.rotate((dk.rot || 0) + Math.sin(t * 0.8 + (dk.seed || 0)) * 0.03); ctx.scale((dk.s || 1) * e, (dk.s || 1) * e); if (dk.flip) ctx.scale(-1, 1);\n    ctx.strokeStyle = lc; ctx.lineWidth = 4; ctx.beginPath(); ctx.moveTo(0, 0); ctx.quadraticCurveTo(60, -120, 30, -260); ctx.stroke();\n    [[10, -60, 90, -0.6], [40, -120, 80, 0.9], [25, -180, 70, -0.5], [45, -220, 60, 0.8]].forEach(function (l) { leaf(ctx, l[0], l[1], l[2], l[3] - Math.PI / 2, lc); });\n    flower(ctx, 30, -270, 62, fc[0], ce, t * 0.05); flower(ctx, -20, -150, 44, fc[1], ce, 0.4); flower(ctx, 70, -190, 34, fc[2], ce, 1.2);\n  } else if (k === 'balloon') { drawBalloon(ctx, st, dk, t, e);\n  } else if (k === 'foil') { drawFoil(ctx, st, dk, vals, t, e);\n  } else if (k === 'glitter') { drawGlitterText(ctx, st, dk, vals, t, e);\n  } else if (k === 'dust') { drawDust(ctx, st, dk, t);\n  } else if (k === 'emb') { drawEmbDeco(ctx, st, dk, t, e);\n  } else if (k === 'floatup') { drawFloatUp(ctx, st, dk, t);\n  } else if (k === 'glitterbg') { drawGlitterBg(ctx, st, dk, t);\n  } else if (k === 'risers') { drawRisers(ctx, st, dk, t);\n  } else if (k === 'grid') {\n    ctx.strokeStyle = decoCol(ctx, st, dk.c || 'accent', t, 0, W); ctx.lineWidth = dk.lw || 1;\n    for (var gx = dk.step; gx < W; gx += dk.step) { ctx.beginPath(); ctx.moveTo(gx, 0); ctx.lineTo(gx, H); ctx.stroke(); }\n  }\n  ctx.restore();\n}\n/* ---------- glam effects: 3D balloons, foil numbers, glitter text, glitter dust ---------- */\nfunction metalGrad(ctx, c, x0, y0, x1, y1) { var g = ctx.createLinearGradient(x0, y0, x1, y1); c.forEach(function (cc, i) { g.addColorStop(i / (c.length - 1), cc); }); return g; }\nvar GLIT_ROUND = 0;\nfunction glitterDots(ctx, w, h, seed, n, cols, t, sz) {\n  var r = rng(seed || 3), base = ctx.globalAlpha;\n  for (var i = 0; i < n; i++) {\n    var x = (r() - 0.5) * w, y = (r() - 0.5) * h, s = (0.6 + r() * 1.4) * (sz || 2.2), ph = r() * TAU, sp = 1.5 + r() * 2;\n    ctx.globalAlpha = base * (0.4 + 0.6 * Math.abs(Math.sin(t * sp + ph))); ctx.fillStyle = cols[i % cols.length]; if (GLIT_ROUND) { ctx.beginPath(); ctx.arc(x, y, s * 0.6, 0, TAU); ctx.fill(); } else ctx.fillRect(x, y, s, s);\n  }\n  ctx.globalAlpha = base;\n}\nfunction balloonPath(ctx, R) {\n  ctx.beginPath(); ctx.moveTo(0, -R * 1.05);\n  ctx.bezierCurveTo(R * 0.62, -R * 1.05, R * 1.02, -R * 0.62, R * 1.0, -R * 0.05);\n  ctx.bezierCurveTo(R * 0.98, R * 0.55, R * 0.45, R * 1.05, 0, R * 1.18);\n  ctx.bezierCurveTo(-R * 0.45, R * 1.05, -R * 0.98, R * 0.55, -R * 1.0, -R * 0.05);\n  ctx.bezierCurveTo(-R * 1.02, -R * 0.62, -R * 0.62, -R * 1.05, 0, -R * 1.05); ctx.closePath();\n}\nvar FX_CACHE = {}, FX_N = 0;\nfunction fxCache(key, w, h, draw) {\n  var c = FX_CACHE[key]; if (c) return c;\n  if (++FX_N > 90) { FX_CACHE = {}; FX_N = 1; }\n  c = document.createElement('canvas'); c.width = Math.max(1, Math.ceil(w)); c.height = Math.max(1, Math.ceil(h)); draw(c.getContext('2d'), c); FX_CACHE[key] = c; return c;\n}\nfunction balloonSprite(dk, frame) {\n  var R = dk.r, c = dk.c, pad = R * 0.45, w = R * 2 + pad * 2, h = R * 2.45 + pad * 2;\n  return fxCache(['b', R, c.join(), dk.glit ? (dk.gc || []).join() : '', dk.shadow || '', dk.seed || 0, dk.conf ? (dk.gc || []).join() + 'c' : '', frame].join('|'), w, h, function (o) {\n    o.translate(w / 2, pad + R * 1.05);\n    o.fillStyle = c[2]; o.beginPath(); o.moveTo(-R * 0.08, R * 1.15); o.lineTo(R * 0.08, R * 1.15); o.lineTo(R * 0.05, R * 1.27); o.lineTo(-R * 0.05, R * 1.27); o.closePath(); o.fill();\n    o.save();\n    if (dk.shadow) { o.shadowColor = dk.shadow; o.shadowBlur = R * 0.35; o.shadowOffsetY = R * 0.12; }\n    balloonPath(o, R);\n    var g = o.createRadialGradient(-R * 0.35, -R * 0.45, R * 0.04, -R * 0.1, -R * 0.1, R * 1.45); g.addColorStop(0, c[0]); g.addColorStop(0.42, c[1]); g.addColorStop(1, c[2]);\n    o.fillStyle = g; o.fill(); o.shadowColor = 'transparent'; o.clip();\n    if (dk.conf) { var cr = rng((dk.seed || 0) * 13 + 7); for (var ci = 0; ci < 46; ci++) { var ca = cr() * TAU, cd = Math.sqrt(cr()) * R * 0.95, cs = R * (0.035 + cr() * 0.05); o.fillStyle = dk.gc[ci % dk.gc.length]; o.beginPath(); o.arc(Math.cos(ca) * cd, Math.sin(ca) * cd * 1.08 + R * 0.12, cs, 0, TAU); o.fill(); } o.lineWidth = Math.max(1.5, R * 0.025); o.strokeStyle = 'rgba(255,255,255,.55)'; balloonPath(o, R); o.stroke(); }\n    if (dk.glit) glitterDots(o, R * 2.2, R * 2.5, (dk.seed || 0) * 7 + 1 + frame * 101, Math.round(R * R / 26), dk.gc, frame * 0.9, R / 42);\n    var rim = o.createRadialGradient(-R * 0.1, -R * 0.1, R * 0.65, 0, 0, R * 1.25); rim.addColorStop(0, 'rgba(0,0,0,0)'); rim.addColorStop(1, 'rgba(70,25,25,.22)'); o.fillStyle = rim; o.fillRect(-R * 1.3, -R * 1.4, R * 2.6, R * 2.8);\n    var rl = o.createRadialGradient(R * 0.45, R * 0.6, 0, R * 0.45, R * 0.6, R * 0.6); rl.addColorStop(0, 'rgba(255,255,255,.22)'); rl.addColorStop(1, 'rgba(255,255,255,0)'); o.fillStyle = rl; o.fillRect(-R * 1.3, -R * 1.4, R * 2.6, R * 2.8);\n    o.restore();\n    o.fillStyle = 'rgba(255,255,255,.78)'; o.beginPath(); o.ellipse(-R * 0.4, -R * 0.5, R * 0.12, R * 0.27, 0.6, 0, TAU); o.fill();\n    o.globalAlpha = 0.65; o.beginPath(); o.ellipse(-R * 0.13, -R * 0.82, R * 0.07, R * 0.05, 0.3, 0, TAU); o.fill();\n  });\n}\nfunction drawBalloon(ctx, st, dk, t, e) {\n  var R = dk.r, sd = dk.seed || 0, bob = Math.sin(t * 0.9 + sd * 1.7) * (dk.bob == null ? 10 : dk.bob), sway = Math.sin(t * 0.6 + sd) * 0.04;\n  ctx.translate(dk.x * W, dk.y * H + bob + (1 - e) * (dk.from == null ? 140 : dk.from)); ctx.rotate((dk.rot || 0) + sway);\n  var L = dk.len == null ? 220 : dk.len;\n  if (L) {\n    ctx.save(); ctx.strokeStyle = dk.sc; ctx.lineWidth = 2.4; ctx.lineCap = 'round'; ctx.beginPath(); ctx.moveTo(0, R * 1.24);\n    for (var i = 1; i <= 16; i++) { var q = i / 16; ctx.lineTo(Math.sin(q * 9 + t * 1.3 + sd) * 11 * q, R * 1.24 + L * q); }\n    ctx.stroke(); ctx.restore();\n  }\n  var fr = dk.glit ? Math.floor(t * 3 + sd) % 3 : 0, sp = balloonSprite(dk, fr), pad = R * 0.45;\n  ctx.drawImage(sp, -sp.width / 2, -(pad + R * 1.05));\n}\nfunction drawFoil(ctx, st, dk, vals, t, e) {\n  var txt = fill(dk.t, vals).trim(); if (!txt) return;\n  var s = dk.s, c = dk.c, sd = dk.seed || 0;\n  ctx.font = fontStr(st, dk.f || 'foil', s, false, 700); ctx.textAlign = 'center'; ctx.textBaseline = 'middle';\n  if ('letterSpacing' in ctx) ctx.letterSpacing = (dk.ls || 0) + 'px';\n  var tw = ctx.measureText(txt).width, sc = Math.min(1, (dk.mw || 0.7) * W / (tw + s * 0.15));\n  ctx.translate(dk.x * W, dk.y * H + Math.sin(t * 0.8 + sd) * 12 - (1 - ease.back(e)) * 260); ctx.rotate(Math.sin(t * 0.7 + sd) * 0.025); ctx.scale(sc, sc);\n  var g = metalGrad(ctx, c, 0, -s * 0.5, s * 0.25, s * 0.5);\n  ctx.lineJoin = 'round'; ctx.lineWidth = s * 0.13; ctx.strokeStyle = g; ctx.fillStyle = g;\n  var fnt = ctx.font, fw = tw + s * 0.8, fh = s * 1.9, fls = ctx.letterSpacing || '';\n  ctx.drawImage(fxCache(['fs', txt, fnt, fls, !document.fonts || document.fonts.check(fnt), dk.shadow].join('|'), fw, fh, function (q) {\n    q.font = fnt; if (fls) q.letterSpacing = fls; q.textAlign = 'center'; q.textBaseline = 'middle'; q.lineJoin = 'round'; q.lineWidth = s * 0.13; q.strokeStyle = q.fillStyle = '#000';\n    q.shadowColor = dk.shadow; q.shadowBlur = 40; q.shadowOffsetX = fw * 3; q.shadowOffsetY = 26; q.strokeText(txt, fw / 2 - fw * 3, fh / 2); q.fillText(txt, fw / 2 - fw * 3, fh / 2);\n  }), -fw / 2, -fh / 2);\n  ctx.strokeText(txt, 0, 0);\n  ctx.fillText(txt, 0, 0);\n  var sh = ((t * 0.3 + sd * 0.2) % 1.4 - 0.2) * tw * 1.6 - tw * 0.8, sg = ctx.createLinearGradient(sh - s * 0.35, -s * 0.5, sh + s * 0.35, s * 0.5);\n  sg.addColorStop(0, 'rgba(255,255,255,0)'); sg.addColorStop(0.5, 'rgba(255,255,255,.35)'); sg.addColorStop(1, 'rgba(255,255,255,0)');\n  ctx.lineWidth = s * 0.022; ctx.strokeStyle = 'rgba(255,255,255,.6)'; ctx.strokeText(txt, -s * 0.015, -s * 0.025);\n  ctx.lineWidth = s * 0.012; ctx.strokeStyle = sg; ctx.strokeText(txt, 0, 0);\n  ctx.fillStyle = 'rgba(255,255,255,.55)'; ctx.beginPath(); ctx.ellipse(-tw * 0.28, -s * 0.28, s * 0.035, s * 0.09, 0.4, 0, TAU); ctx.fill();\n}\nvar GLIT_W = null;\nfunction drawGlitterText(ctx, st, dk, vals, t, e) {\n  var txt = fill(dk.t, vals); if (dk.up) txt = txt.toUpperCase(); txt = txt.trim(); if (!txt) return;\n  var s = dk.s, font = fontStr(st, dk.f || 'script', s, dk.it, dk.w);\n  ctx.font = font; var tw = ctx.measureText(txt).width, sc = Math.min(1, (dk.mw || 0.84) * W / tw);\n  var cw = Math.ceil(tw + s * 0.9), ch = Math.ceil(s * 1.8), ready = !document.fonts || document.fonts.check(font), fr = Math.floor(t * 4) % 3;\n  var base = fxCache(['g', txt, font, ready, dk.c.join(), dk.dots.join(), dk.seed || 5, dk.round ? 'r' + (dk.dens || 60) : '', fr].join('|'), cw, ch, function (o) {\n    o.font = font; o.textAlign = 'center'; o.textBaseline = 'middle';\n    o.fillStyle = metalGrad(o, dk.c, cw * 0.3, 0, cw * 0.7, ch); o.fillText(txt, cw / 2, ch / 2);\n    o.globalCompositeOperation = 'source-atop'; o.translate(cw / 2, ch / 2);\n    GLIT_ROUND = dk.round ? 1 : 0; glitterDots(o, cw, ch, (dk.seed || 5) + fr * 37, Math.min(dk.round ? 16000 : 9000, Math.round(cw * ch / (dk.dens || 60))), dk.dots, fr * 1.3, dk.round ? s / 95 : s / 75); GLIT_ROUND = 0;\n  });\n  if (!GLIT_W) GLIT_W = document.createElement('canvas');\n  if (GLIT_W.width < cw || GLIT_W.height < ch) { GLIT_W.width = Math.max(GLIT_W.width, cw); GLIT_W.height = Math.max(GLIT_W.height, ch); }\n  var o = GLIT_W.getContext('2d'); o.globalCompositeOperation = 'source-over'; o.clearRect(0, 0, cw, ch); o.drawImage(base, 0, 0);\n  var shx = ((t * 0.32 + (dk.seed || 0) * 0.1) % 1.6 - 0.3) * cw, sg = o.createLinearGradient(shx - s * 0.8, 0, shx + s * 0.8, ch);\n  sg.addColorStop(0, 'rgba(255,255,255,0)'); sg.addColorStop(0.5, 'rgba(255,255,255,.5)'); sg.addColorStop(1, 'rgba(255,255,255,0)');\n  o.globalCompositeOperation = 'source-atop'; o.fillStyle = sg; o.fillRect(0, 0, cw, ch); o.globalCompositeOperation = 'source-over';\n  var k = sc * (0.92 + 0.08 * e);\n  ctx.translate(dk.x * W, dk.y * H + (1 - e) * 50); ctx.scale(k, k);\n  if (dk.shadow) ctx.drawImage(fxCache(['gs', txt, font, ready, dk.shadow].join('|'), cw, ch, function (q) {\n    q.font = font; q.textAlign = 'center'; q.textBaseline = 'middle'; q.fillStyle = '#000'; q.shadowColor = dk.shadow; q.shadowBlur = 22; q.shadowOffsetX = cw * 3; q.shadowOffsetY = 8; q.fillText(txt, cw / 2 - cw * 3, ch / 2);\n  }), -cw / 2, -ch / 2);\n  ctx.drawImage(GLIT_W, 0, 0, cw, ch, -cw / 2, -ch / 2, cw, ch);\n  var r = rng((dk.seed || 5) + 11);\n  for (var i = 0; i < (dk.stars == null ? 5 : dk.stars); i++) {\n    var x = (r() - 0.5) * tw * 0.9, y = (r() - 0.5) * s * 0.6, ph = r() * TAU, a = Math.sin(t * 1.4 + ph);\n    if (a < 0.08) continue;\n    ctx.save(); ctx.translate(x, y); ctx.rotate(ph + t * 0.3); ctx.globalAlpha *= a; ctx.fillStyle = '#ffffff'; starPath(ctx, s * 0.11 * a + 5, 4, 0.16); ctx.fill(); ctx.restore();\n  }\n}\nfunction drawDust(ctx, st, dk, t) {\n  var bs = ctx.globalAlpha, r = rng(dk.seed || 9), n = dk.n || 400; ctx.translate(dk.x * W, dk.y * H);\n  for (var i = 0; i < n; i++) {\n    var u = r(), v = Math.pow(r(), dk.pow || 1), x = (u - 0.5) * dk.w * W, y = (dk.up ? 0.5 - v : v - 0.5) * dk.h * H, s = (0.5 + r() * 1.5) * (dk.sz || 3), ph = r() * TAU, sp = 1 + r() * 2;\n    y += Math.sin(t * 0.5 + ph) * 4;\n    ctx.globalAlpha = bs * (0.3 + 0.7 * Math.abs(Math.sin(t * sp + ph))) * (dk.fade ? 1 - v * 0.85 : 1); ctx.fillStyle = dk.c[i % dk.c.length];\n    if (i % 9 === 0 && s > 3) { ctx.save(); ctx.translate(x, y); ctx.rotate(ph); starPath(ctx, s * 1.7, 4, 0.22); ctx.fill(); ctx.restore(); }\n    else { ctx.beginPath(); ctx.arc(x, y, s / 2, 0, TAU); ctx.fill(); }\n  }\n  ctx.globalAlpha = bs;\n}\n/* ---------- full glitter background + rising balloons ---------- */\nfunction glitterBgFrame(dk, fr) {\n  var edge = dk.edge == null ? 0.35 : dk.edge;\n  return fxCache(['gb', dk.bg.join(), dk.cols.join(), dk.n || 9000, dk.seed || 1, dk.vig || '', edge, fr].join('|'), W, H, function (o) {\n    var g = o.createLinearGradient(0, 0, W * 0.35, H); dk.bg.forEach(function (c, i) { g.addColorStop(i / (dk.bg.length - 1), c); }); o.fillStyle = g; o.fillRect(0, 0, W, H);\n    var r = rng(dk.seed || 1), rb = rng((dk.seed || 1) * 31 + fr * 977), n = dk.n || 9000, i, x, y;\n    for (i = 0; i < (dk.bokeh || 70); i++) {\n      x = r() * W; y = r() * H; var rr = 12 + r() * 42, col = dk.cols[i % dk.cols.length], a = (0.12 + r() * 0.25) * (0.55 + 0.45 * rb());\n      var bg2 = o.createRadialGradient(x, y, 0, x, y, rr); bg2.addColorStop(0, col); bg2.addColorStop(1, 'rgba(0,0,0,0)'); o.globalAlpha = a; o.fillStyle = bg2; o.fillRect(x - rr, y - rr, rr * 2, rr * 2);\n    }\n    for (i = 0; i < n; i++) {\n      x = r() * W; y = r() * H; var yy = y / H, ed = Math.max(0, (0.38 - yy) / 0.38, (yy - 0.62) / 0.38), s = 1 + r() * r() * 5, ci = Math.floor(r() * dk.cols.length), keep = r(), lum = rb();\n      if (keep > edge + (1 - edge) * ed) continue;\n      o.globalAlpha = 0.22 + 0.78 * lum; o.fillStyle = dk.cols[ci]; o.beginPath(); o.arc(x, y, s, 0, TAU); o.fill();\n      if (lum > 0.86 && s > 2) { o.globalAlpha = Math.min(1, (lum - 0.86) * 7); o.fillStyle = '#ffffff'; o.beginPath(); o.arc(x - s * 0.25, y - s * 0.25, s * 0.45, 0, TAU); o.fill(); }\n    }\n    o.globalAlpha = 1;\n    if (dk.vig) { var v = o.createRadialGradient(W / 2, H * 0.52, W * 0.12, W / 2, H * 0.52, H * 0.52); v.addColorStop(0, dk.vig); v.addColorStop(1, 'rgba(0,0,0,0)'); o.fillStyle = v; o.fillRect(0, 0, W, H); }\n  });\n}\nfunction drawGlitterBg(ctx, st, dk, t) {\n  var f = t * (dk.speed || 5), a = Math.floor(f) % 3, b = (a + 1) % 3, m = f - Math.floor(f), base = ctx.globalAlpha;\n  ctx.drawImage(glitterBgFrame(dk, a), 0, 0); ctx.globalAlpha = base * m; ctx.drawImage(glitterBgFrame(dk, b), 0, 0); ctx.globalAlpha = base;\n  var r = rng((dk.seed || 1) + 5);\n  for (var i = 0; i < (dk.flares == null ? 26 : dk.flares); i++) {\n    var x = r() * W, y = r() * H, ph = r() * TAU, sz = 10 + r() * 22, k = Math.sin(t * (1.2 + r() * 1.5) + ph);\n    if (k < 0.15) continue;\n    ctx.save(); ctx.translate(x, y); ctx.globalAlpha = base * k;\n    var gl = ctx.createRadialGradient(0, 0, 0, 0, 0, sz * 1.4); gl.addColorStop(0, 'rgba(255,255,255,.55)'); gl.addColorStop(1, 'rgba(255,255,255,0)'); ctx.fillStyle = gl; ctx.fillRect(-sz * 1.4, -sz * 1.4, sz * 2.8, sz * 2.8);\n    ctx.rotate(ph * 0.2); ctx.fillStyle = '#ffffff'; starPath(ctx, sz * k, 4, 0.1); ctx.fill(); ctx.restore();\n  }\n}\nfunction drawRisers(ctx, st, dk, t) {\n  var r = rng(dk.seed || 2), n = dk.n || 10, list = [], i;\n  for (i = 0; i < n; i++) {\n    var R = Math.round(dk.rmin + r() * (dk.rmax - dk.rmin)), depth = (R - dk.rmin) / ((dk.rmax - dk.rmin) || 1);\n    var lane = r(), side = i % 2 ? 1 : 0, half = Math.ceil(n / 2), slot = (Math.floor(i / 2) + lane * 0.8) / half;\n    list.push({ i: i, R: R, d: depth, sp: (dk.speed || 110) * (0.6 + 0.8 * depth), x0: dk.lanes ? (side ? 1 - dk.lanes + slot * (dk.lanes - 0.02) : 0.02 + slot * (dk.lanes - 0.02)) : 0.05 + 0.9 * ((i + lane * 0.85) / n), ph: r(), tp: dk.types[i % dk.types.length] });\n  }\n  list.sort(function (p, q) { return p.d - q.d; });\n  var base = ctx.globalAlpha;\n  list.forEach(function (b) {\n    var R = b.R, L = R * 2.3, span = H + R * 2.5 + L + 60, y = H + R * 1.1 - ((t * b.sp + b.ph * span) % span), x = b.x0 * W + Math.sin(t * 0.7 + b.ph * 9) * 26;\n    ctx.save(); ctx.globalAlpha = base * (0.72 + 0.28 * b.d); ctx.translate(x, y); ctx.rotate(Math.sin(t * 0.9 + b.ph * 5) * 0.06);\n    ctx.strokeStyle = dk.sc; ctx.lineWidth = 2; ctx.lineCap = 'round'; ctx.beginPath(); ctx.moveTo(0, R * 1.24);\n    for (var j = 1; j <= 14; j++) { var q = j / 14; ctx.lineTo(Math.sin(q * 8 - t * 2.2 + b.ph * 7) * 12 * q, R * 1.24 + L * q); }\n    ctx.stroke();\n    var bd = { r: R, c: b.tp.c, glit: b.tp.glit, gc: b.tp.gc, conf: b.tp.conf, seed: b.i + 1, shadow: dk.shadow }, fr = b.tp.glit ? Math.floor(t * 3 + b.i) % 3 : 0, sp = balloonSprite(bd, fr);\n    ctx.drawImage(sp, -sp.width / 2, -(R * 0.45 + R * 1.05)); ctx.restore();\n  });\n}\n/* ---------- baby illustrations (original artwork) ---------- */\nfunction bbEye(ctx, x, y, r, t, dark) {\n  var blink = (t % 3.8) < 0.13 ? 0.15 : 1;\n  ctx.fillStyle = dark; ctx.beginPath(); ctx.ellipse(x, y, r, r * 1.15 * blink, 0, 0, TAU); ctx.fill();\n  if (blink > 0.5) { ctx.fillStyle = '#fff'; ctx.beginPath(); ctx.arc(x - r * 0.3, y - r * 0.4, r * 0.38, 0, TAU); ctx.fill(); }\n}\nfunction bbBlush(ctx, x, y, s, col) { ctx.fillStyle = col || 'rgba(255,138,160,.38)'; ctx.beginPath(); ctx.ellipse(x, y, s * 0.045, s * 0.028, 0, 0, TAU); ctx.fill(); }\nvar BABY_ILL = {\n  elephant: function (ctx, s, t, st) {\n    var b = st.ele || '#b9cfe6', d = st.eleDark || '#93b2d4', ear = st.eleEar || '#f6c9d6', ink = '#3f4a63';\n    ctx.rotate(Math.sin(t * 1.1) * 0.04);\n    ctx.fillStyle = d; [-1, 1].forEach(function (k) { ctx.beginPath(); ctx.ellipse(k * s * 0.16, s * 0.36, s * 0.1, s * 0.08, 0, 0, TAU); ctx.fill(); });\n    ctx.fillStyle = b; ctx.beginPath(); ctx.ellipse(0, s * 0.2, s * 0.3, s * 0.24, 0, 0, TAU); ctx.fill();\n    ctx.fillStyle = 'rgba(255,255,255,.55)'; [-1, 1].forEach(function (k) { [-0.04, 0, 0.04].forEach(function (o) { ctx.beginPath(); ctx.arc(k * s * 0.16 + o * s, s * 0.42, s * 0.017, 0, TAU); ctx.fill(); }); });\n    var flap = Math.sin(t * 2.2) * 0.08;\n    [-1, 1].forEach(function (k) {\n      ctx.save(); ctx.translate(k * s * 0.24, -s * 0.12); ctx.rotate(k * (0.15 + flap));\n      ctx.fillStyle = b; ctx.beginPath(); ctx.ellipse(k * s * 0.06, 0, s * 0.19, s * 0.22, 0, 0, TAU); ctx.fill();\n      ctx.fillStyle = ear; ctx.beginPath(); ctx.ellipse(k * s * 0.07, s * 0.01, s * 0.13, s * 0.16, 0, 0, TAU); ctx.fill(); ctx.restore();\n    });\n    ctx.fillStyle = b; ctx.beginPath(); ctx.arc(0, -s * 0.1, s * 0.25, 0, TAU); ctx.fill();\n    ctx.lineCap = 'round'; var cu = Math.sin(t * 1.6) * 0.03;\n    [[d, 0.118], [b, 0.096]].forEach(function (q) { ctx.strokeStyle = q[0]; ctx.lineWidth = s * q[1]; ctx.beginPath(); ctx.moveTo(0, -s * 0.02); ctx.bezierCurveTo(s * 0.01, s * 0.14, s * (0.12 + cu), s * 0.2, s * (0.2 + cu), s * 0.08); ctx.stroke(); });\n    ctx.fillStyle = b; ctx.beginPath(); ctx.arc(0, -s * 0.1, s * 0.2, 0, TAU); ctx.fill();\n    ctx.strokeStyle = d; ctx.lineWidth = s * 0.008; [0.06, 0.1, 0.14].forEach(function (yy) { ctx.beginPath(); ctx.moveTo(-s * 0.035, s * yy); ctx.quadraticCurveTo(0, s * (yy + 0.015), s * 0.045, s * yy); ctx.stroke(); });\n    bbEye(ctx, -s * 0.1, -s * 0.13, s * 0.03, t, ink); bbEye(ctx, s * 0.1, -s * 0.13, s * 0.03, t, ink);\n    bbBlush(ctx, -s * 0.16, -s * 0.04, s); bbBlush(ctx, s * 0.16, -s * 0.04, s);\n    ctx.strokeStyle = d; ctx.lineWidth = s * 0.012; ctx.beginPath(); ctx.moveTo(-s * 0.02, -s * 0.35); ctx.quadraticCurveTo(-s * 0.04, -s * 0.42, s * 0.01, -s * 0.44); ctx.moveTo(s * 0.02, -s * 0.35); ctx.quadraticCurveTo(s * 0.05, -s * 0.41, s * 0.06, -s * 0.38); ctx.stroke();\n  },\n  giraffe: function (ctx, s, t, st) {\n    var f = st.giraffe || '#f6c56b', sp = st.giraffeSpot || '#d9913f', mz = st.giraffeMuzzle || '#fbe3b4', ink = '#4a3220';\n    ctx.rotate(Math.sin(t * 1.0) * 0.05);\n    ctx.fillStyle = f; roundRect(ctx, -s * 0.09, -s * 0.05, s * 0.18, s * 0.6, s * 0.06); ctx.fill();\n    ctx.fillStyle = sp; [[-0.03, 0.06, 0.035], [0.04, 0.17, 0.03], [-0.04, 0.27, 0.035], [0.03, 0.38, 0.03], [-0.02, 0.48, 0.03]].forEach(function (p) { ctx.beginPath(); ctx.ellipse(p[0] * s, p[1] * s, p[2] * s, p[2] * s * 0.85, 0.4, 0, TAU); ctx.fill(); });\n    [-1, 1].forEach(function (k) {\n      ctx.strokeStyle = sp; ctx.lineWidth = s * 0.025; ctx.lineCap = 'round'; ctx.beginPath(); ctx.moveTo(k * s * 0.06, -s * 0.24); ctx.lineTo(k * s * 0.08, -s * 0.36); ctx.stroke();\n      ctx.fillStyle = sp; ctx.beginPath(); ctx.arc(k * s * 0.08, -s * 0.37, s * 0.03, 0, TAU); ctx.fill();\n      ctx.save(); ctx.translate(k * s * 0.17, -s * 0.2); ctx.rotate(k * (0.9 + Math.sin(t * 2 + k) * 0.08)); ctx.fillStyle = f; ctx.beginPath(); ctx.ellipse(0, 0, s * 0.08, s * 0.035, 0, 0, TAU); ctx.fill(); ctx.restore();\n    });\n    ctx.fillStyle = f; ctx.beginPath(); ctx.ellipse(0, -s * 0.15, s * 0.15, s * 0.14, 0, 0, TAU); ctx.fill();\n    ctx.fillStyle = mz; ctx.beginPath(); ctx.ellipse(0, -s * 0.06, s * 0.12, s * 0.08, 0, 0, TAU); ctx.fill();\n    ctx.fillStyle = ink; [-1, 1].forEach(function (k) { ctx.beginPath(); ctx.ellipse(k * s * 0.04, -s * 0.06, s * 0.012, s * 0.016, 0, 0, TAU); ctx.fill(); });\n    bbEye(ctx, -s * 0.06, -s * 0.17, s * 0.022, t, ink); bbEye(ctx, s * 0.06, -s * 0.17, s * 0.022, t, ink);\n    bbBlush(ctx, -s * 0.11, -s * 0.11, s * 0.8); bbBlush(ctx, s * 0.11, -s * 0.11, s * 0.8);\n  },\n  bunny: function (ctx, s, t, st) {\n    var f = st.bunny || '#fbf6f4', inn = st.bunnyIn || '#f6c1cf', ink = '#4a3a45', w = Math.sin(t * 1.8) * 0.06;\n    [-1, 1].forEach(function (k) {\n      ctx.save(); ctx.translate(k * s * 0.09, -s * 0.18); ctx.rotate(k * (0.12 + (k > 0 ? w : 0)));\n      ctx.fillStyle = f; ctx.beginPath(); ctx.ellipse(0, -s * 0.2, s * 0.07, s * 0.22, 0, 0, TAU); ctx.fill();\n      ctx.fillStyle = inn; ctx.beginPath(); ctx.ellipse(0, -s * 0.19, s * 0.035, s * 0.16, 0, 0, TAU); ctx.fill(); ctx.restore();\n    });\n    ctx.fillStyle = f; ctx.beginPath(); ctx.ellipse(0, s * 0.02, s * 0.24, s * 0.21, 0, 0, TAU); ctx.fill();\n    ctx.strokeStyle = 'rgba(0,0,0,.06)'; ctx.lineWidth = s * 0.01; ctx.stroke();\n    bbEye(ctx, -s * 0.09, -s * 0.01, s * 0.026, t, ink); bbEye(ctx, s * 0.09, -s * 0.01, s * 0.026, t, ink);\n    ctx.fillStyle = inn; ctx.beginPath(); ctx.ellipse(0, s * 0.05, s * 0.025, s * 0.018, 0, 0, TAU); ctx.fill();\n    ctx.strokeStyle = ink; ctx.lineWidth = s * 0.01; ctx.lineCap = 'round'; ctx.beginPath(); ctx.moveTo(0, s * 0.067); ctx.lineTo(0, s * 0.09); ctx.arc(-s * 0.02, s * 0.09, s * 0.02, 0, Math.PI * 0.9); ctx.moveTo(0, s * 0.09); ctx.arc(s * 0.02, s * 0.09, s * 0.02, Math.PI, Math.PI * 0.1, true); ctx.stroke();\n    bbBlush(ctx, -s * 0.15, s * 0.06, s); bbBlush(ctx, s * 0.15, s * 0.06, s);\n  },\n  onesie: function (ctx, s, t, st) {\n    var c = st.onesie || '#bfe0f7', tr = st.onesieTrim || '#ffffff', ac = st.onesieMark || '#f39ab8';\n    ctx.rotate(Math.sin(t * 1.4 + (st.seedSway || 0)) * 0.06);\n    ctx.fillStyle = c; ctx.beginPath();\n    ctx.moveTo(-s * 0.14, -s * 0.36); ctx.quadraticCurveTo(0, -s * 0.26, s * 0.14, -s * 0.36); ctx.lineTo(s * 0.34, -s * 0.24); ctx.lineTo(s * 0.26, -s * 0.08); ctx.lineTo(s * 0.18, -s * 0.12);\n    ctx.lineTo(s * 0.2, s * 0.18); ctx.quadraticCurveTo(s * 0.2, s * 0.3, s * 0.08, s * 0.36); ctx.lineTo(s * 0.07, s * 0.44); ctx.lineTo(-s * 0.07, s * 0.44); ctx.lineTo(-s * 0.08, s * 0.36);\n    ctx.quadraticCurveTo(-s * 0.2, s * 0.3, -s * 0.2, s * 0.18); ctx.lineTo(-s * 0.18, -s * 0.12); ctx.lineTo(-s * 0.26, -s * 0.08); ctx.lineTo(-s * 0.34, -s * 0.24); ctx.closePath(); ctx.fill();\n    ctx.strokeStyle = tr; ctx.lineWidth = s * 0.025; ctx.lineCap = 'round'; ctx.beginPath(); ctx.moveTo(-s * 0.13, -s * 0.34); ctx.quadraticCurveTo(0, -s * 0.24, s * 0.13, -s * 0.34); ctx.stroke();\n    ctx.beginPath(); ctx.moveTo(s * 0.33, -s * 0.22); ctx.lineTo(s * 0.27, -s * 0.1); ctx.moveTo(-s * 0.33, -s * 0.22); ctx.lineTo(-s * 0.27, -s * 0.1); ctx.stroke();\n    ctx.fillStyle = tr; [-0.035, 0, 0.035].forEach(function (x) { ctx.beginPath(); ctx.arc(x * s, s * 0.4, s * 0.012, 0, TAU); ctx.fill(); });\n    ctx.fillStyle = ac; ctx.save(); ctx.translate(0, s * 0.02); var hs = s * 0.07; ctx.beginPath(); ctx.moveTo(0, hs * 0.9); ctx.bezierCurveTo(-hs * 1.4, -hs * 0.1, -hs * 0.6, -hs * 1.1, 0, -hs * 0.35); ctx.bezierCurveTo(hs * 0.6, -hs * 1.1, hs * 1.4, -hs * 0.1, 0, hs * 0.9); ctx.fill(); ctx.restore();\n  },\n  pram: function (ctx, s, t, st) {\n    var hood = st.pramHood || '#f3a7bf', body = st.pramBody || '#fbd3df', mt = st.pramMetal || '#8e8aa6';\n    ctx.translate(0, Math.sin(t * 2.4) * s * 0.008);\n    ctx.strokeStyle = mt; ctx.lineWidth = s * 0.022; ctx.lineCap = 'round';\n    ctx.beginPath(); ctx.moveTo(s * 0.26, -s * 0.02); ctx.lineTo(s * 0.38, -s * 0.22); ctx.lineTo(s * 0.46, -s * 0.22); ctx.stroke();\n    ctx.beginPath(); ctx.moveTo(-s * 0.18, s * 0.12); ctx.lineTo(-s * 0.2, s * 0.26); ctx.moveTo(s * 0.18, s * 0.12); ctx.lineTo(s * 0.2, s * 0.26); ctx.stroke();\n    ctx.fillStyle = body; ctx.beginPath(); ctx.moveTo(-s * 0.34, -s * 0.02); ctx.lineTo(s * 0.32, -s * 0.02); ctx.bezierCurveTo(s * 0.3, s * 0.2, -s * 0.28, s * 0.22, -s * 0.34, -s * 0.02); ctx.fill();\n    ctx.fillStyle = hood; ctx.beginPath(); ctx.moveTo(-s * 0.34, -s * 0.02); ctx.arc(-s * 0.04, -s * 0.02, s * 0.3, Math.PI, Math.PI * 1.5); ctx.lineTo(-s * 0.04, -s * 0.02); ctx.closePath(); ctx.fill();\n    ctx.strokeStyle = 'rgba(255,255,255,.6)'; ctx.lineWidth = s * 0.012; for (var i = 1; i < 4; i++) { ctx.beginPath(); ctx.moveTo(-s * 0.04, -s * 0.02); ctx.lineTo(-s * 0.04 - Math.cos(i * Math.PI / 8) * s * 0.3, -s * 0.02 - Math.sin(i * Math.PI / 8) * s * 0.3); ctx.stroke(); }\n    var rot = t * 1.5;\n    [-1, 1].forEach(function (k) {\n      ctx.save(); ctx.translate(k * s * 0.2, s * 0.3); ctx.fillStyle = mt; ctx.beginPath(); ctx.arc(0, 0, s * 0.085, 0, TAU); ctx.fill(); ctx.fillStyle = '#fff'; ctx.beginPath(); ctx.arc(0, 0, s * 0.06, 0, TAU); ctx.fill();\n      ctx.rotate(rot); ctx.strokeStyle = mt; ctx.lineWidth = s * 0.008; for (var j = 0; j < 4; j++) { ctx.rotate(Math.PI / 4); ctx.beginPath(); ctx.moveTo(-s * 0.06, 0); ctx.lineTo(s * 0.06, 0); ctx.stroke(); } ctx.restore();\n    });\n    ctx.save(); ctx.translate(s * 0.05, s * 0.0); ctx.scale(0.28, 0.28); emblems.bow(ctx, s, t, st); ctx.restore();\n  },\n  revealbox: function (ctx, s, t, st) {\n    var bx = st.boxCol || '#ffffff', rb = st.boxRibbon || '#e9c46a', cs = st.revealCols || ['#f7a8c4', '#9fd0f5', '#f7a8c4', '#9fd0f5', '#f6dc98'], lift = Math.abs(Math.sin(t * 1.2)) * s * 0.04;\n    [[-0.22, -0.62, -0.25], [0.2, -0.66, 0.22], [0, -0.82, 0.02], [-0.08, -0.5, -0.1], [0.12, -0.48, 0.12]].forEach(function (b, i) {\n      var bob = Math.sin(t * 1.5 + i * 1.7) * s * 0.025, x = b[0] * s + Math.sin(t + i) * s * 0.01, y = b[1] * s + bob;\n      ctx.strokeStyle = 'rgba(120,120,140,.45)'; ctx.lineWidth = s * 0.006; ctx.beginPath(); ctx.moveTo(x, y + s * 0.13); ctx.quadraticCurveTo(x * 0.5, -s * 0.2, 0, -s * 0.1); ctx.stroke();\n      var g = ctx.createRadialGradient(x - s * 0.04, y - s * 0.05, s * 0.01, x, y, s * 0.15); g.addColorStop(0, '#ffffff'); g.addColorStop(0.35, cs[i % cs.length]); g.addColorStop(1, cs[i % cs.length]);\n      ctx.fillStyle = g; ctx.beginPath(); ctx.ellipse(x, y, s * 0.1, s * 0.125, b[2], 0, TAU); ctx.fill();\n    });\n    ctx.fillStyle = 'rgba(0,0,0,.08)'; ctx.beginPath(); ctx.ellipse(0, s * 0.42, s * 0.34, s * 0.04, 0, 0, TAU); ctx.fill();\n    ctx.fillStyle = bx; roundRect(ctx, -s * 0.28, -s * 0.06, s * 0.56, s * 0.46, s * 0.03); ctx.fill(); ctx.strokeStyle = 'rgba(0,0,0,.08)'; ctx.lineWidth = s * 0.006; ctx.stroke();\n    ctx.fillStyle = rb; ctx.fillRect(-s * 0.035, -s * 0.06, s * 0.07, s * 0.46);\n    ctx.save(); ctx.translate(0, -lift); ctx.rotate(-0.12 - Math.sin(t * 1.2) * 0.05);\n    ctx.fillStyle = bx; roundRect(ctx, -s * 0.31, -s * 0.18, s * 0.62, s * 0.12, s * 0.02); ctx.fill(); ctx.strokeStyle = 'rgba(0,0,0,.08)'; ctx.stroke();\n    ctx.fillStyle = rb; ctx.fillRect(-s * 0.035, -s * 0.18, s * 0.07, s * 0.12); ctx.restore();\n    ctx.fillStyle = st.boxMark || '#c9a7ff'; ctx.font = '700 ' + Math.round(s * 0.26) + 'px \"' + (st.fonts.title || 'serif') + '\", serif'; ctx.textAlign = 'center'; ctx.textBaseline = 'middle';\n    ctx.fillText('?', -s * 0.15, s * 0.18); ctx.fillText('?', s * 0.15, s * 0.18);\n  },\n  hangstar: function (ctx, s, t, st) {\n    var L = st.hangLen || s * 1.2, sw = Math.sin(t * 1.1 + (st.seedSway || 0)) * 0.08;\n    ctx.rotate(sw); ctx.strokeStyle = st.hangLine || 'rgba(201,166,107,.7)'; ctx.lineWidth = 2; ctx.beginPath(); ctx.moveTo(0, -L); ctx.lineTo(0, -s * 0.2); ctx.stroke();\n    ctx.rotate(Math.sin(t * 1.7 + (st.seedSway || 0)) * 0.15); ctx.fillStyle = st.hangStar ? st.hangStar : goldGrad(ctx, -s / 2, s / 2, st, t); starPath(ctx, s * 0.22, 5, 0.48); ctx.fill();\n  },\n  palm: function (ctx, s, t, st) {\n    var c = st.leafCol || '#5f9e6e', c2 = st.leafCol2 || '#7fbf8a';\n    ctx.rotate(Math.sin(t * 0.9 + (st.seedSway || 0)) * 0.04);\n    var g = ctx.createLinearGradient(0, s * 0.5, 0, -s * 0.5); g.addColorStop(0, c); g.addColorStop(1, c2); ctx.fillStyle = g;\n    ctx.beginPath(); ctx.moveTo(0, s * 0.5); ctx.bezierCurveTo(-s * 0.42, s * 0.2, -s * 0.36, -s * 0.4, 0, -s * 0.5); ctx.bezierCurveTo(s * 0.36, -s * 0.4, s * 0.42, s * 0.2, 0, s * 0.5); ctx.fill();\n    ctx.strokeStyle = 'rgba(255,255,255,.35)'; ctx.lineWidth = s * 0.014; ctx.beginPath(); ctx.moveTo(0, s * 0.5); ctx.lineTo(0, -s * 0.46); ctx.stroke();\n    ctx.lineWidth = s * 0.008; for (var i = -4; i <= 4; i++) { if (!i) continue; var y = i * s * 0.09; ctx.beginPath(); ctx.moveTo(0, y + s * 0.04); ctx.quadraticCurveTo(Math.sign(i) * s * 0.12, y, Math.sign(i) * s * 0.24, y - s * 0.06); ctx.stroke(); }\n  }\n};\nfunction drawEmbDeco(ctx, st, dk, t, e) {\n  var fn = emblems[dk.type] || BABY_ILL[dk.type]; if (!fn) return;\n  var s2 = st; if (dk.st) { s2 = {}; for (var k1 in st) s2[k1] = st[k1]; for (var k2 in dk.st) s2[k2] = dk.st[k2]; }\n  var sd = dk.seed || 0, x = dk.x * W + (dk.dx ? Math.sin(t * (dk.sp || 0.6) + sd) * dk.dx : 0), y = dk.y * H + Math.sin(t * (dk.bs || 1.3) + sd) * (dk.bob == null ? 8 : dk.bob) + (dk.dy ? Math.cos(t * (dk.sp || 0.6) * 1.3 + sd) * dk.dy : 0);\n  ctx.translate(x, y + (1 - ease.out(e)) * (dk.from == null ? 40 : dk.from));\n  if (dk.rot || dk.sway) ctx.rotate((dk.rot || 0) + Math.sin(t * 0.8 + sd) * (dk.sway || 0));\n  var pe = dk.pop ? ease.back(e) : 1; ctx.scale(pe * (dk.flip ? -1 : 1), pe);\n  if (dk.op != null) ctx.globalAlpha *= dk.op;\n  fn(ctx, dk.s, t, s2);\n}\nfunction drawFloatUp(ctx, st, dk, t) {\n  var base = ctx.globalAlpha;\n  dk.items.forEach(function (it, i) {\n    var span = H + it.s * 1.6, y = H + it.s * 0.8 - ((t * it.v + it.ph * span) % span), x = it.x * W + Math.sin(t * 0.6 + i * 2.1) * (it.dx == null ? 30 : it.dx);\n    var fn = emblems[it.type] || BABY_ILL[it.type]; if (!fn) return;\n    var s2 = st; if (it.st) { s2 = {}; for (var k1 in st) s2[k1] = st[k1]; for (var k2 in it.st) s2[k2] = it.st[k2]; }\n    ctx.save(); ctx.globalAlpha = base * (it.op == null ? 1 : it.op); ctx.translate(x, y); fn(ctx, it.s, t + i, s2); ctx.restore();\n  });\n}\nfunction drawFramedPhoto(ctx, st, img, ph, vals, t, local, exit) {\n  var p = clamp((local - (ph.d || 0)) / 1.1); if (p <= 0) return;\n  var e = ease.out(p), w = ph.w, h = ph.h || ph.w, shape = ph.shape || 'rect';\n  ctx.save(); ctx.globalAlpha *= clamp(p * 1.6) * exit;\n  ctx.translate((ph.x == null ? 0.5 : ph.x) * W, ph.y * H + (1 - e) * 50); if (ph.tilt) ctx.rotate(ph.tilt);\n  if (ph.mat) { ctx.save(); shapePath(ctx, shape, w + ph.mat * 2, h + ph.mat * 2, (ph.r || 0) + ph.mat); ctx.shadowColor = ph.shadow || 'rgba(0,0,0,.28)'; ctx.shadowBlur = 46; ctx.shadowOffsetY = 18; ctx.fillStyle = ph.matColor || '#ffffff'; ctx.fill(); ctx.restore(); }\n  else if (ph.shadow) { ctx.save(); shapePath(ctx, shape, w, h, ph.r); ctx.shadowColor = ph.shadow; ctx.shadowBlur = 50; ctx.shadowOffsetY = 20; ctx.fillStyle = '#000'; ctx.fill(); ctx.restore(); }\n  ctx.save(); shapePath(ctx, shape, w, h, ph.r); ctx.clip();\n  if (img) {\n    var iw = img.naturalWidth || img.width, ih = img.naturalHeight || img.height, s = Math.max(w / iw, h / ih) * (1.1 - 0.08 * clamp(local / 5) ) * (ph.zoom || 1);\n    if (ph.filter && 'filter' in ctx) ctx.filter = ph.filter;\n    ctx.drawImage(img, -iw * s / 2 + (ph.ox || 0) * w, -ih * s / 2 + (ph.oy || 0) * h, iw * s, ih * s);\n    ctx.filter = 'none';\n    if (ph.tint) { ctx.fillStyle = ph.tint; ctx.fillRect(-w / 2, -h / 2, w, h); }\n    if (ph.fade) { var fg = ctx.createLinearGradient(0, -h / 2, 0, h / 2); fg.addColorStop(0, 'rgba(0,0,0,0)'); fg.addColorStop(0.55, 'rgba(0,0,0,0)'); fg.addColorStop(1, ph.fade); ctx.fillStyle = fg; ctx.fillRect(-w / 2, -h / 2, w, h); }\n  } else {\n    var c = ph.phBg || [st.accentHi || '#f3e3c3', st.accentLo || '#b08a4a'], g = ctx.createLinearGradient(-w / 2, -h / 2, w / 2, h / 2);\n    c.forEach(function (cc, i) { g.addColorStop(i / (c.length - 1), cc); }); ctx.fillStyle = g; ctx.fillRect(-w / 2, -h / 2, w, h);\n    var sh = ctx.createRadialGradient(-w * 0.2, -h * 0.25, 0, 0, 0, Math.max(w, h) * 0.8); sh.addColorStop(0, 'rgba(255,255,255,.35)'); sh.addColorStop(1, 'rgba(255,255,255,0)'); ctx.fillStyle = sh; ctx.fillRect(-w / 2, -h / 2, w, h);\n    if (ph.fade) { var fg2 = ctx.createLinearGradient(0, -h / 2, 0, h / 2); fg2.addColorStop(0, 'rgba(0,0,0,0)'); fg2.addColorStop(0.55, 'rgba(0,0,0,0)'); fg2.addColorStop(1, ph.fade); ctx.fillStyle = fg2; ctx.fillRect(-w / 2, -h / 2, w, h); }\n    if (ph.mono !== false) {\n      var a = String(vals.name1 || '').trim().charAt(0), b = String(vals.name2 || '').trim().charAt(0), mono = ph.monoText ? fill(ph.monoText, vals) : (a && b ? a + ' & ' + b : (a || b || '\u2665'));\n      ctx.font = fontStr(st, ph.monoFont || 'title', ph.monoSize || Math.min(w, h) * 0.24, false, 400); ctx.textAlign = 'center'; ctx.textBaseline = 'middle';\n      ctx.fillStyle = ph.monoColor || 'rgba(255,255,255,.85)'; ctx.fillText(mono, 0, ph.monoY || 0);\n    }\n  }\n  ctx.restore();\n  if (ph.ring) {\n    ctx.lineWidth = ph.lw || 3; ctx.strokeStyle = decoCol(ctx, st, ph.ring, t, -w / 2, w / 2);\n    shapePath(ctx, shape, w + (ph.gap || 0) * 2, h + (ph.gap || 0) * 2, (ph.r || 0) + (ph.gap || 0)); ctx.stroke();\n  }\n  ctx.restore();\n}\nfunction drawRule(ctx, st, ln, t, local, exit) {\n  var p = ease.out(clamp((local - (ln.d || 0)) / 0.9)); if (p <= 0) return;\n  var x = (ln.x == null ? 0.5 : ln.x) * W, hw = ln.hw || 230, al = ln.al || 'center';\n  ctx.save(); ctx.globalAlpha *= exit * (ln.op == null ? 1 : ln.op); ctx.translate(x, ln.y * H);\n  ctx.strokeStyle = ctx.fillStyle = decoCol(ctx, st, ln.c || 'accent', t, -hw, hw); ctx.lineWidth = ln.lw || 2;\n  ctx.beginPath();\n  if (al === 'left') { ctx.moveTo(0, 0); ctx.lineTo(hw * 2 * p, 0); }\n  else if (al === 'right') { ctx.moveTo(0, 0); ctx.lineTo(-hw * 2 * p, 0); }\n  else { ctx.moveTo(-hw * p, 0); ctx.lineTo(hw * p, 0); }\n  ctx.stroke();\n  if (ln.dot) { ctx.beginPath(); ctx.arc(al === 'left' ? hw * 2 * p + 14 : (al === 'right' ? -hw * 2 * p - 14 : 0), 0, 5, 0, TAU); ctx.fill(); }\n  ctx.restore();\n}\nfunction drawWatermark(ctx, text) {\nctx.save(); ctx.translate(W / 2, H / 2); ctx.rotate(-0.5);\nctx.font = '700 64px Arial, sans-serif'; ctx.textAlign = 'center'; ctx.textBaseline = 'middle';\nfor (var r = -6; r <= 6; r++) {\nctx.fillStyle = 'rgba(255,255,255,.2)'; ctx.strokeStyle = 'rgba(0,0,0,.2)'; ctx.lineWidth = 2;\nvar x = (r % 2) * 260;\nctx.strokeText(text + '   \u2022   ' + text, x, r * 250); ctx.fillText(text + '   \u2022   ' + text, x, r * 250);\n}\nctx.restore();\nctx.fillStyle = 'rgba(0,0,0,.55)'; ctx.fillRect(0, H - 110, W, 110);\nctx.fillStyle = '#fff'; ctx.font = '600 40px Arial, sans-serif'; ctx.textAlign = 'center'; ctx.textBaseline = 'middle';\nctx.fillText('Preview only \u2013 watermark removed after purchase', W / 2, H - 55);\n}\nfunction render(ctx, tpl, vals, t, opts) {\nopts = opts || {};\nif (opts.variant && global.InviteVariant) tpl = global.InviteVariant(tpl, opts.variant);\n    var st = tpl.style, scenes = tpl.scenes, dur = tpl.duration;\nt = clamp(t, 0, dur);\nctx.save();\ndrawBackground(ctx, st, t);\nif (st.cover) drawFramedPhoto(ctx, st, opts.photo, st.cover, vals, t, 99, 1);\n    if (st.layers) st.layers.forEach(function (dk) { drawDeco(ctx, st, dk, vals, t, 99, 1); });\n    drawParticles(ctx, st, t);\ndrawFrame(ctx, st, t);\nfor (var i = 0; i < scenes.length; i++) {\nvar sc = scenes[i], last = i === scenes.length - 1;\nif (t < sc.from || (!last && t >= sc.to)) continue;\nvar local = t - sc.from, exit = last ? 1 : clamp((sc.to - t) / 0.55);\nctx.save(); ctx.globalAlpha = exit;\nif (sc.deco) sc.deco.forEach(function (dk) { drawDeco(ctx, st, dk, vals, t, local, 1); });\n      if (sc.photos) sc.photos.forEach(function (pp) { drawFramedPhoto(ctx, st, opts.photo, pp, vals, t, local, 1); });\n      if (sc.photo && sc.photo.shape) { if (opts.photo || sc.photo.ph) drawFramedPhoto(ctx, st, opts.photo, sc.photo, vals, t, local, 1); else if (sc.emblem) drawEmblem(ctx, sc.emblem.type || st.emblem, sc.emblem.y, sc.emblem.s, t, local, st, sc.emblem.d); }\n      else if (sc.photo && opts.photo) drawPhoto(ctx, st, opts.photo, sc.photo.y, sc.photo.r, t, local, 1);\nelse if (sc.emblem) drawEmblem(ctx, sc.emblem.type || st.emblem, sc.emblem.y, sc.emblem.s, t, local, st, sc.emblem.d);\nctx.restore();\nsc.lines.forEach(function (ln) {\nif (ln.div) { if (ln.x != null || ln.hw || ln.plain) drawRule(ctx, st, ln, t, local, exit); else drawDivider(ctx, st, ln.y, t, local, ln.d || 0, exit); }\nelse drawLine(ctx, st, ln, vals, t, local, exit);\n});\n}\nvar fo = clamp((dur - t) / 0.4); // tiny dip at the very end so loops feel clean\nif (opts.loopFade && fo < 1) { ctx.fillStyle = 'rgba(0,0,0,' + (1 - fo) * 0.6 + ')'; ctx.fillRect(0, 0, W, H); }\nif (opts.watermark) drawWatermark(ctx, opts.watermark);\nctx.restore();\n}\nglobal.InviteEngine = { W: W, H: H, render: render };\n})(window);\n\n/* Invitation Studio - editor, preview, unlock and video export.\nReads window.INVITE_CONFIG (store settings) and window.INVITE_CODES (hashed access codes). */\n(function () {\n'use strict';\nvar E = window.InviteEngine, TPLS = window.InviteTemplates;\nvar CFG = window.INVITE_CONFIG || {}, CODES = window.INVITE_CODES || { salt: '', hashes: [] };\nvar root = document.getElementById('invite-studio'); if (!root || !E || !TPLS) return;\nvar qs = new URLSearchParams(location.search), EMBED = qs.get('embed') === '1';\nvar STORE = CFG.storeName || 'Invitation Studio';\nvar store = {\nget: function (k) { try { return localStorage.getItem('inv:' + k); } catch (e) { return null; } },\nset: function (k, v) { try { localStorage.setItem('inv:' + k, v); } catch (e) { } }\n};\nfunction el(tag, cls, html) { var e = document.createElement(tag); if (cls) e.className = cls; if (html != null) e.innerHTML = html; return e; }\nfunction esc(s) { return String(s).replace(/[&<>\"]/g, function (c) { return { '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' }[c]; }); }\nvar S = { color: '', tpl: null, vals: {}, photo: null, unlocked: false, playing: true, t: 0, music: 'auto', sound: false, custom: null, busy: false };\nvar MOODS = { romantic: 'Romantic', festive: 'Festive', playful: 'Playful', calm: 'Calm' };\nvar fams = {};\nTPLS.forEach(function (t) { for (var k in t.style.fonts) fams[t.style.fonts[k]] = 1; });\nvar FONT_SPEC = { 'Cinzel': ':wght@400;500;700', 'Bodoni Moda': ':ital,wght@0,400;0,600;0,700;1,400', 'DM Serif Display': ':ital@0;1', 'Jost': ':wght@300;400;500;600', 'Syne': ':wght@400;600;700', 'Nunito': ':wght@400;600;700', 'Cinzel Decorative': ':wght@400;700', 'Baloo 2': ':wght@400;600;700', 'Quicksand': ':wght@400;500;700', 'Fredoka': ':wght@400;500;700', 'Montserrat': ':wght@400;500;700', 'Dancing Script': ':wght@400;700',\n'Cormorant Garamond': ':ital,wght@0,400;0,500;1,400', 'Playfair Display': ':ital,wght@0,400;0,700;1,400', 'Poppins': ':ital,wght@0,400;0,500;0,700;1,400' };\n(function loadFonts() {\nif (CFG.loadFonts === false) return;\nvar left = 0, redraw = function () {\nif (!document.fonts) return;\nPromise.all(Object.keys(fams).map(function (f) { return document.fonts.load('400 40px \"' + f + '\"').catch(function () { }); })).then(function () { drawThumbs(); });\n};\nObject.keys(fams).forEach(function (f) {\nvar link = document.createElement('link'); link.rel = 'stylesheet'; left++;\nlink.href = 'https://fonts.googleapis.com/css2?family=' + f.replace(/ /g, '+') + (FONT_SPEC[f] || '') + '&display=swap';\nlink.onload = link.onerror = function () { if (--left === 0) redraw(); };\ndocument.head.appendChild(link);\n});\nsetTimeout(function () { drawThumbs(); }, 4000);\n})();\nroot.className = 'inv' + (EMBED ? ' inv-embed' : '');\nif (CFG.accent) root.style.setProperty('--a', CFG.accent);\nroot.innerHTML =\n'<header class=\"inv-top\"><div class=\"inv-brand\">' + (CFG.logo ? '<img src=\"' + esc(CFG.logo) + '\" alt=\"\">' : '') + '<span>' + esc(STORE) + '</span><em>Video Invitation Studio</em></div>' +\n'<div class=\"inv-badge\" id=\"inv-badge\"></div></header>' +\n'<div class=\"inv-main\">' +\n'<aside class=\"inv-gallery\"><h2>1 &middot; Choose a design</h2><div class=\"inv-chips\" id=\"inv-chips\"></div><div class=\"inv-grid\" id=\"inv-grid\"></div></aside>' +\n'<section class=\"inv-stage\"><div class=\"inv-phone\"><canvas id=\"inv-canvas\" width=\"720\" height=\"1280\"></canvas></div>' +\n'<div class=\"inv-controls\"><button type=\"button\" id=\"inv-play\" aria-label=\"Play or pause\">&#10074;&#10074;</button>' +\n'<input type=\"range\" id=\"inv-scrub\" min=\"0\" max=\"1000\" value=\"0\" aria-label=\"Timeline\">' +\n'<button type=\"button\" id=\"inv-sound\" aria-label=\"Sound on or off\">&#128263;</button></div>' +\n'<p class=\"inv-hint\" id=\"inv-hint\"></p></section>' +\n'<aside class=\"inv-edit\"><h2>2 &middot; Add your details</h2><div class=\"inv-colors\" id=\"inv-colors\" hidden></div><div id=\"inv-fields\"></div>' +\n'<div class=\"inv-row\"><label class=\"inv-file\">&#128247; Add a photo (optional)<input type=\"file\" id=\"inv-photo\" accept=\"image/*\"></label>' +\n'<button type=\"button\" class=\"inv-link\" id=\"inv-photo-x\" hidden>Remove photo</button></div>' +\n'<div class=\"inv-row\"><label>Music<select id=\"inv-music\"></select></label>' +\n'<label class=\"inv-file\" id=\"inv-audio-wrap\" hidden>Choose audio file<input type=\"file\" id=\"inv-audio\" accept=\"audio/*\"></label></div>' +\n'<button type=\"button\" class=\"inv-link\" id=\"inv-reset\">Reset to sample text</button>' +\n'<div class=\"inv-box\" id=\"inv-getbox\"></div></aside></div>' +\n'<div class=\"inv-modal\" id=\"inv-modal\" hidden><div><h3 id=\"inv-m-title\"></h3><p id=\"inv-m-text\"></p><div class=\"inv-bar\"><i id=\"inv-m-bar\"></i></div><div id=\"inv-m-actions\"></div></div></div>';\nvar $ = function (id) { return document.getElementById(id); };\nvar canvas = $('inv-canvas'), ctx = canvas.getContext('2d');\nvar cats = ['All'].concat(TPLS.map(function (t) { return t.cat; }).filter(function (c, i, a) { return a.indexOf(c) === i; }));\nvar curCat = 'All', thumbs = {};\ncats.forEach(function (c) {\nvar b = el('button', c === 'All' ? 'on' : '', esc(c)); b.type = 'button';\nb.onclick = function () { curCat = c; [].forEach.call($('inv-chips').children, function (x) { x.className = x === b ? 'on' : ''; }); filterGrid(); };\n$('inv-chips').appendChild(b);\n});\nTPLS.forEach(function (t) {\nvar card = el('button', 'inv-card'); card.type = 'button'; card.dataset.id = t.id;\nvar c = el('canvas'); c.width = 216; c.height = 384; thumbs[t.id] = c;\ncard.appendChild(c); card.appendChild(el('b', '', esc(t.name))); card.appendChild(el('span', '', esc(t.cat)));\ncard.onclick = function () { selectTemplate(t.id, true); };\n$('inv-grid').appendChild(card);\n});\nfunction filterGrid() { [].forEach.call($('inv-grid').children, function (c) { var t = byId(c.dataset.id); c.hidden = curCat !== 'All' && t.cat !== curCat; }); }\nfunction drawThumbs() {\nTPLS.forEach(function (t) { var x = thumbs[t.id].getContext('2d'); x.setTransform(0.2, 0, 0, 0.2, 0, 0); E.render(x, t, t.defaults, 7.4, { variant: store.get('c:' + t.id) || '' }); });\n}\nfunction byId(id) { for (var i = 0; i < TPLS.length; i++) if (TPLS[i].id === id) return TPLS[i]; return null; }\nfunction selectTemplate(id, user) {\nvar t = byId(id) || byId(store.get('last')) || TPLS[0]; S.tpl = t; store.set('last', t.id);\nvar saved = null; try { saved = JSON.parse(store.get('v:' + t.id) || 'null'); } catch (e) { }\nS.color = store.get('c:' + t.id) || ''; if (!(t.variants || []).some(function (v) { return v.id === S.color; })) S.color = '';\n    S.vals = {}; for (var k in t.defaults) S.vals[k] = saved && saved[k] != null ? saved[k] : t.defaults[k];\n[].forEach.call($('inv-grid').children, function (c) { c.classList.toggle('sel', c.dataset.id === t.id); });\nbuildColors(); buildFields(); buildMusic(); buildGetBox(); S.t = 0; S.playing = true; syncPlay(); restartMusic();\nif (user && window.innerWidth < 900) root.querySelector('.inv-stage').scrollIntoView({ behavior: 'smooth' });\n}\nfunction buildColors() {\n    var box = $('inv-colors'), vs = S.tpl.variants; box.innerHTML = ''; box.hidden = !vs || vs.length < 2 || !window.InviteSwatches; if (box.hidden) return;\n    var cur = S.color || vs[0].id, nm = el('span', 'inv-colors-name'), head = el('div', 'inv-colors-head', '<span>Colour</span>');\n    var name = function (id) { for (var i = 0; i < vs.length; i++) if (vs[i].id === id) return vs[i].name; return ''; };\n    nm.textContent = name(cur); head.appendChild(nm); box.appendChild(head);\n    box.appendChild(window.InviteSwatches(vs, cur, function (v) { S.color = v.id; store.set('c:' + S.tpl.id, v.id); nm.textContent = v.name; drawThumbs(); }));\n  }\n  function sceneTimeFor(key) {\nvar sc = S.tpl.scenes;\nfor (var i = sc.length - 1; i >= 0; i--) for (var j = 0; j < sc[i].lines.length; j++) {\nvar ln = sc[i].lines[j];\nif (ln.t && ln.t.indexOf('{' + key + '}') > -1 && !(i === 0 && key === 'date') && !(i === sc.length - 1 && key !== 'closing' && key !== 'rsvp')) return Math.min(sc[i].from + 3.2, sc[i].to - 0.7);\n}\nreturn 3;\n}\nfunction buildFields() {\nvar box = $('inv-fields'); box.innerHTML = '';\nS.tpl.fields.forEach(function (f) {\nvar lab = el('label', '', '<span>' + esc(f.label) + '</span>');\nvar inp = el(f.multi ? 'textarea' : 'input'); if (!f.multi) inp.type = 'text'; else inp.rows = 2;\ninp.value = S.vals[f.k] || ''; inp.maxLength = f.multi ? 140 : 60;\ninp.oninput = function () { S.vals[f.k] = inp.value; store.set('v:' + S.tpl.id, JSON.stringify(S.vals)); };\ninp.onfocus = function () { S.t = sceneTimeFor(f.k); S.playing = false; syncPlay(); music.stop(); };\nlab.appendChild(inp); box.appendChild(lab);\n});\n}\n$('inv-reset').onclick = function () { store.set('v:' + S.tpl.id, 'null'); selectTemplate(S.tpl.id); };\n$('inv-photo').onchange = function (e) {\nvar f = e.target.files[0]; if (!f) return;\nvar img = new Image(); img.onload = function () { S.photo = img; $('inv-photo-x').hidden = false; S.t = sceneTimeFor(S.tpl.kind === 'couple' ? 'name1' : (S.tpl.kind === 'host' ? 'host' : 'name')); };\nimg.src = URL.createObjectURL(f);\n};\n$('inv-photo-x').onclick = function () { S.photo = null; $('inv-photo').value = ''; this.hidden = true; };\nvar music = (function () {\nvar ac = null, cur = null;\nvar M = {\nromantic: { bpm: 72, chords: [[60, 64, 67, 71], [57, 60, 64, 67], [53, 57, 60, 64], [55, 59, 62, 67]], pat: [0, 1, 2, 3, 2, 1, 2, 3], step: 0.5, len: 1.4, wave: 'sine', oct: 12, vol: 0.16 },\ncalm: { bpm: 60, chords: [[53, 57, 60, 64], [48, 52, 55, 59], [50, 53, 57, 60], [46, 50, 53, 57]], pat: [0, 2, 1, 3], step: 1, len: 2.4, wave: 'sine', oct: 12, vol: 0.17 },\nplayful: { bpm: 120, chords: [[60, 64, 67, 72], [65, 69, 72, 77], [67, 71, 74, 79], [60, 64, 67, 72]], pat: [0, 2, 1, 2, 3, 2, 1, 2], step: 0.5, len: 0.22, wave: 'triangle', oct: 12, vol: 0.2, beat: 1 },\nfestive: { bpm: 104, chords: [[62, 66, 69, 74], [62, 67, 71, 74], [57, 61, 64, 69], [62, 66, 69, 74]], pat: [0, 1, 2, 3, 2, 3, 1, 2], step: 0.5, len: 0.3, wave: 'triangle', oct: 12, vol: 0.2, beat: 2 }\n};\nfunction hz(m) { return 440 * Math.pow(2, (m - 69) / 12); }\nfunction context() { if (!ac) { var A = window.AudioContext || window.webkitAudioContext; if (!A) return null; ac = new A(); } if (ac.state === 'suspended') ac.resume(); return ac; }\nfunction stop() { if (cur) { try { cur.gain.gain.cancelScheduledValues(0); cur.gain.gain.value = 0; cur.gain.disconnect(); cur.nodes.forEach(function (n) { try { n.stop(); } catch (e) { } }); } catch (e) { } cur = null; } }\nfunction play(kind, offset, dur, dest, buffer) {\nstop(); var a = context(); if (!a || kind === 'none') return;\nvar now = a.currentTime + 0.05, left = dur - offset, g = a.createGain(), nodes = [];\ng.gain.setValueAtTime(0, now); g.gain.linearRampToValueAtTime(0.9, now + 0.5);\ng.gain.setValueAtTime(0.9, now + Math.max(0.6, left - 1.4)); g.gain.linearRampToValueAtTime(0, now + left);\ng.connect(dest || a.destination); cur = { gain: g, nodes: nodes };\nif (kind === 'custom') {\nif (!buffer) return; var src = a.createBufferSource(); src.buffer = buffer; src.connect(g); src.start(now, offset % buffer.duration); src.stop(now + left); nodes.push(src); return;\n}\nvar m = M[kind] || M.calm, beat = 60 / m.bpm, bus = a.createGain(), dl = a.createDelay(), fb = a.createGain();\ndl.delayTime.value = beat * 0.75; fb.gain.value = 0.28; bus.connect(g); bus.connect(dl); dl.connect(fb); fb.connect(dl); dl.connect(g);\nfunction note(freq, at, len, wave, vol) {\nif (at + len < offset || at > dur) return; var st = now + Math.max(0, at - offset);\nvar o = a.createOscillator(), e = a.createGain(); o.type = wave; o.frequency.value = freq;\ne.gain.setValueAtTime(0.0001, st); e.gain.exponentialRampToValueAtTime(vol, st + 0.02); e.gain.exponentialRampToValueAtTime(0.0001, st + len);\no.connect(e); e.connect(bus); o.start(st); o.stop(st + len + 0.05); nodes.push(o);\n}\nfunction thump(at) {\nif (at < offset || at > dur) return; var st = now + at - offset, o = a.createOscillator(), e = a.createGain(); o.type = 'sine';\no.frequency.setValueAtTime(130, st); o.frequency.exponentialRampToValueAtTime(48, st + 0.16);\ne.gain.setValueAtTime(0.35, st); e.gain.exponentialRampToValueAtTime(0.0001, st + 0.22); o.connect(e); e.connect(g); o.start(st); o.stop(st + 0.25); nodes.push(o);\n}\nvar bar = beat * 4, bars = Math.ceil(dur / bar);\nfor (var b = 0; b < bars; b++) {\nvar ch = m.chords[b % m.chords.length], t0 = b * bar;\nnote(hz(ch[0] - 12), t0, bar * 0.98, 'triangle', 0.13);\nch.forEach(function (n) { note(hz(n), t0, bar * 0.98, 'sine', 0.035); });\nfor (var s = 0; s * m.step < 4; s++) note(hz(ch[m.pat[s % m.pat.length]] + m.oct), t0 + s * m.step * beat, m.len, m.wave, m.vol);\nif (m.beat === 1) [0, 2].forEach(function (x) { thump(t0 + x * beat); });\nif (m.beat === 2) [0, 1.5, 2, 3, 3.5].forEach(function (x) { thump(t0 + x * beat); });\n}\n}\nreturn { play: play, stop: stop, context: context };\n})();\nfunction musicKind() { return S.music === 'auto' ? S.tpl.music : S.music; }\nfunction restartMusic() { if (S.sound && S.playing && !S.busy) music.play(musicKind(), S.t, S.tpl.duration, null, S.custom); else if (!S.busy) music.stop(); }\nfunction buildMusic() {\nvar sel = $('inv-music'); sel.innerHTML = '';\n[['auto', 'Suggested (' + MOODS[S.tpl.music] + ')']].concat(Object.keys(MOODS).map(function (k) { return [k, MOODS[k]]; }), [['custom', 'My own audio file...'], ['none', 'No music']])\n.forEach(function (o) { var op = el('option', '', esc(o[1])); op.value = o[0]; sel.appendChild(op); });\nsel.value = S.music; $('inv-audio-wrap').hidden = S.music !== 'custom';\n}\n$('inv-music').onchange = function () { S.music = this.value; $('inv-audio-wrap').hidden = S.music !== 'custom'; if (S.music !== 'none') { S.sound = true; } syncPlay(); restartMusic(); };\n$('inv-audio').onchange = function (e) {\nvar f = e.target.files[0], a = music.context(); if (!f || !a) return;\nf.arrayBuffer().then(function (buf) { return new Promise(function (ok, no) { a.decodeAudioData(buf, ok, no); }); })\n.then(function (b) { S.custom = b; S.sound = true; syncPlay(); restartMusic(); })\n.catch(function () { alert('Sorry, that audio file could not be read. Please try an MP3 or M4A file.'); });\n};\nfunction syncPlay() { $('inv-play').innerHTML = S.playing ? '&#10074;&#10074;' : '&#9654;'; $('inv-sound').innerHTML = S.sound ? '&#128266;' : '&#128263;'; }\n$('inv-play').onclick = function () { S.playing = !S.playing; if (S.playing && S.t >= S.tpl.duration - 0.05) S.t = 0; syncPlay(); restartMusic(); };\n$('inv-sound').onclick = function () { S.sound = !S.sound; syncPlay(); restartMusic(); };\n$('inv-scrub').oninput = function () { S.t = this.value / 1000 * S.tpl.duration; S.playing = false; syncPlay(); music.stop(); };\nfunction wm() { return S.unlocked ? null : (CFG.watermark || 'PREVIEW'); }\nvar lastTs = 0;\nfunction frame(ts) {\nrequestAnimationFrame(frame);\nvar dt = Math.min(0.1, (ts - lastTs) / 1000 || 0); lastTs = ts;\nif (S.busy || !S.tpl) return;\nif (S.playing) { S.t += dt; if (S.t >= S.tpl.duration + 1.2) { S.t = 0; restartMusic(); } $('inv-scrub').value = Math.min(1, S.t / S.tpl.duration) * 1000; }\nctx.setTransform(canvas.width / E.W, 0, 0, canvas.height / E.H, 0, 0);\nE.render(ctx, S.tpl, S.vals, S.t, { photo: S.photo, watermark: wm(), variant: S.color });\n}\nfunction checkCode(code) { if (!code) return false; return CODES.hashes.indexOf(window.inviteCodeHash(CODES.salt, code)) > -1; }\nfunction setUnlocked(code) { S.unlocked = true; store.set('code', code); buildGetBox(); }\nfunction buyUrl() { var l = CFG.buyLinks || {}; return l[S.tpl.id] || (CFG.buyPattern ? CFG.buyPattern.replace('{id}', S.tpl.id) : '') || CFG.defaultBuyUrl || ''; }\nfunction buildGetBox() {\nvar box = $('inv-getbox'), badge = $('inv-badge');\nbadge.innerHTML = S.unlocked ? '&#10003; Unlocked' : 'Preview mode'; badge.className = 'inv-badge' + (S.unlocked ? ' ok' : '');\n$('inv-hint').textContent = S.unlocked ? 'Your invitation is unlocked. Download it below.' : 'Live preview. The watermark disappears once you unlock with your access code.';\nif (EMBED) { box.innerHTML = '<p class=\"inv-small\">This is a live preview &ndash; try your own names and details. After purchase you receive a link and access code to download your video without the watermark.</p>'; return; }\nif (S.unlocked) {\nbox.innerHTML = '<h2>3 &middot; Download</h2><button type=\"button\" class=\"inv-btn\" id=\"inv-dl\">&#11015; Download video</button>' +\n'<button type=\"button\" class=\"inv-btn ghost\" id=\"inv-png\">Save current frame as image</button>' +\n'<p class=\"inv-small\">The video takes about ' + Math.round(S.tpl.duration) + ' seconds to create. Keep this tab open and on screen while it records. You can edit and download again any time.</p>';\n$('inv-dl').onclick = exportVideo; $('inv-png').onclick = exportPng;\n} else {\nvar u = buyUrl();\nbox.innerHTML = '<h2>3 &middot; Unlock &amp; download</h2><p class=\"inv-small\">Already purchased? Enter the access code from your order email.</p>' +\n'<div class=\"inv-code\"><input type=\"text\" id=\"inv-code\" placeholder=\"XXXX-XXXX\" autocomplete=\"off\" autocapitalize=\"characters\"><button type=\"button\" class=\"inv-btn\" id=\"inv-unlock\">Unlock</button></div>' +\n'<p class=\"inv-err\" id=\"inv-err\" hidden>That code was not recognised. Please check it and try again.</p>' +\n(u ? '<a class=\"inv-btn ghost\" href=\"' + esc(u) + '\" target=\"_top\">Buy this design</a>' : '');\nvar go = function () { var c = $('inv-code').value.trim(); if (checkCode(c)) setUnlocked(c); else $('inv-err').hidden = false; };\n$('inv-unlock').onclick = go; $('inv-code').onkeydown = function (e) { if (e.key === 'Enter') go(); };\n}\n}\nfunction fileBase() {\nvar n = S.vals.name1 ? S.vals.name1 + '-' + (S.vals.name2 || '') : (S.vals.name || S.vals.host || S.tpl.name);\nreturn (S.tpl.cat + '-invitation-' + n).toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '');\n}\nfunction save(blob, name) {\nvar a = el('a'); a.href = URL.createObjectURL(blob); a.download = name; document.body.appendChild(a); a.click();\nsetTimeout(function () { a.remove(); }, 500); return a.href;\n}\nfunction fullCanvas() { var c = el('canvas'); c.width = E.W; c.height = E.H; return c; }\nfunction exportPng() {\nif (!S.unlocked) return; var c = fullCanvas();\nE.render(c.getContext('2d'), S.tpl, S.vals, S.t, { photo: S.photo, variant: S.color });\nc.toBlob(function (b) { save(b, fileBase() + '.png'); }, 'image/png');\n}\nfunction modal(title, text, pct, actions) {\n$('inv-modal').hidden = false; $('inv-m-title').textContent = title; $('inv-m-text').textContent = text;\n$('inv-m-bar').style.width = (pct || 0) + '%'; $('inv-m-actions').innerHTML = '';\n(actions || []).forEach(function (a) { $('inv-m-actions').appendChild(a); });\n}\nfunction closeBtn() { var b = el('button', 'inv-btn ghost', 'Close'); b.type = 'button'; b.onclick = function () { $('inv-modal').hidden = true; }; return b; }\nfunction exportVideo() {\nif (!S.unlocked || S.busy) return;\nvar types = ['video/mp4;codecs=avc1.42E01E,mp4a.40.2', 'video/mp4;codecs=avc1', 'video/mp4', 'video/webm;codecs=vp9,opus', 'video/webm;codecs=vp8,opus', 'video/webm'];\nvar mime = null;\nif (window.MediaRecorder) for (var i = 0; i < types.length; i++) if (MediaRecorder.isTypeSupported(types[i])) { mime = types[i]; break; }\nvar c = fullCanvas();\nif (!mime || !c.captureStream) { modal('Video download is not supported in this browser', 'Please open this page in Chrome, Edge or Safari on a computer or recent phone. You can still save an image.', 0, [closeBtn()]); return; }\nc.style.cssText = 'position:fixed;left:0;top:0;width:2px;height:2px;opacity:.01;pointer-events:none'; document.body.appendChild(c);\nvar x = c.getContext('2d'), dur = S.tpl.duration, tpl = S.tpl, vals = JSON.parse(JSON.stringify(S.vals)), photo = S.photo, vc = S.color;\nS.busy = true; music.stop();\nE.render(x, tpl, vals, 0, { photo: photo, variant: vc });\nvar stream = c.captureStream(30), kind = musicKind(), a = kind !== 'none' ? music.context() : null, dest = null;\nif (a && !(kind === 'custom' && !S.custom)) { dest = a.createMediaStreamDestination(); dest.stream.getAudioTracks().forEach(function (t) { stream.addTrack(t); }); }\nvar rec, chunks = [];\ntry { rec = new MediaRecorder(stream, { mimeType: mime, videoBitsPerSecond: 9000000, audioBitsPerSecond: 160000 }); }\ncatch (e) { rec = new MediaRecorder(stream); mime = rec.mimeType || 'video/webm'; }\nrec.ondataavailable = function (e) { if (e.data && e.data.size) chunks.push(e.data); };\nvar done = function () {\nS.busy = false; c.remove(); music.stop();\nvar ext = mime.indexOf('mp4') > -1 ? 'mp4' : 'webm', blob = new Blob(chunks, { type: mime.split(';')[0] });\nvar url = save(blob, fileBase() + '.' + ext);\nvar again = el('a', 'inv-btn', 'Download again'); again.href = url; again.download = fileBase() + '.' + ext;\nmodal('Your invitation is ready', 'Check your Downloads folder. ' + (ext === 'webm' ? 'This browser saves WebM video; for an MP4 that plays everywhere, open this page in Chrome or Safari.' : 'You can now share it on WhatsApp, Instagram, email or text.'), 100, [again, closeBtn()]);\nS.t = 0; S.playing = true; syncPlay(); restartMusic();\n};\nrec.onstop = done;\nmodal('Creating your video...', 'Please keep this tab open and visible. This takes about ' + Math.round(dur) + ' seconds.', 0);\nvar start = null;\nrec.start(250);\nif (dest) music.play(kind, 0, dur, dest, S.custom);\n(function tick(ts) {\nif (start == null) start = ts || performance.now();\nvar t = ((ts || performance.now()) - start) / 1000;\nE.render(x, tpl, vals, Math.min(t, dur), { photo: photo, variant: vc });\n$('inv-m-bar').style.width = Math.min(100, t / dur * 100) + '%';\nif (t < dur + 0.2) requestAnimationFrame(tick); else rec.stop();\n})();\n}\nvar first = qs.get('t') || store.get('last') || (TPLS[0] && TPLS[0].id);\n  if (qs.get('t') && qs.get('color')) store.set('c:' + qs.get('t'), qs.get('color'));\nvar pre = qs.get('code') || store.get('code');\nif (pre && checkCode(pre)) { S.unlocked = true; store.set('code', pre); }\ndrawThumbs(); selectTemplate(first);\nif (qs.get('code') && !S.unlocked) { var ci = $('inv-code'); if (ci) { ci.value = qs.get('code'); $('inv-err').hidden = false; } }\nrequestAnimationFrame(frame);\nwindow.InviteStudio = { state: S, select: selectTemplate, exportVideo: exportVideo };\n})();\n"],
  "mappings": "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",
  "names": ["i", "k", "a", "y", "x", "o", "R"]
}
