1import{c as le,a9 as je,aa as ve,j as e,l as He,F as Oe,k as pe,r as n,C as X,b as ke,a8 as Fe,L as ye,h as Ge}from"./index-BCW6nnV8.js";import{t as S,C as Ue}from"./analytics-DRt0D_XB.js";const Ye=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"22",x2:"18",y1:"12",y2:"12",key:"l9bcsi"}],["line",{x1:"6",x2:"2",y1:"12",y2:"12",key:"13hhkx"}],["line",{x1:"12",x2:"12",y1:"6",y2:"2",key:"10w3f3"}],["line",{x1:"12",x2:"12",y1:"22",y2:"18",key:"15g9kq"}]],Ne=le("crosshair",Ye);const qe=[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]],Ve=le("timer",qe);const Xe=[["path",{d:"M10 14.66v1.626a2 2 0 0 1-.976 1.696A5 5 0 0 0 7 21.978",key:"1n3hpd"}],["path",{d:"M14 14.66v1.626a2 2 0 0 0 .976 1.696A5 5 0 0 1 17 21.978",key:"rfe1zi"}],["path",{d:"M18 9h1.5a1 1 0 0 0 0-5H18",key:"7xy6bh"}],["path",{d:"M4 22h16",key:"57wxv0"}],["path",{d:"M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z",key:"1mhfuq"}],["path",{d:"M6 9H4.5a1 1 0 0 1 0-5H6",key:"tex48p"}]],We=le("trophy",Xe),Ke="/assets/game-blaster-pistol-C2CBilX1.png",Ze="/assets/game-blaster-smg-e8k4Dv9B.png",Je="/assets/game-blaster-ar-Bc8GTeJ1.png",E=20,oe={normal:10,small:20,moving:25,bonus:50},W={pistol:{id:"pistol",name:"PISTOL",image:Ke,tagline:"Balanced & precise",description:"Slower trigger, but targets read big and stay up longer. Reward for clean, deliberate shooting.",fireRate:"Fire rate: Low · Accuracy: High",stats:[{label:"Fire rate",value:40},{label:"Accuracy",value:92},{label:"Target size",value:85}],cooldown:300,spawnMs:680,sizeMul:1.18,lifeMul:1.3,maxTargets:5},smg:{id:"smg",name:"SMG",image:Ze,tagline:"Spray & clear",description:"Blistering fire rate and a crowded range â smaller targets that vanish fast. Volume over precision.",fireRate:"Fire rate: Very high · Accuracy: Moderate",stats:[{label:"Fire rate",value:95},{label:"Accuracy",value:55},{label:"Target size",value:45}],cooldown:115,spawnMs:430,sizeMul:.86,lifeMul:.85,maxTargets:7},ar:{id:"ar",name:"AR BLASTER",image:Je,tagline:"Powerful all-rounder",description:"Balanced cadence with strong target presence. The dependable pick for a consistent high score.",fireRate:"Fire rate: Medium · Accuracy: High",stats:[{label:"Fire rate",value:70},{label:"Accuracy",value:78},{label:"Target size",value:68}],cooldown:205,spawnMs:540,sizeMul:1.02,lifeMul:1.05,maxTargets:6}},Qe=[W.pistol,W.smg,W.ar],et={normal:78,small:52,moving:70,bonus:62},tt={normal:1800,small:1450,moving:2100,bonus:1250};function st(){const a=Math.random();return a<.46?"normal":a<.66?"small":a<.88?"moving":"bonus"}function at(a,l,s){const u=s<520?.82:1;return Math.max(44,Math.round(et[a]*l.sizeMul*u))}function nt(a,l){return Math.round(tt[a]*l.lifeMul)}const rt=66,ot=2200;function lt(a){return a<.25?.34:a<.5?.5:a<.75?.62:.74}function ct(a){return a<.25?1:a<.5?2:a<.75?3:4}function it(a,l){const s=l<520?.86:1;return Math.max(48,Math.round(rt*a.sizeMul*s))}const we=320;function dt(a){return a<.25?.5:a<.5?.66:a<.75?.78:.88}function ut(a){return .3+a*.3}function mt(a){return a<.4?0:.22}function xt(a){return a<.4?.1:a<.75?.3:.5}function ht(a,l){const s=l<.25?1:l<.5?.9:l<.75?.8:.68;return Math.max(180,Math.round(a.spawnMs*s))}const ft=je({method:"POST"}).handler(ve("7a121ced7d8c3abdc52fb9fa459d1ec345731e2ee013ef557fb0cdf3052d6d3b")),gt=je({method:"POST"}).handler(ve("c4a1da4fe050a4b82219f6620f406c96767f9edf9184891ff97fec237f41e291")),bt={normal:{ring:"border-brand/70",core:"bg-brand/20",glow:"shadow-[0_0_24px_-4px_oklch(0.72_0.21_45/0.7)]"},small:{ring:"border-amber-300/80",core:"bg-amber-300/20",glow:"shadow-[0_0_24px_-4px_rgba(252,211,77,0.7)]"},moving:{ring:"border-sky-300/80",core:"bg-sky-300/20",glow:"shadow-[0_0_24px_-4px_rgba(125,211,252,0.7)]"},bonus:{ring:"border-fuchsia-300/90",core:"bg-fuchsia-300/25",glow:"shadow-[0_0_30px_-2px_rgba(240,171,252,0.8)]"}};function _t(){return e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsx(He,{}),e.jsx("main",{children:e.jsx(pt,{})}),e.jsx(Oe,{})]})}function pt(){const a=pe(ft),l=pe(gt),[s,u]=n.useState("select"),[h,f]=n.useState("ar"),[p,y]=n.useState(3),[K,H]=n.useState(E),[Z,ce]=n.useState(0),[_e,ie]=n.useState(0),[Se,C]=n.useState([]),[Me,J]=n.useState([]),[Ce,de]=n.useState(!1),[T,Q]=n.useState(null),[Te,ue]=n.useState(!1),[me,D]=n.useState(null),[Be,O]=n.useState(!1),[B,ze]=n.useState({score:0,hits:0,shots:0}),[Re,ee]=n.useState(!1),$=n.useRef(null),xe=n.useRef(null),L=n.useRef([]),I=n.useRef(0),z=n.useRef(0),he=n.useRef(0),te=n.useRef(0),F=n.useRef(!1),se=n.useRef(!1),g=W[h];n.useEffect(()=>{if(s!=="countdown")return;if(p<=0){u("playing");return}const t=window.setTimeout(()=>y(r=>r-1),800);return()=>window.clearTimeout(t)},[s,p]),n.useEffect(()=>{if(s!=="playing")return;const t=Date.now()+E*1e3;te.current=Date.now();const r=window.setInterval(()=>{const c=Math.max(0,Math.ceil((t-Date.now())/1e3));H(c),c<=0&&(window.clearInterval(r),ne())},100);return()=>window.clearInterval(r)},[s]),n.useEffect(()=>{if(s!=="playing")return;let t=0;const r=(o,i)=>{const x=$.current;if(!x)return o;const b=x.clientWidth,re=Math.max(1,x.clientHeight),G=Date.now(),R=Math.min(1,(G-te.current)/(E*1e3)),$e=o.filter(P=>P.dead).length,Le=g.maxTargets+(R>.5?2:0);if(o.length>=Le)return o;const j=!i&&$e<ct(R)&&G-z.current>200&&Math.random()<lt(R),U=j?"normal":st(),A=j?it(g,b):at(U,g,b),Y=A/2/b*100+(!j&&U==="moving"?22:4),q=A/2/re*100+4;let k=0,N=0,V=!1,ge=A;if(j&&Math.random()<dt(R)){const P=Math.random()<mt(R),_=o.filter(d=>!d.dead&&(d.kind==="normal"||d.kind==="bonus"||P&&d.kind==="moving")&&d.life-(G-d.bornAt)>we+600&&!o.some(v=>v.dead&&Math.hypot(v.xPct-d.xPct,v.yPct-d.yPct)<6)).flatMap(d=>d.kind==="bonus"?[d,d,d]:[d]),w=_[Math.floor(Math.random()*_.length)];if(w){const d=Math.random()<ut(R);if(ge=Math.max(A,Math.round(w.size*(d?.78:.94))),d){const v=Math.random()*Math.PI*2,be=w.size*.32/2;k=w.xPct+Math.cos(v)*be/b*100,N=w.yPct+Math.sin(v)*be/re*100}else k=w.xPct,N=w.yPct;
1k=Math.min(100-Y,Math.max(Y,k)),N=Math.min(100-q,Math.max(q,N)),V=!0}}for(let P=0;!V&&P<16;P+=1)k=Y+Math.random()*(100-Y*2),N=q+Math.random()*(100-q*2),o.some(_=>{const w=(k-_.xPct)/100*b,d=(N-_.yPct)/100*re,v=(A+_.size)/2+(j||_.dead?40:10);return Math.hypot(w,d)<v})||(V=!0);return V?(he.current+=1,[...o,{id:`t${he.current}-${Math.random().toString(36).slice(2,8)}`,kind:U,dead:j,xPct:k,yPct:N,size:j?ge:A,bornAt:G,life:j?ot:nt(U,g)}]):o},c=()=>{const o=Math.min(1,(Date.now()-te.current)/(E*1e3));C(i=>{let x=r(i,!1);return Math.random()<xt(o)&&(x=r(x,!0)),o>.75&&Math.random()<.35&&(x=r(x,!0)),se.current=x.some(b=>b.dead),x}),t=window.setTimeout(c,ht(g,o))};t=window.setTimeout(c,220);const m=window.setInterval(()=>{const o=Date.now();C(i=>{const x=i.filter(b=>o-b.bornAt<b.life);return se.current=x.some(b=>b.dead),x})},120);return()=>{window.clearTimeout(t),window.clearInterval(m)}},[s,g]),n.useEffect(()=>{if(s!=="playing"&&s!=="countdown")return;const t=$.current,r=()=>{if(!t)return;const m=t.getBoundingClientRect().top+window.scrollY-300;window.scrollTo({top:Math.max(0,m),behavior:"auto"})};r();const c=window.setTimeout(r,120);return()=>window.clearTimeout(c)},[s]);const ae=n.useCallback((t,r,c)=>{const m=`e${Math.random().toString(36).slice(2,9)}`;J(o=>[...o.slice(-8),{id:m,x:t,y:r,label:c}]),window.setTimeout(()=>J(o=>o.filter(i=>i.id!==m)),620)},[]),ne=n.useCallback(async(t=!1)=>{u("result"),C([]);const r=xe.current,c={score:0,hits:L.current.length,shots:I.current};if(c.score=L.current.reduce((m,o)=>m+oe[o.kind],0),ze(c),S("game_completed",{blaster:h,score:c.score,hits:c.hits,failed:t}),!!r){ue(!0),D(null);try{const m=await l({data:{sessionId:r.sessionId,issuedAt:r.issuedAt,token:r.token,shots:I.current,hits:L.current,failed:t}});Q(m),S("game_reward_awarded",{tier:m.discountPercent,score:m.score})}catch(m){D(m instanceof Error?m.message:"Could not verify your round")}finally{ue(!1)}}},[h,l]),Ae=n.useCallback(async()=>{de(!0),D(null);try{const t=await a({data:{blaster:h}});xe.current=t,L.current=[],I.current=0,z.current=0,F.current=!1,se.current=!1,ee(!1),ce(0),ie(0),C([]),J([]),Q(null),O(!1),H(E),y(3),u("countdown"),S("game_started",{blaster:h})}catch{D("Could not start the challenge. Please try again.")}finally{de(!1)}},[h,a]),Pe=n.useCallback(()=>{if(s!=="playing")return;const t=Date.now();t-z.current<g.cooldown||(z.current=t,I.current+=1)},[s,g.cooldown]),fe=n.useCallback((t,r)=>{if(s!=="playing")return;const c=Date.now();if(c-z.current<g.cooldown)return;if(z.current=c,I.current+=1,r.stopPropagation(),t.dead){if(F.current||c-t.bornAt<we)return;F.current=!0;const i=$.current;if(i){const x=i.getBoundingClientRect();ae(r.clientX-x.left,r.clientY-x.top,"ð¥ BOOM!")}C([]),ee(!0),S("game_dead_bubble_hit",{blaster:g.id,score:Z}),window.setTimeout(()=>{ee(!1),ne(!0)},900);return}L.current.push({id:t.id,kind:t.kind});const m=oe[t.kind];ce(i=>i+m),ie(i=>i+1),C(i=>i.filter(x=>x.id!==t.id));const o=$.current;if(o){const i=o.getBoundingClientRect();ae(r.clientX-i.left,r.clientY-i.top,`+${m}`)}},[s,g.cooldown,g.id,ae,Z,ne]),Ee=n.useMemo(()=>{const t=Math.max(B.shots,B.hits);return t>0?Math.round(B.hits/t*100):0},[B]),De=n.useCallback(async()=>{if(T)try{await navigator.clipboard.writeText(T.discountCode),O(!0),S("game_code_copied",{code:T.discountCode}),window.setTimeout(()=>O(!1),2200)}catch{O(!1)}},[T]);return e.jsxs("section",{className:"relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(circle_at_50%_0%,oklch(0.72_0.21_45/0.18),transparent_60%)]"}),e.jsxs("div",{className:`relative mx-auto max-w-6xl px-4 py-10 md:px-6 md:py-14 ${s==="playing"||s==="countdown"?"pb-[45vh]":""}`,children:[e.jsxs("div",{className:"text-center",children:[e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full border border-brand/40 bg-brand/10 px-4 py-1.5 text-xs font-bold uppercase tracking-widest text-brand",children:[e.jsx(Ne,{className:"h-3.5 w-3.5"})," Play · Shoot · Win"]}),e.jsx("h1",{className:"mt-4 font-display text-3xl font-extrabold italic uppercase tracking-tight md:text-5xl",children:"GelToyNation Shooting Challenge"}),e.jsx("p",{className:"mx-auto mt-3 max-w-2xl text-sm text-muted-foreground md:text-base",children:"Choose your blaster. Hit the targets. Win your discount."})]}),s==="select"&&e.jsx(jt,{selected:h,onSelect:t=>{f(t),S("game_blaster_selected",{blaster:t})},onStart:Ae,starting:Ce,error:me}),(s==="countdown"||s==="playing")&&e.jsxs("div",{className:"mt-8",children:[e.jsx(wt,{timeLeft:s==="playing"?K:E,score:Z,hits:_e,blasterName:g.name}),e.jsxs("div",{ref:$,onPointerDown:Pe,className:"gt-arena relative mt-3 touch-none select-none overscroll-contain h-[62vh] max-h-[620px] min-h-[360px] w-full overflow-hidden rounded-3xl border-2 border-brand/30 bg-[linear-gradient(180deg,oklch(0.22_0.02_250)_0%,oklch(0.16_0.02_250)_100%)] shadow-[inset_0_0_80px_-20px_oklch(0.72_0.21_45/0.35)]",children:[e.jsx(yt,{}),s==="countdown"&&e.jsx("div",{className:"absolute inset-0 z-20 flex items-center justify-center bg-background/70 backdrop-blur-sm",children:e.jsx("span",{className:"gt-count font-display text-7xl font-extrabold italic text-brand md:text-9xl",children:p>0?p:"GO!"},p)}),Re&&e.jsxs("div",{className:"absolute inset-0 z-30 flex flex-col items-center justify-center bg-destructive/25 backdrop-blur-sm",children:[e.jsx("span",{className:"gt-count font-display text-5xl font-extrabold italic text-destructive drop-shadow md:text-7xl",children:"ð¥ BOOM!"}),e.jsx("span",{className:"mt-2 font-display text-lg font-extrabold uppercase tracking-widest text-foreground md:text-2xl",children:"Dead bubble hit"})]}),[...Se].sort((t,r)=>+!!t.dead-+!!r.dead).map(t=>{if(t.dead)return e.jsxs("button",{type:"button","aria-label":"Dead bubble â do not shoot",onPointerDown:c=>fe(t,c),style:{left:`${t.xPct}%`,top:`${t.yPct}%`,width:t.size,height:t.size,marginLeft:-t.size/2,marginTop:-t.size/2},className:"gt-dead absolute z-[15] flex items-center justify-center rounded-full border-4 border-destructive/70 bg-[radial-gradient(circle_at_35%_30%,oklch(0.30_0.03_20),oklch(0.12_0.02_20))] shadow-[0_0_28px_-4px_hsl(var(--destructive)/0.8)]",children:[e.jsx("span",{className:"absolute inset-[18%] rounded-full border border-destructive/40"}),e.jsx("span",{className:"text-2xl leading-none",children:"ð"})]},t.id);const r=bt[t.kind];return e.jsxs("button",{type:"button","aria-label":`${t.kind} target worth ${oe[t.kind]} points`,onPointerDown:c=>fe(t,c),style:{left:`${t.xPct}%`,top:`${t.yPct}%`,width:t.size,height:t.size,marginLeft:-t.size/2,marginTop:-t.size/2},className:`absolute rounded-full border-4 ${r.ring} ${r.core} ${r.glow} ${t.kind==="moving"?"gt-target-move":"gt-target"} flex items-center justify-center`,children:[e.jsx("span",{className:`block rounded-full border-2 ${r.ring}`,style:{width:"58%",height:"58%"}}),e.jsx("span",{className:"absolute h-1/5 w-1/5 rounded-full bg-brand"}),t.kind==="bonus"&&e.jsx("span",{className:"absolute -bottom-1 rounded-full bg-fuchsia-400 px-1.5 text-[10px] font-black text-background",children:"BONUS"})]},t.id)}),Me.map(t=>e.jsx("span",{style:{left:t.x,top:t.y},className:"gt-float pointer-events-none absolute z-10 -translate-x-1/2 font-display text-lg font-extrabold text-brand drop-shadow",children:t.label},t.id))]}),e.jsx("p",{className:"mt-3 text-center text-xs text-muted-foreground",children:"Tap or click the targets. Bonu
1s targets are worth the most â and never shoot a ð dead bubble: it ends your round with no discount."})]}),s==="result"&&e.jsx(vt,{claiming:Te,error:me,reward:T,localScore:B.score,localHits:B.hits,failed:T?.failed??F.current,accuracy:Ee,copied:Be,onCopy:De,onReplay:()=>{u("select"),Q(null),D(null)}})]})]})}function yt(){return e.jsxs("div",{className:"pointer-events-none absolute inset-0",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.14] [background-image:linear-gradient(oklch(0.72_0.21_45/0.6)_1px,transparent_1px),linear-gradient(90deg,oklch(0.72_0.21_45/0.6)_1px,transparent_1px)] [background-size:44px_44px]"}),e.jsx("div",{className:"absolute inset-x-0 bottom-0 h-1/3 bg-[linear-gradient(0deg,oklch(0.72_0.21_45/0.12),transparent)]"})]})}function wt({timeLeft:a,score:l,hits:s,blasterName:u}){const h=a<=10;return e.jsxs("div",{className:"sticky top-[134px] z-30 grid grid-cols-2 gap-2 rounded-2xl bg-background/85 p-1 backdrop-blur md:top-[124px] md:grid-cols-4",children:[e.jsx(M,{label:"Time",value:`00:${String(a).padStart(2,"0")}`,accent:h,icon:e.jsx(Ve,{className:"h-3.5 w-3.5"})}),e.jsx(M,{label:"Score",value:String(l)}),e.jsx(M,{label:"Targets hit",value:String(s)}),e.jsx(M,{label:"Blaster",value:u})]})}function M({label:a,value:l,accent:s,icon:u}){return e.jsxs("div",{className:`rounded-2xl border px-3 py-2 text-center ${s?"border-brand bg-brand/15":"border-border/60 bg-surface/60"}`,children:[e.jsxs("div",{className:"flex items-center justify-center gap-1 text-[10px] font-bold uppercase tracking-widest text-muted-foreground",children:[u,a]}),e.jsx("div",{className:`font-display text-xl font-extrabold tabular-nums md:text-2xl ${s?"text-brand":"text-foreground"}`,children:l})]})}function jt({selected:a,onSelect:l,onStart:s,starting:u,error:h}){return e.jsxs("div",{className:"mt-10",children:[e.jsx("h2",{className:"text-center font-display text-lg font-extrabold uppercase tracking-widest text-muted-foreground",children:"Step 1 â Choose your blaster"}),e.jsx("div",{className:"mt-5 grid gap-4 md:grid-cols-3",children:Qe.map(f=>{const p=f.id===a;return e.jsxs("button",{type:"button",onClick:()=>l(f.id),"aria-pressed":p,className:`group rounded-3xl border-2 p-5 text-left transition-all duration-200 ${p?"border-brand bg-brand/10 shadow-[var(--shadow-glow)]":"border-border/60 bg-surface/50 hover:border-brand/60 hover:bg-surface"}`,children:[e.jsx("img",{src:f.image,alt:`${f.name} virtual gel blaster`,loading:"lazy",width:768,height:512,className:"mx-auto h-28 w-auto object-contain transition-transform duration-300 group-hover:scale-105"}),e.jsx("div",{className:"mt-4 font-display text-xl font-extrabold uppercase tracking-tight",children:f.name}),e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-brand",children:f.tagline}),e.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:f.description}),e.jsx("p",{className:"mt-2 text-[11px] font-semibold uppercase tracking-wide text-foreground/70",children:f.fireRate}),e.jsx("div",{className:"mt-3 space-y-1.5",children:f.stats.map(y=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"w-20 text-[10px] font-bold uppercase tracking-wider text-muted-foreground",children:y.label}),e.jsx("span",{className:"h-1.5 flex-1 overflow-hidden rounded-full bg-border/60",children:e.jsx("span",{className:"block h-full rounded-full bg-[image:var(--gradient-brand)]",style:{width:`${y.value}%`}})})]},y.label))})]},f.id)})}),e.jsxs("div",{className:"mt-8 text-center",children:[e.jsxs(X,{size:"lg",onClick:s,disabled:u,children:[u?e.jsx(ke,{className:"h-4 w-4 animate-spin"}):e.jsx(Ne,{className:"h-4 w-4"}),u?"Loading rangeâ¦":"Start the challenge"]}),e.jsx("p",{className:"mt-3 text-xs text-muted-foreground",children:"20 seconds · Up to 25% off · Avoid the ð dead bubbles"}),h&&e.jsx("p",{className:"mt-3 text-sm text-destructive",children:h})]})]})}function vt({claiming:a,error:l,reward:s,failed:u,localScore:h,localHits:f,accuracy:p,copied:y,onCopy:K,onReplay:H}){return e.jsxs("div",{className:"mx-auto mt-10 max-w-2xl text-center",children:[e.jsx("h2",{className:`font-display text-3xl font-extrabold italic uppercase md:text-4xl ${u?"text-destructive":"text-brand"}`,children:u?"ð¥ Boom! Game over":"Time's up!"}),u&&e.jsx("p",{className:"mt-2 text-sm font-semibold text-muted-foreground",children:"You hit a Dead Bubble â your discount has been lost for this round."}),e.jsxs("div",{className:"mt-6 grid grid-cols-3 gap-2",children:[e.jsx(M,{label:"Your score",value:String(s?.score??h)}),e.jsx(M,{label:"Targets hit",value:String(s?.targetsHit??f)}),e.jsx(M,{label:"Accuracy",value:`${s?.accuracy??p}%`})]}),e.jsxs("div",{className:"gt-count mt-8 rounded-3xl border-2 border-brand/50 bg-surface/70 p-6 md:p-8",children:[a&&e.jsxs("div",{className:"flex items-center justify-center gap-2 py-6 text-muted-foreground",children:[e.jsx(ke,{className:"h-5 w-5 animate-spin"})," Verifying your roundâ¦"]}),!a&&l&&e.jsxs("div",{className:"py-4",children:[e.jsx("p",{className:"text-sm text-destructive",children:l}),e.jsx("p",{className:"mt-2 text-xs text-muted-foreground",children:"Rewards are verified on our servers, so scores can't be edited."})]}),!a&&!l&&s?.failed&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"text-4xl",children:"ð"}),e.jsx("div",{className:"mt-2 font-display text-2xl font-extrabold uppercase tracking-tight md:text-3xl",children:"No discount this round"}),e.jsxs("p",{className:"mt-1 text-sm text-muted-foreground",children:["Score: ",s.score," · Dead bubbles end the round instantly. Shoot fast, aim carefully, and try again."]}),e.jsxs("div",{className:"mt-6 flex flex-col items-center justify-center gap-3 sm:flex-row",children:[e.jsxs(X,{size:"lg",onClick:H,children:[e.jsx(Fe,{className:"h-4 w-4"})," Try again"]}),e.jsx(ye,{to:"/shop",search:{collection:"shop-all-gel-blasters"},children:e.jsx(X,{variant:"outline",children:"Back to shop"})})]})]}),!a&&s&&!s.failed&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"text-4xl",children:"ð"}),e.jsxs("div",{className:"mt-2 font-display text-2xl font-extrabold uppercase tracking-tight md:text-3xl",children:["You unlocked ",s.discountPercent,"% off!"]}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:s.alreadyClaimed?"This is your reward from this round.":"Amazing shooting â here's your reward."}),e.jsxs("div",{className:"mx-auto mt-5 flex max-w-sm items-center justify-between gap-3 rounded-2xl border-2 border-dashed border-brand/60 bg-background px-4 py-3",children:[e.jsx("span",{className:"font-display text-xl font-extrabold tracking-widest text-brand",children:s.discountCode}),e.jsxs("button",{type:"button",onClick:K,"aria-label":"Copy discount code",className:"inline-flex items-center gap-1.5 rounded-full border border-brand/60 px-3 py-1.5 text-xs font-bold uppercase tracking-wider text-foreground hover:bg-brand/10",children:[y?e.jsx(Ge,{className:"h-3.5 w-3.5"}):e.jsx(Ue,{className:"h-3.5 w-3.5"}),y?"Copied":"Copy code"]})]}),e.jsx("div",{className:"mt-6 flex flex-col items-center justify-center gap-3 sm:flex-row",children:e.jsx("a",{href:s.discountUrl,onClick:()=>S("game_shop_now_clicked",{code:s.discountCode}),children:e.jsxs(X,{size:"lg",children:[e.jsx(We,{className:"h-4 w-4"})," Shop GelToyNation"]})})}),e.jsx("p",{className:"mt-5 text-sm text-muted-foreground",children:"Ready to put your real gel blaster skills to the test? Use your reward and shop GelToyNation."}),e.jsx("div",{className:"mt-3",children:e.jsx(ye,{to:"/shop",search:{collection:"shop-all-gel-blasters"},className:"text-sm font-bold uppercase tracking-wider text-brand hover:underline",children:"Browse all blasters â"})})]})]})]})}export{_t as component};
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.