1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4128],{63:(e,t,a)=>{var n=a(7260);a.o(n,"useParams")&&a.d(t,{useParams:function(){return n.useParams}}),a.o(n,"usePathname")&&a.d(t,{usePathname:function(){return n.usePathname}}),a.o(n,"useRouter")&&a.d(t,{useRouter:function(){return n.useRouter}}),a.o(n,"useSearchParams")&&a.d(t,{useSearchParams:function(){return n.useSearchParams}})},919:(e,t,a)=>{a.d(t,{default:()=>w});var n=a(5155),r=a(6278),l=a.n(r),s=a(2115),o=a(9301),i=a(63),c=a(80),d=a(9379),u=a(4107);function b(e){let{slug:t}=e,a=(0,i.useSearchParams)(),r=null==a?void 0:a.get("beat"),l=r&&/^\d+$/.test(r)?Number(r):null,[o,b]=(0,s.useState)(null),[m,h]=(0,s.useState)(!1);if((0,s.useEffect)(()=>{null!==l&&(0,c.u)("challenge_opened",{game:t,target:l})},[l,t]),(0,s.useEffect)(()=>{if(null===l)return;let e=e=>{let a=e.detail;(null==a?void 0:a.slug)===t&&"number"==typeof a.score&&(b(a.score),(0,c.u)("challenge_answered",{game:t,target:l,score:a.score,beat:a.score>l}))};return window.addEventListener(u.gO,e),()=>window.removeEventListener(u.gO,e)},[l,t]),null===l)return null;let p=(0,d.lY)(t),f=null!==o&&o>l,g=async()=>{var e,a;if(null===o)return;(0,c.u)("challenge_returned",{game:t,score:o});let n="".concat(window.location.origin,"/challenge/").concat(t,"/").concat(o);try{let e=await fetch("/api/challenge",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({game:t,score:o})}),{token:a}=await e.json();a&&(n+="?t=".concat(a))}catch(e){}let r="I scored ".concat(o.toLocaleString()," in ").concat(null!=(e=null==p?void 0:p.name)?e:t," ").concat(null!=(a=null==p?void 0:p.emoji)?a:"\uD83C\uDFAE"," on FunNudge â your turn.");try{if(navigator.share)return void await navigator.share({text:r,url:n})}catch(e){}try{await navigator.clipboard.writeText("".concat(r," ").concat(n)),h(!0),setTimeout(()=>h(!1),2200)}catch(e){}};return null===o?(0,n.jsxs)("div",{className:"mb-3 flex items-center justify-center gap-2 rounded-xl border border-amber-400/30 bg-amber-400/10 px-4 py-2 text-sm font-bold text-amber-200",children:[(0,n.jsx)("span",{"aria-hidden":!0,children:"\uD83C\uDFAF"}),"Beat ",l.toLocaleString()]}):(0,n.jsxs)("div",{className:"animate-bounce-in mb-3 rounded-2xl border p-4 text-center ".concat(f?"border-emerald-400/40 bg-emerald-500/10":"border-amber-400/30 bg-amber-400/10"),role:"status",children:[(0,n.jsx)("p",{className:"text-lg font-extrabold text-white",children:f?"You win â ".concat(o.toLocaleString()," beats ").concat(l.toLocaleString()):"".concat(o.toLocaleString()," â short by ").concat((l-o).toLocaleString())}),(0,n.jsx)("p",{className:"mt-1 text-sm text-zinc-400",children:f?"Send it back and make them work for it.":"One more go? They're still ahead."}),f&&(0,n.jsx)("button",{onClick:g,className:"mt-3 rounded-xl bg-gradient-to-r from-fuchsia-500 to-violet-500 px-5 py-2.5 font-bold text-white transition hover:scale-105",children:m?"â Link copied!":"âï¸ Challenge them back"})]})}var m=a(2797),h=a(2237),p=a(1175);let f=()=>(0,n.jsx)("div",{className:"flex h-96 items-center justify-center text-zinc-500",children:(0,n.jsx)("span",{className:"animate-pulse text-lg",children:"Loading gameâ¦"})}),g={2048:l()(()=>a.e(4929).then(a.bind(a,4929)),{loadableGenerated:{webpack:()=>[4929]},ssr:!1,loading:f}),"word-guess":l()(()=>a.e(3616).then(a.bind(a,3616)),{loadableGenerated:{webpack:()=>[3616]},ssr:!1,loading:f}),"memory-match":l()(()=>a.e(4451).then(a.bind(a,4451)),{loadableGenerated:{webpack:()=>[4451]},ssr:!1,loading:f}),snake:l()(()=>a.e(623).then(a.bind(a,623)),{loadableGenerated:{webpack:()=>[623]},ssr:!1,loading:f}),"tic-tac-toe":l()(()=>a.e(9395).then(a.bind(a,9395)),{loadableGenerated:{webpack:()=>[9395]},ssr:!1,loading:f}),"flappy-wings":l()(()=>a.e(8755).then(a.bind(a,8755)),{loadableGenerated:{webpack:()=>[8755]},ssr:!1,loading:f}),"block-drop":l()(()=>a.e(1395).then(a.bind(a,1395)),{loadableGenerated:{webpack:()=>[1395]},ssr:!1,loading:f}),"stack-tower":l()(()=>a.e(4382).then(a.bind(a,4382)),{loadableGenerated:{webpack:()=>[4382]},ssr:!1,loading:f}),"dino-dash":l()(()=>a.e(317).then(a.bind(a,317)),{loadableGenerated:{webpack:()=>[317]},ssr:!1,loading:f}),"brick-breaker":l()(()=>a.e(3080).then(a.bind(a,3080)),{loadableGenerated:{webpack:()=>[3080]},ssr:!1,loading:f}),"sky-hop":l()(()=>a.e(9493).then(a.bind(a,9493)),{loadableGenerated:{webpack:()=>[9493]},ssr:!1,loading:f}),"fruit-slice":l()(()=>a.e(5805).then(a.bind(a,5805)),{loadableGenerated:{webpack:()=>[5805]},ssr:!1,loading:f}),"knife-throw":l()(()=>
1a.e(165).then(a.bind(a,165)),{loadableGenerated:{webpack:()=>[165]},ssr:!1,loading:f}),"maze-chase":l()(()=>a.e(9630).then(a.bind(a,9630)),{loadableGenerated:{webpack:()=>[9630]},ssr:!1,loading:f}),"scp-096-maze":l()(()=>Promise.all([a.e(9367),a.e(8833),a.e(6121),a.e(2900),a.e(467)]).then(a.bind(a,467)),{loadableGenerated:{webpack:()=>[467]},ssr:!1,loading:f}),"dont-look-online":l()(()=>Promise.all([a.e(9367),a.e(8833),a.e(6121),a.e(652),a.e(6440),a.e(2900),a.e(7798)]).then(a.bind(a,7798)),{loadableGenerated:{webpack:()=>[7798]},ssr:!1,loading:f}),"simon-says":l()(()=>a.e(89).then(a.bind(a,89)),{loadableGenerated:{webpack:()=>[89]},ssr:!1,loading:f}),"stack-3d":l()(()=>Promise.all([a.e(9367),a.e(8833),a.e(399)]).then(a.bind(a,399)),{loadableGenerated:{webpack:()=>[399]},ssr:!1,loading:f}),"helix-fall":l()(()=>Promise.all([a.e(9367),a.e(8833),a.e(6588)]).then(a.bind(a,6588)),{loadableGenerated:{webpack:()=>[6588]},ssr:!1,loading:f}),"tunnel-rush":l()(()=>Promise.all([a.e(9367),a.e(8833),a.e(1045)]).then(a.bind(a,1045)),{loadableGenerated:{webpack:()=>[1045]},ssr:!1,loading:f}),"slope-run":l()(()=>Promise.all([a.e(9367),a.e(8833),a.e(8405)]).then(a.bind(a,8405)),{loadableGenerated:{webpack:()=>[8405]},ssr:!1,loading:f}),"road-hopper":l()(()=>Promise.all([a.e(9367),a.e(8833),a.e(1365)]).then(a.bind(a,1365)),{loadableGenerated:{webpack:()=>[1365]},ssr:!1,loading:f}),"obby-parkour-3d":l()(()=>Promise.all([a.e(9367),a.e(8833),a.e(5244)]).then(a.bind(a,5244)),{loadableGenerated:{webpack:()=>[5244]},ssr:!1,loading:f}),"physics-car-trial":l()(()=>a.e(4106).then(a.bind(a,4106)),{loadableGenerated:{webpack:()=>[4106]},ssr:!1,loading:f}),"trapdoor-platformer":l()(()=>a.e(1364).then(a.bind(a,1364)),{loadableGenerated:{webpack:()=>[1364]},ssr:!1,loading:f}),"dino-run-3d":l()(()=>Promise.all([a.e(9367),a.e(8833),a.e(6121),a.e(6579)]).then(a.bind(a,6579)),{loadableGenerated:{webpack:()=>[6579]},ssr:!1,loading:f}),"chess-3d":l()(()=>Promise.all([a.e(9367),a.e(8833),a.e(5833),a.e(9306)]).then(a.bind(a,9306)),{loadableGenerated:{webpack:()=>[9306]},ssr:!1,loading:f}),"checkers-3d":l()(()=>Promise.all([a.e(9367),a.e(8833),a.e(5833),a.e(9146),a.e(3328)]).then(a.bind(a,3328)),{loadableGenerated:{webpack:()=>[3328]},ssr:!1,loading:f}),solitaire:l()(()=>a.e(6283).then(a.bind(a,6283)),{loadableGenerated:{webpack:()=>[6283]},ssr:!1,loading:f}),sudoku:l()(()=>a.e(6042).then(a.bind(a,6042)),{loadableGenerated:{webpack:()=>[6042]},ssr:!1,loading:f}),minesweeper:l()(()=>a.e(1765).then(a.bind(a,1765)),{loadableGenerated:{webpack:()=>[1765]},ssr:!1,loading:f}),"mini-golf-3d":l()(()=>Promise.all([a.e(9367),a.e(8833),a.e(425)]).then(a.bind(a,2806)),{loadableGenerated:{webpack:()=>[2806]},ssr:!1,loading:f}),"traffic-dodge-3d":l()(()=>Promise.all([a.e(9367),a.e(8833),a.e(9796)]).then(a.bind(a,9796)),{loadableGenerated:{webpack:()=>[9796]},ssr:!1,loading:f}),"snake-3d":l()(()=>Promise.all([a.e(9367),a.e(8833),a.e(2078)]).then(a.bind(a,2078)),{loadableGenerated:{webpack:()=>[2078]},ssr:!1,loading:f}),"ball-sort-3d":l()(()=>Promise.all([a.e(9367),a.e(8833),a.e(5833),a.e(4179)]).then(a.bind(a,4179)),{loadableGenerated:{webpack:()=>[4179]},ssr:!1,loading:f}),"bubble-shooter":l()(()=>a.e(3901).then(a.bind(a,3901)),{loadableGenerated:{webpack:()=>[3901]},ssr:!1,loading:f}),"anagram-blitz":l()(()=>a.e(7061).then(a.bind(a,7061)),{loadableGenerated:{webpack:()=>[7061]},ssr:!1,loading:f}),nonogram:l()(()=>a.e(9312).then(a.bind(a,9312)),{loadableGenerated:{webpack:()=>[9312]},ssr:!1,loading:f}),"block-blast":l()(()=>a.e(1890).then(a.bind(a,1890)),{loadableGenerated:{webpack:()=>[1890]},ssr:!1,loading:f}),"flow-connect":l()(()=>a.e(8817).then(a.bind(a,8817)),{loadableGenerated:{webpack:()=>[8817]},ssr:!1,loading:f}),"ludo-online":l()(()=>Promise.all([a.e(652),a.e(6440),a.e(8753),a.e(2100)]).then(a.bind(a,2100)),{loadableGenerated:{webpack:()=>[2100]},ssr:!1,loading:f}),"tic-tac-toe-online":l()(()=>Promise.all([a.e(652),a.e(6440),a.e(1778)]).then(a.bind(a,1778)),{loadableGenerated:{webpack:()=>[1778]},ssr:!1,loading:f}),"chess-online":l()(()=>Promise.all([a.e(9367),a.e(8833),a.e(5833),a.e(652),a.e(6440),a.e(9306),a.e(5282)]).then(a.bind(a,5282)),{loadableGenerated:{webpack:()=>[5282]},ssr:!1,loading:f}),"carrom-online":l()(()=>Promise.all([a.e(652),a.e(6440),a.e(3124)]).then(a.bind(a,3124)),{loadableGenerated:{webpack:()=>[3124]},ssr:!1,loading:f}
1),"connect-four-online":l()(()=>Promise.all([a.e(652),a.e(6440),a.e(1492)]).then(a.bind(a,1492)),{loadableGenerated:{webpack:()=>[1492]},ssr:!1,loading:f}),"checkers-online":l()(()=>Promise.all([a.e(9367),a.e(8833),a.e(5833),a.e(652),a.e(6440),a.e(9146),a.e(3256)]).then(a.bind(a,3256)),{loadableGenerated:{webpack:()=>[3256]},ssr:!1,loading:f}),"snakes-ladders-online":l()(()=>Promise.all([a.e(652),a.e(6440),a.e(8753),a.e(1129)]).then(a.bind(a,1129)),{loadableGenerated:{webpack:()=>[1129]},ssr:!1,loading:f}),"8-ball-pool-online":l()(()=>Promise.all([a.e(652),a.e(6440),a.e(3082)]).then(a.bind(a,3082)),{loadableGenerated:{webpack:()=>[3082]},ssr:!1,loading:f}),"crazy-eights-online":l()(()=>Promise.all([a.e(652),a.e(6440),a.e(8753),a.e(6965)]).then(a.bind(a,6965)),{loadableGenerated:{webpack:()=>[6965]},ssr:!1,loading:f}),"typing-race-online":l()(()=>Promise.all([a.e(652),a.e(6440),a.e(8382)]).then(a.bind(a,8382)),{loadableGenerated:{webpack:()=>[8382]},ssr:!1,loading:f}),"connect-four":l()(()=>a.e(2257).then(a.bind(a,2257)),{loadableGenerated:{webpack:()=>[2257]},ssr:!1,loading:f}),"reversi-3d":l()(()=>Promise.all([a.e(9367),a.e(8833),a.e(5833),a.e(9146),a.e(3668)]).then(a.bind(a,3668)),{loadableGenerated:{webpack:()=>[3668]},ssr:!1,loading:f}),"word-search":l()(()=>a.e(9049).then(a.bind(a,9049)),{loadableGenerated:{webpack:()=>[9049]},ssr:!1,loading:f})};function x(e){let{slug:t,score:a,hideSuggestions:r=!1}
1=e,[l,o]=(0,s.useState)(null),[i,b]=(0,s.useState)(!1),[h,p]=(0,s.useState)([]),f=(0,d.lY)(t);if((0,s.useEffect)(()=>{o((0,u.GT)(t)),b(!1),p((0,d.X3)(t,8).sort(()=>Math.random()-.5).slice(0,3))},[t,a]),!f)return null;let g=l&&l.plays>0?Math.round(l.total/l.plays):0,x=async()=>{(0,c.u)("share_score",{game:t,score:a});let e="I scored ".concat(a.toLocaleString()," in ").concat(f.name," ").concat(f.emoji," on FunNudge â can you beat me?"),n="".concat(d.W6,"/challenge/").concat(f.slug,"/").concat(a);try{let e=await fetch("/api/challenge",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({game:f.slug,score:a})}),{token:t}=await e.json();t&&(n+="?t=".concat(t))}catch(e){}try{if(navigator.share)return void await navigator.share({text:e,url:n})}catch(e){}try{await navigator.clipboard.writeText("".concat(e," ").concat(n)),b(!0),setTimeout(()=>b(!1),2e3)}catch(e){}};return(0,n.jsxs)("div",{className:"animate-bounce-in mt-4 rounded-2xl border border-white/10 bg-white/5 p-4",children:[(0,n.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[l&&(0,n.jsxs)("p",{className:"text-sm text-zinc-400",children:["\uD83C\uDFAE ",(0,n.jsx)("strong",{className:"text-white",children:l.plays})," play",1===l.plays?"":"s"," \xb7 \uD83C\uDFC6 Best"," ",(0,n.jsx)("strong",{className:"text-amber-300",children:l.best})," \xb7 \uD83D\uDCCA Avg"," ",(0,n.jsx)("strong",{className:"text-white",children:g})]}),(0,n.jsx)("button",{onClick:x,className:"rounded-xl bg-gradient-to-r from-fuchsia-500 to-violet-500 px-4 py-2 text-sm font-bold text-white transition hover:scale-105",children:i?"â Copied!":"\uD83D\uDCE3 Share score"})]}),!r&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{className:"mb-3 mt-4 text-sm font-semibold text-zinc-300",children:"One more? Try these:"}),(0,n.jsx)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-3",children:h.map(e=>(0,n.jsx)(m.A,{game:e},e.slug))})]})]})}function w(e){let{slug:t,hideSuggestions:a=!1,bleed:r=!1}=e,l=g[t],i=(0,s.useRef)(null),[c,d]=(0,s.useState)(!1),[m,f]=(0,s.useState)(!1),[w,v]=(0,s.useState)(!1),[y,j]=(0,s.useState)(!1),[k,N]=(0,s.useState)(null);return(0,s.useEffect)(()=>{(0,h.v4)(t);let e=e=>{let a=e.detail;a.slug===t&&N(e=>{var t;return{score:a.score,n:(null!=(t=null==e?void 0:e.n)?t:0)+1}})};return window.addEventListener(u.gO,e),()=>window.removeEventListener(u.gO,e)},[t]),(0,s.useEffect)(()=>{f("undefined"!=typeof document&&!!document.documentElement.requestFullscreen),j((0,p.qq)());let e=()=>d(!!document.fullscreenElement);document.addEventListener("fullscreenchange",e);let t=()=>{(0,p.ib)(),window.removeEventListener("pointerdown",t),window.removeEventListener("keydown",t)};return window.addEventListener("pointerdown",t),window.addEventListener("keydown",t),()=>{document.removeEventListener("fullscreenchange",e),window.removeEventListener("pointerdown",t),window.removeEventListener("keydown",t)}},[]),(0,s.useEffect)(()=>()=>{document.body.style.overflow=""},[]),(0,n.jsxs)("div",{ref:i,className:"game-shell ".concat(w?"game-fs fixed inset-0 z-[60] overflow-y-auto bg-[#0a0a14] p-2 pt-[max(0.5rem,env(safe-area-inset-top))]":r?"relative mx-auto max-w-4xl shadow-2xl shadow-black/40 max-sm:px-2 sm:rounded-3xl sm:border sm:border-white/10 sm:bg-white/5 sm:p-6":"relative mx-auto max-w-4xl rounded-2xl border border-white/10 bg-white/5 p-2 shadow-2xl shadow-black/40 sm:rounded-3xl sm:p-6"),children:[(0,n.jsxs)("div",{className:"flex items-center justify-end gap-2 border-b border-white/10 sm:mb-3 sm:pb-3 ".concat(r?"mb-1.5 pb-1.5 pt-1 max-sm:border-b-0":"mb-2 pb-2"),children:[(0,n.jsx)(o.default,{slug:t,className:"rounded-lg bg-white/10 px-2.5 py-1.5 text-sm font-bold leading-none transition hover:bg-white/20"}),(0,n.jsx)("button",{onClick:()=>{let e=!y;(0,p.y5)(e),j(e)},"aria-label":y?"Unmute sound effects":"Mute sound effects",title:y?"Unmute":"Mute",className:"rounded-lg bg-white/10 px-2.5 py-1.5 text-sm font-bold text-zinc-300 transition hover:bg-white/20 hover:text-white",children:y?"\uD83D\uDD07":"\uD83D\uDD0A"}),(0,n.jsx)("button",{onClick:()=>
1{if(m){if(document.fullscreenElement)document.exitFullscreen();else{var e,t;let a=null==(e=i.current)?void 0:e.querySelector("[data-board]");null==(t=null!=a?a:i.current)||t.requestFullscreen()}return}v(e=>{let t=!e;return document.body.style.overflow=t?"hidden":"",t})},"aria-label":c||w?"Exit fullscreen":"Enter fullscreen",title:c||w?"Exit fullscreen (Esc)":"Fullscreen",className:"rounded-lg bg-white/10 px-2.5 py-1.5 text-sm font-bold text-zinc-300 transition hover:bg-white/20 hover:text-white",children:c||w?"â Exit":"â¶ Fullscreen"})]}),(0,n.jsx)(s.Suspense,{fallback:null,children:(0,n.jsx)(b,{slug:t})}),(0,n.jsx)("div",{className:"mx-auto w-full",children:l?(0,n.jsx)(l,{}):(0,n.jsx)("p",{className:"py-24 text-center text-zinc-500",children:"Game not found."})}),null!==k&&(0,n.jsx)(x,{slug:t,score:k.score,hideSuggestions:a},k.n)]})}},1150:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i}});let n=a(5155),r=a(2115),l=a(4437);function s(e){return{default:e&&"default"in e?e.default:e}}a(6552);let o={loader:()=>Promise.resolve(s(()=>null)),loading:null,ssr:!0},i=function(e){let t={...o,...e},a=(0,r.lazy)(()=>t.loader().then(s)),i=t.loading;function c(e){let s=i?(0,n.jsx)(i,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,c=o?r.Suspense:r.Fragment,d=t.ssr?(0,n.jsxs)(n.Fragment,{children:[null,(0,n.jsx)(a,{...e})]}):(0,n.jsx)(l.BailoutToCSR,{reason:"next/dynamic",children:(0,n.jsx)(a,{...e})});return(0,n.jsx)(c,{...o?{fallback:s}:{},children:d})}return c.displayName="LoadableComponent",c}},1175:(e,t,a)=>{a.d(t,{_O:()=>b,ib:()=>s,qq:()=>o,y5:()=>i});let n=null,r=null;function l(){try{return null!=n||(n=new AudioContext),"suspended"===n.state&&n.resume(),n}catch(e){return null}}function s(){l()}function o(){if(null===r)try{r="1"===window.localStorage.getItem("funnudge:muted")}catch(e){r=!1}return r}function i(e){r=e;try{window.localStorage.setItem("funnudge:muted",e?"1":"0")}catch(e){}}function c(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"sine",n=arguments.length>3?arguments[3]:void 0,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.15,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,o=l();if(o)try{let l=o.currentTime+s,i=o.createOscillator(),c=o.createGain();i.type=a,i.frequency.setValueAtTime(e,l),n&&i.frequency.exponentialRampToValueAtTime(n,l+t),c.gain.setValueAtTime(1e-4,l),c.gain.exponentialRampToValueAtTime(r,l+.012),c.gain.exponentialRampToValueAtTime(1e-4,l+t),i.connect(c).connect(o.destination),i.start(l),i.stop(l+t+.05)}catch(e){}}function d(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.2,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1200,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=l();if(r)try{let l=r.currentTime+n,s=Math.max(1,Math.floor(r.sampleRate*e)),o=r.createBuffer(1,s,r.sampleRate),i=o.getChannelData(0);for(let e=0;e<s;e++)i[e]=(2*Math.random()-1)*(1-e/s);let c=r.createBufferSource();c.buffer=o;let d=r.createBiquadFilter();d.type="lowpass",d.frequency.value=a;let u=r.createGain();u.gain.value=t,c.connect(d).connect(u).connect(r.destination),c.start(l)}catch(e){}}let u={tap:8,score:10,merge:10,eat:8,jump:8,flap:6,slice:12,perfect:[12,40,12],win:[15,40,15],clear:[10,30,10],combo:[8,20,8],explode:[40,30,40],lose:35,pocket:[14,30,10],bubble:6,boing:[10,25,8],pop:[18,12],flame:[8,14,22]};function b(e){if(o())return;let t=u[e];switch(void 0!==t&&function(e){try{var t,a;null==(t=(a=navigator).vibrate)||t.call(a,e)}catch(e){}}(t),e){case"tap":c(420,.07,"square",void 0,.07);break;case"score":c(660,.09,"sine",880,.13);break;case"merge":c(500,.1,"triangle",640,.14);break;case"eat":c(740,.06,"square",920,.09);break;case"jump":d(.08,.06,1200),c(240,.16,"sine",620,.16);break;case"chirp":c(1900,.05,"sine",2700,.045),c(2500,.06,"sine",2e3,.04,.07);break;case"flap":c(330,.08,"triangle",490,.1);break;case"perfect":c(880,.12,"sine",void 0,.14),c(1318,.18,"sine",void 0,.11,.06);break;case"win":c(523,.14,"triangle",void 0,.15),c(659,.14,"triangle",void 0,.15,.12),c(784,.24,"triangle",void 0,.15,.24);break;case"clear":c(620,.1,"square",void 0,.11),c(830,.15,"square",void 0,.11,.08);break;case"combo":c(700,.08,"sine",void 0,.12),c(900,.08,"sine",void 0,.12,.07),c(1150,.13,"sine",void 0,.12,.14);break;case"slice":d(.12,.14,2400),c(900,.07,"sine",480,.06);break;case"explode":d(.4,.28,900),c(160,.32,"sawtooth",55,.16);break;
1case"bubble":c(260,.11,"sine",980,.14),c(1150,.04,"sine",1500,.04,.08);break;case"boing":d(.05,.05,800),c(180,.12,"triangle",430,.13),c(430,.15,"triangle",300,.09,.09);break;case"flame":d(.34,.17,640),d(.09,.1,2800,.03),d(.07,.07,3400,.15),c(88,.26,"sawtooth",52,.05);break;case"pop":d(.07,.22,3e3),c(900,.06,"square",300,.1);break;case"lose":c(300,.5,"sawtooth",115,.15);break;case"pocket":d(.05,.1,520),c(150,.16,"sine",58,.22),d(.14,.12,300,.05)}}},2636:(e,t,a)=>{a.d(t,{A:()=>l});var n=a(5155),r=a(2115);function l(e){let{className:t="",size:a="sm",title:l="Supporter"}=e,s=(0,r.useId)().replace(/:/g,"");return(0,n.jsx)("span",{title:l,"aria-label":l,role:"img",className:"fn-supporter-mark relative inline-flex shrink-0 items-center justify-center p-[5px] ".concat(t),children:(0,n.jsxs)("svg",{viewBox:"0 0 24 24",className:"md"===a?"h-[1.05em] w-[1.05em]":"h-3.5 w-3.5","aria-hidden":!0,children:[(0,n.jsxs)("defs",{children:[(0,n.jsxs)("linearGradient",{id:"g-".concat(s),x1:"0",y1:"0",x2:"1",y2:"1",children:[(0,n.jsx)("stop",{offset:"0%",stopColor:"#fde68a"}),(0,n.jsx)("stop",{offset:"45%",stopColor:"#fbbf24"}),(0,n.jsx)("stop",{offset:"100%",stopColor:"#d97706"})]}),(0,n.jsxs)("linearGradient",{id:"s-".concat(s),x1:"0",y1:"0",x2:"1",y2:"0",children:[(0,n.jsx)("stop",{offset:"0%",stopColor:"#fff",stopOpacity:"0"}),(0,n.jsx)("stop",{offset:"50%",stopColor:"#fffbe8",stopOpacity:"0.95"}),(0,n.jsx)("stop",{offset:"100%",stopColor:"#fff",stopOpacity:"0"})]}),(0,n.jsx)("clipPath",{id:"c-".concat(s),children:(0,n.jsx)("path",{d:"M12 2.6l2.6 5.3 5.8.85-4.2 4.1 1 5.8-5.2-2.73-5.2 2.73 1-5.8-4.2-4.1 5.8-.85z"})})]}),(0,n.jsx)("path",{fill:"url(#g-".concat(s,")"),d:"M12 2.6l2.6 5.3 5.8.85-4.2 4.1 1 5.8-5.2-2.73-5.2 2.73 1-5.8-4.2-4.1 5.8-.85z"}),(0,n.jsx)("g",{clipPath:"url(#c-".concat(s,")"),children:(0,n.jsx)("rect",{className:"fn-mark-shine",x:"-26",y:"0",width:"14",height:"24",fill:"url(#s-".concat(s,")")})})]})})}},2797:(e,t,a)=>{a.d(t,{A:()=>i});var n=a(5155),r=a(2619),l=a.n(r),s=a(9301),o=a(4109);function i(e){let{game:t,featured:a=!1}=e,r="multiplayer"===t.category;return(0,n.jsxs)("div",{className:"relative h-full",children:[(0,n.jsx)(s.default,{slug:t.slug}),(0,n.jsxs)(l(),{href:"/games/".concat(t.slug),className:"group relative flex h-full flex-col overflow-hidden rounded-2xl border border-white/10 bg-white/5 p-5 transition duration-300 hover:-translate-y-1 hover:border-white/25 hover:bg-white/10 hover:shadow-2xl ".concat(t.glow," ").concat(a?"sm:p-6":""),children:[(0,n.jsx)("div",{className:"pointer-events-none absolute inset-0 z-10 bg-gradient-to-br ".concat(t.gradient," opacity-0 transition duration-300 group-hover:opacity-15"),"aria-hidden":!0}),(0,n.jsxs)("div",{className:"relative mb-4",children:[(0,n.jsx)(o.default,{game:t,featured:a}),"3d"===t.category&&(0,n.jsx)("span",{className:"absolute right-3 top-3 z-20 rounded-full bg-gradient-to-r from-cyan-400 to-blue-500 px-2.5 py-0.5 text-xs font-extrabold tracking-wide text-white shadow-lg shadow-cyan-500/30",children:"3D"}),r&&(0,n.jsxs)("span",{className:"absolute bottom-2 left-2 z-20 flex items-center gap-1.5 rounded-full bg-black/60 px-2 py-1 text-[10px] font-extrabold uppercase tracking-wider text-emerald-300 backdrop-blur",children:[(0,n.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-400 motion-safe:animate-pulse","aria-hidden":!0}),"Live"]})]}),(0,n.jsx)("h3",{className:"text-lg font-bold text-white",children:t.name}),(0,n.jsx)("p",{className:"mt-1 text-sm text-zinc-400",children:t.tagline})]})]})}},3997:(e,t,a)=>{a.d(t,{default:()=>u});var n=a(5155),r=a(2115),l=a(1927),s=a(2578),o=a(2636),i=a(1266),c=a(4107);let d=["\uD83E\uDD47","\uD83E\uDD48","\uD83E\uDD49"];function u(e){let{slug:t,gameName:a,boardKey:u,endSlug:b,title:m="Global Top 10",wrapperClass:h="mx-auto mt-8 max-w-3xl"}=e,p=null!=u?u:t,f=null!=b?b:t,[g,x]=(0,r.useState)([]),[w,v]=(0,r.useState)(!0),[y,j]=(0,r.useState)(null),[k,N]=(0,r.useState)(""),[S,G]=(0,r.useState)(!1),[P,E]=(0,r.useState)(null),O=(0,r.useRef)([]);O.current=g;let L=(0,r.useRef)(!1),C=(0,r.useRef)(0),_=(0,r.useRef)(0),T=(0,r.useRef)(null),[A,z]=(0,r.useState)(()=>new Set);(0,r.useEffect)(()=>{let e=!0,t=async()=>{let t=await (0,l.ZJ)();e&&z(t)};return t(),window.addEventListener(s.Dh,t),()=>{e=!1,window.removeEventListener(s.Dh,t)}},[]);let[M,R]=(0,r.useState)("");(0,r.useEffect)(()=>{let e=()=>R((0,i.Mn)());return e(),window.addEventListener(i.dK,e),()=>window.removeEventListener(i.dK,e)},[]);let D=(0,l.Zw)()&&(!!u||(0,l.kK)(t)),F=(0,r.useCallback)(async()=>{v(!0);let e=await (0,l.Je)(p);x(e),v(!1);let t=await (0,l.ZJ)(),a=e.find(e=>e.pid_pub&&t.has(e.pid_pub));a&&(C.current=Math.max(C.current,a.score))},[p]);(0,r.useEffect)(()=>{D&&(F(),N((0,l.$y)()),(0,l.RF)())},[D,F]),(0,r.useEffect)(()=>
1{if(!D)return;let e=e=>{let t=e.detail;if(!t||t.slug!==f||!(0,l.EH)(t.score,O.current))return;let a=(0,l.$y)();if(a){if(t.score<=C.current)return;_.current=Math.max(_.current,t.score),T.current&&clearTimeout(T.current),T.current=setTimeout(()=>{let e=_.current;e>C.current&&(C.current=e,(0,l.dA)(p,a,e).then(e=>{e&&F()}))},500);return}L.current||(L.current=!0,document.fullscreenElement&&document.exitFullscreen(),N(""),j({score:t.score}))};return window.addEventListener(c.gO,e),()=>{window.removeEventListener(c.gO,e),T.current&&clearTimeout(T.current)}},[D,f,p,F]);let q=(0,r.useCallback)(async()=>{if(!y)return;G(!0);let e=k.trim().slice(0,20)||"Anonymous";(0,l.Pu)(e),C.current=y.score,await (0,l.dA)(p,e,y.score),E({name:e,score:y.score}),j(null),G(!1),await F()},[y,k,p,F]);return D?(0,n.jsxs)("section",{className:h,children:[(0,n.jsxs)("div",{className:"rounded-2xl border border-amber-400/30 bg-gradient-to-b from-amber-500/10 to-white/5 p-5 shadow-lg shadow-amber-500/10",children:[(0,n.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,n.jsxs)("h2",{className:"flex items-center gap-2 text-lg font-extrabold text-white",children:[(0,n.jsx)("span",{"aria-hidden":!0,children:"\uD83C\uDFC6"})," ",m]}),(0,n.jsx)("button",{onClick:()=>void F(),className:"text-xs font-medium text-amber-300/80 transition hover:text-amber-200","aria-label":"Refresh leaderboard",children:"â» Refresh"})]}),w?(0,n.jsx)("p",{className:"py-6 text-center text-sm text-zinc-400",children:"Loading scoresâ¦"}):0===g.length?(0,n.jsx)("p",{className:"py-6 text-center text-sm text-zinc-400",children:"No scores yet â be the first to make the board!"}):(0,n.jsx)("ol",{className:"space-y-1",children:g.map((e,t)=>{var a;let r=!!e.pid_pub&&A.has(e.pid_pub)||!!P&&e.name===P.name&&e.score===P.score;return(0,n.jsxs)("li",{className:"flex items-center justify-between rounded-lg px-3 py-2 text-sm ".concat(r?"bg-amber-400/20 ring-1 ring-amber-300/40":t%2==0?"bg-white/5":"bg-transparent"),children:[(0,n.jsxs)("span",{className:"flex items-center gap-3 overflow-hidden",children:[(0,n.jsx)("span",{className:"w-6 shrink-0 text-center font-bold text-zinc-400",children:null!=(a=d[t])?a:t+1}),(0,l.sg)(e.country)&&(0,n.jsx)("span",{className:"shrink-0","aria-hidden":!0,children:(0,l.sg)(e.country)}),(0,n.jsx)("span",{className:"truncate font-medium text-white",children:r&&M?M:e.name}),e.supporter&&(0,n.jsx)(o.A,{}),r&&(0,n.jsx)("span",{className:"shrink-0 rounded-full bg-amber-400/30 px-2 py-0.5 text-[10px] font-bold uppercase tracking-wide text-amber-200",children:"You"})]}),(0,n.jsx)("span",{className:"shrink-0 font-bold tabular-nums text-amber-300",children:e.score.toLocaleString()})]},"".concat(e.name,"-").concat(e.score,"-").concat(t))})})]}),y&&(0,n.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4",role:"dialog","aria-modal":"true","aria-label":"You made the leaderboard",children:(0,n.jsxs)("div",{className:"w-full max-w-sm rounded-2xl border border-amber-400/30 bg-zinc-900 p-6 text-center shadow-2xl",children:[(0,n.jsx)("p",{className:"text-4xl","aria-hidden":!0,children:"\uD83C\uDFC6"}),(0,n.jsx)("h3",{className:"mt-2 text-xl font-extrabold text-white",children:"You made the Top 10!"}),(0,n.jsxs)("p",{className:"mt-1 text-sm text-zinc-400",children:[a," â score"," ",(0,n.jsx)("span",{className:"font-bold text-amber-300",children:y.score.toLocaleString()})]}),(0,n.jsx)("input",{autoFocus:!0,value:k,onChange:e=>N(e.target.value.slice(0,20)),maxLength:20,placeholder:"Your name",onKeyDown:e=>{e.stopPropagation(),"Enter"===e.key?q():"Escape"===e.key&&j(null)},className:"mt-4 w-full rounded-xl border border-white/10 bg-white/5 px-4 py-3 text-center text-white outline-none transition focus:border-amber-400/50"}),(0,n.jsxs)("p",{className:"mt-1 text-right text-xs text-zinc-500",children:[k.length,"/20"]}),(0,n.jsxs)("div",{className:"mt-4 flex gap-2",children:[(0,n.jsx)("button",{onClick:()=>j(null),className:"flex-1 rounded-xl border border-white/10 px-4 py-2 font-semibold text-zinc-300 transition hover:bg-white/5",children:"Skip"}),(0,n.jsx)("button",{disabled:S,onClick:()=>void q(),className:"flex-1 rounded-xl bg-gradient-to-r from-amber-500 to-orange-500 px-4 py-2 font-bold text-white transition hover:scale-105 disabled:opacity-60",children:S?"Savingâ¦":"Submit"})]})]})})]}):null}},4054:(e,t)=>
1{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var a in t)Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}(t,{bindSnapshot:function(){return s},createAsyncLocalStorage:function(){return l},createSnapshot:function(){return o}});let a=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class n{disable(){throw a}getStore(){}run(){throw a}exit(){throw a}enterWith(){throw a}static bind(e){return e}}let r="undefined"!=typeof globalThis&&globalThis.AsyncLocalStorage;function l(){return r?new r:new n}function s(e){return r?r.bind(e):n.bind(e)}function o(){return r?r.snapshot():function(e,...t){return e(...t)}}},4107:(e,t,a)=>{a.d(t,{GT:()=>o,gO:()=>l,q7:()=>i});var n=a(9636),r=a(80);let l="funnudge:gameend",s=e=>"funnudge:stats:".concat(e);function o(e){try{let r=window.localStorage.getItem(s(e));if(r){var t,a,n;let e=JSON.parse(r);return{plays:null!=(t=e.plays)?t:0,best:null!=(a=e.best)?a:0,total:null!=(n=e.total)?n:0}}}catch(e){}return{plays:0,best:0,total:0}}function i(e,t){let a=o(e),i={plays:a.plays+1,best:Math.max(a.best,t),total:a.total+t};try{window.localStorage.setItem(s(e),JSON.stringify(i))}catch(e){}window.dispatchEvent(new CustomEvent(l,{detail:{slug:e,score:t}})),(0,n.CT)(e,t),(0,r.u)("game_end",{game:e,score:t,plays:i.plays})}},4109:(e,t,a)=>{a.d(t,{default:()=>l});var n=a(5155),r=a(2115);function l(e){let{game:t,featured:a=!1}=e,l=(0,r.useRef)(null),s=(0,r.useRef)(null),[o,i]=(0,r.useState)(!0),[c,d]=(0,r.useState)(!1),[u,b]=(0,r.useState)(!1),m=()=>{var e,t;return null==(e=(t=window).matchMedia)?void 0:e.call(t,"(prefers-reduced-motion: reduce)").matches},h=()=>{let e=l.current;!e||!o||m()||(e.getAttribute("src")||e.setAttribute("src","/previews/".concat(t.slug,".webm")),e.play().then(()=>d(!0)).catch(()=>{}))},p=()=>{let e=l.current;if(e){e.pause(),d(!1);try{e.currentTime=0}catch(e){}}};return(0,r.useEffect)(()=>{var e,t;let a=s.current;if(!a)return;let n=!(null==(e=(t=window).matchMedia)?void 0:e.call(t,"(hover: hover)").matches),r=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&b(!0),n&&!m()&&(t.isIntersecting&&t.intersectionRatio>.6?h():p())},{threshold:[0,.6,1],rootMargin:"250px"});return r.observe(a),()=>r.disconnect()},[]),(0,n.jsxs)("div",{ref:s,onMouseEnter:h,onMouseLeave:p,className:"relative w-full overflow-hidden rounded-xl ".concat(a?"aspect-video":"aspect-[16/10]"),children:[(0,n.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-gradient-to-br ".concat(t.gradient),"aria-hidden":!0,children:(0,n.jsx)("span",{className:a?"text-6xl":"text-5xl",children:t.emoji})}),(0,n.jsx)("div",{className:"absolute inset-0 bg-cover bg-center",style:u?{backgroundImage:"url(/previews/".concat(t.slug,".jpg)")}:void 0,"aria-hidden":!0}),o&&(0,n.jsx)("video",{ref:l,muted:!0,loop:!0,playsInline:!0,preload:"none",onError:()=>i(!1),className:"absolute inset-0 h-full w-full object-cover transition-opacity duration-300 ".concat(c?"opacity-100":"opacity-0")}),(0,n.jsx)("span",{className:"absolute bottom-2 right-2 flex h-7 w-7 items-center justify-center rounded-full bg-black/55 text-xs text-white transition-opacity duration-200 ".concat(c||!o?"opacity-0":"opacity-90"),"aria-hidden":!0,children:"â¶"})]})}},4437:(e,t,a)=>{function n(e){let{reason:t,children:a}=e;return a}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return n}}),a(4553)},6278:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return r}});let n=a(8140)._(a(1150));function r(e,t){var a;let r={};"function"==typeof e&&(r.loader=e);let l={...r,...t};return(0,n.default)({...l,modules:null==(a=l.loadableGenerated)?void 0:a.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6552:(e,t,a)=>{function n(e){let{moduleIds:t}=e;return null}
1Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return n}}),a(5155),a(7650),a(8567),a(7278)},7828:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,a(4054).createAsyncLocalStorage)()},8567:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return n.workAsyncStorageInstance}});let n=a(7828)},9301:(e,t,a)=>{a.d(t,{default:()=>s});var n=a(5155),r=a(2115),l=a(2237);function s(e){let{slug:t,className:a}=e,[s,o]=(0,r.useState)(!1),[i,c]=(0,r.useState)(0),d=!!a;return(0,r.useEffect)(()=>{o((0,l.BA)(t));let e=()=>o((0,l.BA)(t));return window.addEventListener(l.hO,e),()=>window.removeEventListener(l.hO,e)},[t]),(0,n.jsx)("button",{type:"button","aria-label":s?"Remove from favorites":"Add to favorites",title:s?"Remove from favorites":"Add to favorites",onClick:()=>{o((0,l.dw)(t)),c(e=>e+1)},className:null!=a?a:"group absolute left-1 top-1 z-30 flex h-11 w-11 items-center justify-center",children:(0,n.jsxs)("span",{className:"relative inline-flex items-center justify-center",children:[s&&i>0&&(0,n.jsx)("span",{className:"pointer-events-none absolute inset-0 rounded-full border-2 border-rose-400 opacity-0 motion-safe:animate-fav-ring","aria-hidden":!0},"ring-".concat(i)),(0,n.jsx)("span",{className:"".concat(d?"inline-flex h-5 items-center justify-center text-lg leading-none transition group-hover:scale-110 ".concat(s?"text-rose-400":"text-zinc-300"):"flex h-8 w-8 items-center justify-center rounded-full bg-black/45 text-lg leading-none backdrop-blur transition group-hover:scale-110 group-hover:bg-black/65 ".concat(s?"text-rose-400":"text-white/70")," ").concat(i>0?"motion-safe:animate-fav-pop":""),"aria-hidden":!0,children:s?"â¥":"â¡"},i)]})})}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.