1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[523],{17160:(e,t,r)=>{"use strict";r.d(t,{A:()=>c});var a=r(37876);r(14232);var s=r(48230),n=r.n(s);function c(e){let{steps:t,summary:r="How to play"}=e;return(null==t?void 0:t.length)?(0,a.jsxs)("details",{className:"gz-howto",children:[(0,a.jsx)("summary",{className:"gz-howto__summary",children:r}),(0,a.jsx)("ol",{className:"gz-howto__list",children:t.map((e,t)=>(0,a.jsx)("li",{className:"gz-howto__item",children:e},t))}),(0,a.jsx)("p",{className:"gz-howto__more",children:(0,a.jsx)(n(),{href:"/gamezone/how-to-play",children:"Full guide for all games"})})]}):null}},22196:(e,t,r)=>{"use strict";r.d(t,{Ag:()=>l,Eg:()=>n,Fc:()=>a,IX:()=>i,Lm:()=>o,Vk:()=>c,kk:()=>s});let a=["Focus the box or click the page so keys are captured.","Start race â countdown 3â¦2â¦1â¦GO.","Press the 10 keys in trail order. Wrong keys do not advance.","Finish before the ghost (your saved best times). New PB can replace the ghost.","New 10-key track clears the saved ghost and picks a fresh trail."],s=["Start bracket â first to 2 round wins wins the series.","Each round is 10 seconds: tap the highlighted key; each hit picks a new key.","The target also rotates about every 1.4s â stay ready.","When time ends, your taps must beat âBeat: Nâ to take the round.","Next round until someone wins 2 rounds. Challenger target uses your local history."],n=["Rule changes each UTC day â read todayâs title and blurb.","Health modes: keys raise or lower HP; timer shows session length.","Score modes: only allowed keys build score/combo; others may reset or hurt.","Use the on-screen hints for vowels, digits-only, space lava, modifiers, numpad, etc."],c=["Only the âCurrentâ key grows your bloom.","Correct key â +bloom, new petal, new target.","Wrong key â lose 2 blooms and trim petals.","No timer â play at your own pace."],o=["Click the page so keys are received.","Almost any key adds a star; nearby stars get faint lines.","Avoid Tab/Escape if they steal focus.","Resize the window to resize the canvas."],l=["Read the OS note â some Ctrl/Cmd combos never reach the page.","Start round: 6 chords in order.","Match Shift/Ctrl/Alt + key (or F4 alone) exactly; wrong tries add mistakes but same step until correct."],i=["Peek & run â ~1 second to see 6 keys, then they hide.","Type the same 6 keys in order from memory.","One wrong key ends the run. All six correct â win (Local wins)."]},47010:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>x});var a=r(37876),s=r(14232),n=r(77328),c=r.n(n),o=r(14420),l=r(43154),i=r(17160),u=r(22196),h=r(99271);let d="keyboard-bracket-history-v1",{bracketRoundSec:m,bracketRotateMs:g,bracketOppMin:k,bracketOppMax:b,bracketHighScoreBadge:_}=(0,h.P)(),y=[...Array.from({length:26},(e,t)=>"Key".concat(String.fromCharCode(65+t))),...Array.from({length:10},(e,t)=>"Digit".concat(t))];function f(){try{let e=localStorage.getItem(d),t=e?JSON.parse(e):[];return Array.isArray(t)?t:[]}catch(e){return[]}}function p(){let[e,t]=(0,s.useState)("idle"),[r,n]=(0,s.useState)(0),[c,o]=(0,s.useState)(0),[h,p]=(0,s.use
1State)(1),[x,w]=(0,s.useState)(m),[v,N]=(0,s.useState)(()=>y[Math.floor(Math.random()*y.length)]),[j,z]=(0,s.useState)(0),[S,C]=(0,s.useState)(0),[E,R]=(0,s.useState)(null),M=(0,s.useRef)("idle"),A=(0,s.useRef)(0),B=(0,s.useRef)(0),T=(0,s.useRef)(0),I=(0,s.useRef)(!1),O=(0,s.useRef)(m),F=(0,s.useRef)(1),L=(0,s.useRef)(0),P=(0,s.useRef)(0),H=(0,s.useRef)(0);(0,s.useEffect)(()=>{(0,l.BE)("bracket")},[]),(0,s.useEffect)(()=>{M.current=e},[e]),(0,s.useEffect)(()=>{F.current=h},[h]),(0,s.useEffect)(()=>{O.current=x},[x]),(0,s.useEffect)(()=>{L.current=r},[r]),(0,s.useEffect)(()=>{P.current=c},[c]);let K=(0,s.useCallback)(()=>{B.current&&clearInterval(B.current),B.current=0,T.current&&clearInterval(T.current),T.current=0},[]),X=(0,s.useCallback)(e=>{if(I.current)return;I.current=!0,K();let r=H.current,a=e>r,s=F.current;R(a?"Round ".concat(s,": you ").concat(e," vs ").concat(r," â WIN"):"Round ".concat(s,": you ").concat(e," vs ").concat(r," â loss"));let c=f();for(c.push(e);c.length>8;)c.shift();try{localStorage.setItem(d,JSON.stringify(c))}catch(e){}let i=L.current,u=P.current,h=a?i+1:i,m=a?u:u+1;n(h),o(m),L.current=h,P.current=m;let g=O.current;if(a&&g<2&&(0,l.X5)({clutch:!0}),a&&e>=_&&(0,l.X5)({highScore:e}),h>=2||m>=2){h>=2&&(0,l.HR)({sweep:0===m}),t("matchEnd");return}t("between")},[K]),W=(0,s.useCallback)(()=>{K(),I.current=!1,R(null),z(0),A.current=0,O.current=m,w(m);let e=function(){let e=f();return Math.max(k,Math.min(b,Math.round((e.length?e.reduce((e,t)=>e+t,0)/e.length:8)+(Math.floor(5*Math.random())-2))))}();H.current=e,C(e),N(y[Math.floor(Math.random()*y.length)]),t("active"),M.current="active",B.current=window.setInterval(()=>{I.current||w(e=>{let t=Math.max(0,Math.round((e-.1)*10)/10);return O.current=t,t<=0&&"active"===M.current&&X(A.current),t})},100),T.current=window.setInterval(()=>{I.current||N(y[Math.floor(Math.random()*y.length)])},g)},[X,K]),D=(0,s.useCallback)(()=>{K(),n(0),o(0),L.current=0,P.current=0,p(1),F.current=1,t("active"),W()},[W,K]);(0,s.useEffect)(()=>{if("active"!==e)return;let t=e=>{!I.current&&(e.repeat||(("Tab"===e.code||"Space"===e.code)&&e.preventDefault(),e.code===v&&(A.current+=1,z(A.current),N(y[Math.floor(Math.random()*y.length)]))))};return window.addEventListener("keydown",t,!0),()=>window.removeEventListener("keydown",t,!0)},[e,v]);let G=(0,s.useCallback)(()=>{p(e=>{let t=e+1;return F.current=t,t}),W()},[W]),J=r>=2;return(0,a.jsxs)("div",{className:"gz-game gz-bracket",children:[(0,a.jsx)("h1",{className:"gz-game__title",children:"Lightning brackets"}),(0,a.jsxs)("p",{className:"gz-game__lead",children:["Best-of-3. Each round: ",m," seconds, tap the highlighted key. Beat the challenger's target taps."]}),(0,a.jsx)(i.A,{steps:u.kk}),(0,a.jsxs)("div",{className:"gz-bracket__board",children:[(0,a.jsxs)("div",{className:"gz-bracket__team",children:[(0,a.jsx)("span",{className:"gz-bracket__name",children:"You"}),(0,a.jsx)("div",{className:"gz-bracket__dots",children:[0,1].map(e=>(0,a.jsx)("span",{className:"gz-bracket__dot ".concat(e<r?"gz-bracket__dot--on":"")},e))})]}),(0,a.jsx)("span",{className:"gz-bracket__vs",children:"bo3"}),(0,a.jsxs)("div",{className:"gz-bracket__team",children:[(0,a.jsx)("span",{className:"gz-bracket__name",children:"Challenger"}),(0,a.jsx)("div",{className:"gz-bracket__dots",children:[0,1].map(e=>(0,a.jsx)("span",{className:"gz-bracket__dot ".concat(e<c?"gz-bracket__dot--on":"")},e))})]})]}),"idle"===e&&(0,a.jsx)("button",{type:"button",className:"ghost-race__btn ghost-race__btn--primary",onClick:D,children:"Start bracket"}),"matchEnd"===e&&(0,a.jsxs)("div",{className:"gz-game__banner",children:[(0,a.jsx)("strong",{children:J?"Bracket won â challenger uses your rolling average next time.":"Challenger takes the series."}),(0,a.jsx)("button",{type:"button",className:"ghost-race__btn ghost-race__btn--primary",onClick:D,children:"Run it back"})]}),"between"===e&&(0,a.jsxs)("div",{className:"gz-game__banner",children:[(0,a.jsx)("p",{children:E}),(0,a.jsx)("button",{type:"button",className:"ghost-race__btn ghost-race__btn--primary",onClick:G,children:"Next round"})]}
1),"active"===e&&(0,a.jsxs)("div",{className:"gz-bracket__round",children:[(0,a.jsxs)("div",{className:"gz-bracket__timer",children:[(0,a.jsxs)("span",{children:["Round ",h]}),(0,a.jsx)("meter",{value:x,min:0,max:m,low:3,className:"gz-bracket__meter"}),(0,a.jsxs)("span",{children:[x.toFixed(1),"s"]})]}),(0,a.jsxs)("p",{className:"gz-bracket__target-label",children:["Hit: ",(0,a.jsx)("kbd",{className:"gz-kbd",children:function(e){let t=/^Key([A-Z])$/.exec(e);if(t)return t[1];let r=/^Digit(\d)$/.exec(e);return r?r[1]:e}(v)})]}),(0,a.jsxs)("p",{className:"gz-bracket__stats",children:["Taps: ",(0,a.jsx)("strong",{children:j})," \xb7 Beat: ",(0,a.jsx)("strong",{children:S})]})]})]})}function x(){return(0,a.jsxs)(o.A,{subtitle:"Lightning brackets",children:[(0,a.jsxs)(c(),{children:[(0,a.jsx)("title",{children:"Lightning Brackets â Fast Keyboard Tournament Game | KeyboardKeyTest.com"}),(0,a.jsx)("meta",{name:"description",content:"Best-of-3 keyboard micro rounds. Beat your challenger score in this fast-paced free online keyboard game. No install required."})]}),(0,a.jsx)(p,{})]})}},90842:(e,t,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/gamezone/lightning-brackets",function(){return r(47010)}])}},e=>{e.O(0,[92,420,636,593,792],()=>e(e.s=90842)),_N_E=e.O()}]);
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.