1import{j as e}from"./client-BDfdeOeq.js";import{C as T,S as V}from"./SiteHeader-Dmn8OENO.js";import{r as l,R as J}from"./react-Dz3Vtyqi.js";import{g as W,r as ee}from"./wordleStatus-BOVqYAS7.js";import{a as P,l as se}from"./trail-De0UO8zJ.js";import{m as I,l as ae}from"./mysteryPlayer-C2VIb23l.js";import{m as B,M as re,S as C,k as ne,a as $,f as te}from"./StoreBadge-DL3l1YWG.js";(function(){try{var r=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},a=new r.Error().stack;a&&(r._sentryDebugIds=r._sentryDebugIds||{},r._sentryDebugIds[a]="8e84b319-560c-49b7-980b-cde889dc4a8e",r._sentryDebugIdIdentifier="sentry-dbid-8e84b319-560c-49b7-980b-cde889dc4a8e")}catch{}})();const ie=[["Football quiz","/quiz/"],["Clubs by league","/quiz/clubs/"],["Today's Footle answer","/football-wordle/answer/"],["Daily 7 answers","/daily-football-quiz/answers/"],["Every list","/lists/"]],oe=[["Football facts","/fun-facts/"],["Football quotes","/football-quotes/"],["Club nicknames","/club-nicknames/"],["Trivia memory study","/study/football-trivia-memory/"]],A=[{s:"bundesliga-top-scorers",h:"Bundesliga Top Scorers by Season (1963-64 to 2025-26)",u:"2026-07-20",n:63},{s:"champions-league-top-scorers",h:"Champions League Top Scorer Every Season (1955-56 to 2025-26)",u:"2026-07-20",n:71},{s:"most-coupe-de-france-titles",h:"Clubs With the Most Coupe de France Titles",u:"2026-07-20",n:35},{s:"copa-del-rey-winners",h:"Copa del Rey Winners (1902â2026)",u:"2026-07-20",n:125},{s:"copa-libertadores-winners",h:"Copa Libertadores Winners: Every Champion by Year (1960â2025)",u:"2026-07-20",n:66},{s:"coppa-italia-winners",h:"Coppa Italia Winners: Every Final From 1922 to 2025-26",u:"2026-07-20",n:78},{s:"coupe-de-france-winners",h:"Coupe de France Winners: Every Final from 1918 to 2026",u:"2026-07-20",n:109},{s:"dfb-pokal-winners",h:"DFB-Pokal Winners: Every German Cup Champion by Season (1935â2026)",u:"2026-07-20",n:83},{s:"eredivisie-top-scorers",h:"Eredivisie Top Scorer Every Season (1956-57 to 2025-26)",u:"2026-07-20",n:70},{s:"asian-cup-winners",h:"Every AFC Asian Cup Winner (1956â2023)",u:"2026-07-20",n:18},{s:"afcon-winners",h:"Every AFCON Winner: Africa Cup of Nations Champions (1957â2025)",u:"2026-07-20",n:35},{s:"ballon-dor-winners",h:"Every Ballon d'Or Winner (1956â2025)",u:"2026-07-20",n:70},{s:"bundesliga-champions",h:"Every Bundesliga Champion by Season (1963-64 to 2025-26)",u:"2026-07-20",n:63},{s:"champions-league-winners",h:"Every Champions League Winner (1956â2026)",u:"2026-07-20",n:71},{s:"concacaf-gold-cup-winners",h:"Every CONCACAF Gold Cup Winner (1963â2025)",u:"2026-07-20",n:28},{s:"copa-america-winners",h:"Every Copa América Winner (1916â2024)",u:"2026-07-20",n:48},{s:"efl-cup-winners",h:"Every EFL Cup (League Cup) Winner by Season",u:"2026-07-20",n:66},{s:"eredivisie-champions",h:"Every Eredivisie Champion (1956-57 to 2025-26)",u:"2026-07-20",n:70},{s:"fa-cup-winners",h:"Every FA Cup Winner by Season (1872â2026)",u:"2026-07-20",n:145},{s:"club-world-cup-winners",h:"Every FIFA Club World Cup Winner (2000â2025)",u:"2026-07-20",n:21},{s:"la-liga-champions",h:"Every La Liga Champion by Season (1928-29 to 2025-26)",u:"2026-07-20",n:95},{s:"ligue-1-champions",h:"Every Ligue 1 Champion (1932-2026)",u:"2026-07-20",n:89},{s:"premier-league-champions",h:"Every Premier League Champion (1992-2026)",u:"2026-07-20",n:34},{s:"premier-league-top-scorers",h:"Every Premier League Golden Boot Winner (1992-93 to 2025-26)",u:"2026-07-20",n:34},{s:"primeira-liga-champions",h:"Every Primeira Liga Champion (1934-35 to 2025-26)",u:"2026-07-20",n:92},{s:"scottish-premiership-champions",h:"Every Scottish Premiership Champion (1998-2026)",u:"2026-07-20",n:28},{s:"serie-a-champions",h:"Every Serie A Champion by Season (1929â2026)",u:"2026-07-20",n:95},{s:"super-lig-champions",h:"Every Süper Lig Champion (1959-2026)",u:"2026-07-20",n:68},{s:"europa-league-winners",h:"Every UEFA Cup & Europa League Winner (1971-72 to 2025-26)",u:"2026-07-20",n:55},{s:"euro-winners",h:"Every UEFA European Championship Winner (1960-2024)",u:"2026-07-20",n:17},{s:"world-cup-winners",h:"Every World Cup Winner (1930-2026)",u:"2026-07-20",n:23},{s:"la-liga-top-scorers",h:"La Liga Top Scorers: Every Pichichi Trophy Winner (1928â29 to 2025â26)",u:"2026-07-20",n:95},{s:"ligue-1-top-scorers",h:"Ligue 1 Top Scorer Every Season (1932â33 to 2025â26)",u:"2026-07-20",n:88},{s:"most-ballon-dors",h:"Players With the Most Ballon d'Or Awards",u:"2026-07-20",n:10},{s:"primeira-liga-top-scorers",h:"Primeira Liga Top Scorers â Every Season (1934â35 to 2025â26)",u:"2026-07-20",n:92},{s:"serie-a-top-scorers",h:"Serie A Top Scorers: Every Capocannoniere Since 1929-30",u:"2026-07-20",n:95},{s:"super-lig-top-scorers",h:"Süper Lig Top Scorers (Gol Kralı) â Every Season, 1959 to 2025-26",u:"2026-07-20",n:68}],S="ZIDANE",R="Zinedine Zidane",Q=121,F=function(a,i){const o=i.length,h=new Array(o).fill("grey"),f=[];for(let c=0;c<o;c++)a[c]===i[c]?h[c]="green":f.push(i[c]);for(let c=0;c<o;c++){if(h[c]==="green")continue;const y=f.indexOf(a[c]);y!==-1&&(h[c]="yellow",f.splice(y,1))}return h},z=6,u=S.length,le=["QWERTYUIOP","ASDFGHJKL","âZXCVBNMâ«"],de=` 2.fb{background:var(--card2);background-image:var(--grain);border-top:1px solid var(--bd)} 3.fb-in{max-width:1000px;margin:0 auto;padding:var(--sp5) 28px} 4/* The mockup's band is a 470px board column and a 422px rail (legend, status, 5 clock) â the first port stacked everything into one long column and left 6 half the width empty. */ 7.fb-cols{display:grid;grid-template-columns:1fr;gap:var(--sp4)} 8@media (min-width:1000px){.fb-cols{grid-template-columns:470px 1fr;align-items:start}} 9.fb-legend{display:flex;flex-direction:column;gap:8px;margin-top:var(--sp3)} 10@media (min-width:1000px){.fb-legend{margin-top:0}} 11.fb-li{display:flex;align-items:center;gap:10px;font:var(--ty-sec);color:var(--on-desk)} 12.fb-sw{flex:0 0 auto;width:18px;height:18px;border-radius:5px;border:1px solid var(--bd2)} 13.fb-sw[data-k="green"]{background:var(--grn);border-color:var(--grn)} 14.fb-sw[data-k="yellow"]{background:var(--amber);border-color:var(--amber)} 15.fb-sw[data-k="grey"]{background:var(--bd2);border-color:var(--bd2)} 16.fb-six{margin-top:var(--sp1);font:var(--ty-sec);font-weight:700;color:var(--tx)} 17.fb-h2{font:var(--ty-section);letter-spacing:var(--ty-section-ls); 18 text-transform:uppercase;color:var(--tx);text-wrap:balance} 19.fb-sub{margin-top:var(--sp2);font:var(--ty-sub);color:var(--on-desk);max-width:58ch} 20 21.fb-eg{margin-top:var(--sp3)} 22.fb-eglab{font:var(--ty-sec);color:var(--on-desk-mut)} 23.fb-eglab b{color:var(--on-desk);font-weight:700} 24 25.fb-note{margin-top:var(--sp3);font:var(--ty-meta);color:var(--on-desk-mut);max-width:52ch} 26 27.fb-grid{margin-top:var(--sp1);display:grid;gap:6px;justify-content:start} 28/* Filled, not outlined (2026-09-04 A/B, Alex: the hollow grid "looks 29 outdated"). One surface step up, a hairline edge, 8px corners; the marks 30 are the GAME's green and amber, not the retired Scouting Report's desk 31 greens, so the practice board and the real board are the same object. */ 32.fb-tile{width:52px;height:52px;display:grid;place-items:center; 33 font:800 20px/1 'Archivo Narrow',sans-serif;text-transform:uppercase; 34 background:var(--card2);border:1px solid rgba(255,255,255,.07);border-radius:8px;color:var(--tx)} 35/* Small screens: the TRACK owns the size (9.5vw), the tile fills it â a 36 fixed 44px here overlapped neighbouring tracks by ~8px once the answer 37 length hit 7. aspect-ratio keeps them square at any track width. */ 38@media (max-width:520px){.fb-tile{width:auto;height:auto;aspect-ratio:1;font-size:17px}} 39.fb-tile[data-m="green"]{background:var(--grn);border-color:var(--grn);color:var(--grn-ink)} 40.fb-tile[data-m="yellow"]{background:var(--amber);border-color:var(--amber);color:#2A1F00} 41.fb-tile[data-m="grey"]{background:var(--bd2);border-color:var(--bd2);color:var(--tx3)} 42.fb-tile[data-cur="1"]{border-color:rgba(88,204,2,.6);box-shadow:inset 0 0 0 1px rgba(88,204,2,.35)} 43.fb-grid[data-shake="1"]{animation:fb-shake .28s var(--ease)}
44@keyframes fb-shake{20%{transform:translateX(-6px)}45%{transform:translateX(5px)} 45 70%{transform:translateX(-3px)}100%{transform:none}} 46@media (prefers-reduced-motion:reduce){.fb-grid[data-shake="1"]{animation:none}} 47 48.fb-say{margin-top:var(--sp2);min-height:22px;font:var(--ty-sec);color:var(--on-desk);max-width:52ch} 49.fb-say b{color:var(--tx)} 50 51.fb-kb{margin-top:var(--sp2);display:flex;flex-direction:column;gap:6px;max-width:520px} 52.fb-kr{display:flex;gap:5px} 53.fb-k{flex:1;min-height:48px;padding:10px 0;background:var(--bd2);color:var(--tx); 54 border:0;border-radius:10px;font:700 14px/1 Archivo,system-ui,sans-serif; 55 cursor:pointer;transition:background-color .1s var(--ease)} 56.fb-k[data-wide="1"]{flex:1.6;font-size:12px;letter-spacing:.06em;background:var(--bd)} 57.fb-k[data-m="green"]{background:var(--grn);color:var(--grn-ink)} 58.fb-k[data-m="yellow"]{background:var(--amber);color:#2A1F00} 59.fb-k[data-m="grey"]{background:var(--bg);color:var(--tx4)} 60@media (hover:hover){.fb-k:not([data-m]):hover{background:var(--bd3)}} 61 62.fb-real{display:inline-flex;align-items:center;min-height:48px;margin-top:var(--sp3); 63 padding:12px var(--sp3);border:1px solid var(--bd3);border-radius:var(--rc);color:var(--tx); 64 font:var(--ty-sec);font-weight:700; 65 transition:background-color .15s var(--ease)} 66.fb-real.fb-primary{background:var(--grn);border-color:var(--grn);color:var(--grn-ink)} 67@media (hover:hover){.fb-real.fb-primary:hover{background:#4CB102}} 68@media (hover:hover){.fb-real:hover{background:var(--card)}} 69 70.fb-clock{margin-top:var(--sp4);padding-top:var(--sp3);border-top:1px solid var(--bd)} 71.fb-time{font:700 clamp(44px,9vw,72px)/1 'Archivo Narrow',sans-serif;color:var(--tx); 72 font-variant-numeric:tabular-nums;letter-spacing:.01em} 73.fb-cnote{margin-top:6px;font:var(--ty-sec);color:var(--on-desk-mut);max-width:52ch} 74`;function G(r){const a=new Date(r);return a.setHours(24,0,0,0),a.getTime()-r.getTime()}function ce(){const[r,a]=l.useState([]),[i,o]=l.useState(""),[h,f]=l.useState(""),[c,y]=l.useState(!1),j=r.length>0&&r[r.length-1]===S,E=!j&&r.length>=z,p=j||E,b={};for(const d of r){const n=F(d,S);for(let t=0;t<u;t++){const v=d[t],k=n[t],L={green:3,yellow:2,grey:1};(!b[v]||L[k]>L[b[v]])&&(b[v]=k)}}const g=l.useCallback(()=>{if(p)return;if(i.length!==u){y(!0),f(i.length===0?`Needs ${u} letters.`:`That's ${i.length} of ${u} letters.`);return}const d=[...r,i];a(d),o(""),i===S?f(`Got it. ${R}.`):d.length>=z?f(`It was ${R}. Tomorrow's is a fresh one.`):f("")},[i,r,p]),w=l.useCallback(d=>{if(!p){if(d==="â")return g();if(d==="â«")return o(n=>n.slice(0,-1));o(n=>n.length<u?n+d:n)}},[p,g]);l.useEffect(()=>{const d=n=>{if(!(n.metaKey||n.ctrlKey||n.altKey)){if(n.key==="Enter"){g();return}if(n.key==="Backspace"){o(t=>t.slice(0,-1));return}/^[a-zA-Z]$/.test(n.key)&&w(n.key.toUpperCase())}};return window.addEventListener("keydown",d),()=>window.removeEventListener("keydown",d)},[g,w]);const M=l.useRef(new Date().getDate()),[s,m]=l.useState(()=>G(new Date)),[q,U]=l.useState(!1);l.useEffect(()=>{const d=setInterval(()=>{const n=new Date;if(n.getDate()!==M.current){U(!0);return}m(G(n))},1e3);return()=>clearInterval(d)},[]);const K=String(Math.floor(s/36e5)).padStart(2,"0"),X=String(Math.floor(s%36e5/6e4)).padStart(2,"0"),Y=String(Math.floor(s%6e4/1e3)).padStart(2,"0"),Z=F("LAPORTE","HAALAND");return e.jsxs("section",{className:"fb","aria-labelledby":"fbT",children:[e.jsx("style",{children:de}),e.jsxs("div",{className:"fb-in",children:[e.jsx("h2",{className:"fb-h2",id:"fbT",children:"Footle. Football Wordle."}),e.jsx("p",{className:"fb-sub",children:"Guess the name a footballer goes by, in six. A new name at midnight, the same one for everyone."}),e.jsxs("div",{className:"fb-eg","aria-hidden":"true",children:[e.jsxs("div",{className:"fb-eglab",children:["If you guessed ",e.jsx("b",{children:"Laporte"})," and the answer was ",e.jsx("b",{children:"Haaland"}),":"]}),e.jsx("div",{className:"fb-grid",style:{gridTemplateColumns:"repeat(7, min(44px, 9.5vw))"},children:"LAPORTE".split("").map((d,n)=>e.jsx("span",{className:"fb-tile","data-m":Z[n],style:{width:"auto",height:"auto",aspectRatio:"1",fontSize:15},children:d},n))})]}),e.jsxs("div",{className:"fb-cols",children:[e.jsxs("div",{children:[e.jsxs("p",{className:"fb-note",children:["Try No. ",Q," from the archive â ",/^(8|11|18)$/.test(String(u))?"an":"a"," ",u,"-letter name, and nothing about tonightâs is given away."]}),e.jsx("div",{className:"fb-grid",style:{gridTemplateColumns:"repeat("+u+", min(52px, 9.5vw))"},role:"group","aria-label":`Practice Footle board, six guesses of ${u} letters`,"data-shake":c?1:void 0,onAnimationEnd:()=>y(!1),children:Array.from({length:z}).map((d,n)=>{const t=r[n],v=n===r.length&&!p,k=t?F(t,S):null;return e.jsx(J.Fragment,{children:Array.from({length:u}).map((L,N)=>e.jsx("span",{className:"fb-tile","data-m":k?k[N]:void 0,"data-cur":v&&N===i.length?1:void 0,children:t?t[N]:v&&i[N]||""},N))},n)})}),e.jsx("p",{className:"fb-say",role:"status",children:h}),e.jsx("div",{className:"fb-kb",role:"group","aria-label":"On-screen keyboard",children:le.map((d,n)=>e.jsx("div",{className:"fb-kr",children:d.split("").map(t=>e.jsx("button",{type:"button",className:"fb-k","data-wide":t==="â"||t==="â«"?1:void 0,"data-m":b[t],"aria-label":t==="â"?"Enter":t==="â«"?"Delete":t,onClick:()=>w(t),children:t==="â"?"ENTER":t==="â«"?"DEL":t},t))},n))}),e.jsxs("div",{style:{display:"flex",gap:"var(--sp1)",flexWrap:"wrap"},children:[e.jsx("a",{className:"fb-real fb-primary",href:"/football-wordle/",children:"Play todayâs Footle"}),e.jsx("a",{className:"fb-real",href:"/daily-football-quiz/",children:"Play the Daily 7"})]})]}),e.jsxs("div",{className:"fb-legend","aria-hidden":"true",children:[e.jsxs("div",{className:"fb-li",children:[e.jsx("span",{className:"fb-sw","data-k":"green"}),"Right letter, right place"]}),e.jsxs("div",{className:"fb-li",children:[e.jsx("span",{className:"fb-sw","data-k":"yellow"}),"In the name, wrong place"]}),e.jsxs("div",{className:"fb-li",children:[e.jsx("span",{className:"fb-sw","data-k":"grey"}),"Not in it"]}),e.jsx("div",{className:"fb-six",children:"Six guesses."}),e.jsxs("div",{className:"fb-clock",children:[e.jsx("div",{className:"fb-time","aria-hidden":"true",children:q?"00:00:00":K+":"+X+":"+Y}),e.jsx("p",{className:"fb-cnote",children:q?"0 seconds â the new board is up. Reload for todayâs name and seven new questions.":"until a new name and seven new questions, the same for everybody."})]})]})]})]})]})}const he="/play",x=r=>`${he}?game=${r}`,O=[{s:"premier-league",n:"Premier League"},{s:"la-liga",n:"La Liga"},{s:"serie-a",n:"Serie A"},{s:"bundesliga",n:"Bundesliga"},{s:"ligue-1",n:"Ligue 1"},{s:"super-lig",n:"Süper Lig"},{s:"primeira-liga",n:"Primeira Liga"},{s:"champions-league",n:"Champions League"},{s:"world-cup",n:"World Cup"},{s:"euros",n:"Euros"}],fe=["arsenal","liverpool","barcelona","chelsea","manchester-city","real-madrid","everton","tottenham","celtic","leeds-united","rangers","besiktas","newcastle","manchester-united","psg","bayern-munich"],_=[{k:"footle",n:"Footle",line:"Guess the surname in six",href:"/football-wordle/",daily:!0},{k:"daily",n:"Daily 7",line:"Seven questions, the same for everyone",href:"/daily-football-quiz/",daily:!0},{k:"trail",n:"Transfer Trail",line:"Follow the moves, name the player",href:"/transfer-trail/",daily:!0},{k:"mystery",n:"Mystery Player",line:"Guess who from career clues",href:"/mystery-player/",daily:!0},{k:"clubquiz",n:"Club Quiz",line:"Pick your club, ten on them",href:x("clubquiz")},{k:"leaguequiz",n:"League Quiz",line:"One competition, its history",href:x("leaguequiz")},{k:"classic",n:"Classic",line:"Ten questions, twenty seconds each",href:x("classic")},{k:"survival",n:"Survival",line:"One wrong answer and it ends",href:x("survival")},{k:"hotstreak",n:"Hot Streak",line:"Sixty seconds, as many as you can",href:x("hotstreak")},{k:"stadiums",n:"Stadiums",line:"Name every ground in the league",href:x("stadiums")},{k:"lineup",n:"Guess the XI",line:"Name the line-up from a famous match",href:"/xi/"},{k:"legends",n:"Legends",line:"Pre-2000 greats only",href:x("legends")},{k:"chaos",n:"Chaos",line:"Quotes, nicknames and the rest",href:x("chaos")},{k:"online",n:"Play a friend",line:"Live rooms, up to eight of you",href:x("online")}],D=({k:r})=>{const a={width:20,height:20,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0};switch(r){case"footle":return e.jsxs("svg",{...a,children:[e.jsx("rect",{x:"3",y:"3",width:"7",height:"7"}),e.jsx("rect",{x:"14",y:"3",width:"7",height:"7"}),e.jsx("rect",{x:"3",y:"14",width:"7",height:"7"}),e.jsx("rect",{x:"14",y:"14",width:"7",height:"7"})]});case"daily":return e.jsxs("svg",{...a,children:[e.jsx("rect",{x:"3",y:"4",width:"18",height:"17",rx:"2"}),e.jsx("path",{d:"M8 2v4M16 2v4M3 10h18"})]});
74case"trail":return e.jsxs("svg",{...a,children:[e.jsx("circle",{cx:"5",cy:"6",r:"2"}),e.jsx("circle",{cx:"19",cy:"18",r:"2"}),e.jsx("path",{d:"M7 6h6a4 4 0 0 1 0 8h-2a4 4 0 0 0 0 8h6"})]});case"mystery":return e.jsxs("svg",{...a,children:[e.jsx("circle",{cx:"12",cy:"8",r:"4"}),e.jsx("path",{d:"M4 21a8 8 0 0 1 16 0"}),e.jsx("path",{d:"M17 3l1.5 1.5"})]});case"clubquiz":return e.jsx("svg",{...a,children:e.jsx("path",{d:"M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z"})});case"leaguequiz":return e.jsxs("svg",{...a,children:[e.jsx("path",{d:"M8 21h8M12 17v4M7 4h10v4a5 5 0 0 1-10 0z"}),e.jsx("path",{d:"M7 6H4v2a3 3 0 0 0 3 3M17 6h3v2a3 3 0 0 1-3 3"})]});case"classic":return e.jsxs("svg",{...a,children:[e.jsx("circle",{cx:"12",cy:"13",r:"8"}),e.jsx("path",{d:"M12 9v4l3 2M9 2h6"})]});case"survival":return e.jsx("svg",{...a,children:e.jsx("path",{d:"M12 21s-7-4.5-7-11a4 4 0 0 1 7-2.5A4 4 0 0 1 19 10c0 6.5-7 11-7 11z"})});case"hotstreak":return e.jsx("svg",{...a,children:e.jsx("path",{d:"M12 3c1 4 5 5 5 10a5 5 0 0 1-10 0c0-2 1-3 2-4 0 2 1 3 2 3 0-4 1-6 1-9z"})});case"stadiums":return e.jsxs("svg",{...a,children:[e.jsx("ellipse",{cx:"12",cy:"12",rx:"9",ry:"5"}),e.jsx("path",{d:"M3 12v3c0 2.8 4 5 9 5s9-2.2 9-5v-3"})]});case"lineup":return e.jsxs("svg",{...a,children:[e.jsx("rect",{x:"3",y:"3",width:"18",height:"18"}),e.jsx("path",{d:"M3 12h18M12 3v18"}),e.jsx("circle",{cx:"12",cy:"12",r:"2.5"})]});case"legends":return e.jsxs("svg",{...a,children:[e.jsx("path",{d:"M6 3h12v6a6 6 0 0 1-12 0z"}),e.jsx("path",{d:"M9 21h6M12 15v6"})]});case"chaos":return e.jsx("svg",{...a,children:e.jsx("path",{d:"M12 3l2 5 5 1-4 3.5 1.5 5.5L12 15l-4.5 3 1.5-5.5L5 9l5-1z"})});case"online":return e.jsxs("svg",{...a,children:[e.jsx("circle",{cx:"8",cy:"8",r:"3"}),e.jsx("circle",{cx:"17",cy:"9",r:"2.5"}),e.jsx("path",{d:"M2 20a6 6 0 0 1 12 0M14 20a5 5 0 0 1 8 0"})]});case"search":return e.jsxs("svg",{...a,children:[e.jsx("circle",{cx:"11",cy:"11",r:"7"}),e.jsx("path",{d:"M20 20l-3.5-3.5"})]});case"list":return e.jsx("svg",{...a,children:e.jsx("path",{d:"M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01"})});default:return null}},ue=r=>r.toLocaleDateString("en-GB",{weekday:"long",day:"numeric",month:"long",year:"numeric"}),pe=r=>{const a=/^(\d{4})-(\d{2})-(\d{2})$/.exec(r||"");return a?new Date(+a[1],+a[2]-1,+a[3]).toLocaleDateString("en-GB",{day:"numeric",month:"long"}):""};function H(){const r={footle:"new",daily:"new",trail:"new",mystery:"new",dailyScore:null};try{const a=ee();r.footle=a.kind==="won"||a.kind==="lost"?"done":a.kind==="in-progress"?"open":"new",r.footleWon=a.kind==="won"}catch{}try{const a=localStorage.getItem(ne(new Date));if(a){const i=JSON.parse(a);i&&typeof i.score=="number"&&(r.daily="done",r.dailyScore=i.score)}}catch{}try{const a=se?.();a&&["won","lost"].includes(a.status)?r.trail="done":a&&a.status&&(r.trail="open")}catch{}try{ae?.(new Date)?.won&&(r.mystery="done")}catch{}return r}function me(){const[r,a]=l.useState(()=>$());return l.useEffect(()=>{const i=setInterval(()=>a($()),1e3);return()=>clearInterval(i)},[]),te(r)}function ke(){const r=l.useMemo(()=>new Date,[]),[a,i]=l.useState(()=>H());l.useEffect(()=>{i(H())},[r]);const o=(s,m)=>{try{B(s,{href:m})}catch{}},[h,f]=l.useState(!1),c=()=>{f(s=>!s),o(h?"fd-practice-close":"fd-practice-open")},y=me(),[j,E]=l.useState(!1);l.useEffect(()=>{B("fd-view")},[]);const p=[{k:"footle",n:"Footle",no:W(r),line:"Guess the surname in six",st:a.footle,done:a.footle==="done",doneText:a.footleWon?"Solved":"Played",href:"/football-wordle/"},{k:"daily",n:"Daily 7",no:null,line:"Seven questions, the same for everyone",st:a.daily,done:a.daily==="done",doneText:a.dailyScore!=null?`${a.dailyScore} of 7`:"Played",href:"/daily-football-quiz/"},{k:"trail",n:"Transfer Trail",no:P(r),line:"Follow the moves, name the player",st:a.trail,done:a.trail==="done",doneText:"Played",href:"/transfer-trail/"},{k:"mystery",n:"Mystery Player",no:I(r),line:"Guess who from career clues",st:a.mystery,done:a.mystery==="done",doneText:"Solved",href:"/mystery-player/"}],b=p.filter(s=>s.done).length,g=l.useMemo(()=>Object.fromEntries(T.map(s=>[s.s,s])),[]),w=fe.map(s=>
74g[s]).filter(Boolean),M=A.slice(0,8);return e.jsxs("div",{className:"fd",children:[e.jsx("a",{className:"fd-skip",href:"#today",children:"Skip to today's games"}),e.jsx(V,{}),e.jsxs("main",{className:"fd-w",children:[e.jsxs("div",{className:"fd-date",id:"today",children:[e.jsx("span",{className:"fd-date-d",children:ue(r)}),e.jsxs("span",{className:"fd-date-eds",children:["Footle No. ",W(r)," · Transfer Trail No. ",P(r),` · Mystery Player No. ${I(r)}`]})]}),e.jsx("h1",{className:"fd-sr",children:"Ball IQ â football quizzes, Footle and today's puzzles"}),e.jsxs("section",{className:"fd-sec","aria-labelledby":"fd-today-h",children:[e.jsxs("div",{className:"fd-sec-head",children:[e.jsx("h2",{id:"fd-today-h",children:"Today"}),e.jsxs("span",{className:"fd-progress",children:[e.jsxs("b",{children:[b," of ",p.length]})," played · new ones in ",e.jsx("span",{className:"fd-tnum",children:y})]})]}),e.jsx("div",{className:"fd-today",children:p.map(s=>e.jsxs("a",{className:`fd-card fd-daily${s.done?" is-done":""}`,href:s.href,onClick:()=>o(`fd-today-${s.k}`,s.href),style:{"--mode":re[s.k==="daily"?"daily7":s.k]},children:[s.k==="footle"?e.jsx("span",{className:"fd-card-ic fd-fmark","aria-hidden":"true",children:"F"}):e.jsx("span",{className:"fd-card-ic",children:e.jsx(D,{k:s.k})}),e.jsxs("span",{className:"fd-card-body",children:[e.jsxs("span",{className:"fd-card-n",children:[s.n,s.no?e.jsxs("span",{className:"fd-card-no",children:[" No. ",s.no]}):null]}),e.jsx("span",{className:"fd-card-line",children:s.line})]}),e.jsx("span",{className:`fd-state${s.done?" is-done":s.st==="open"?" is-open":""}`,children:s.done?s.doneText:s.st==="open"?"In progress":"Not played"}),e.jsx("span",{className:"fd-play",children:s.done?"Review":s.st==="open"?"Continue":"Play"})]},s.k))}),e.jsx("button",{type:"button",className:"fd-lead-alt","aria-expanded":h,"aria-controls":"fd-practice",onClick:c,children:h?"Hide the practice board":`Or practise on No. ${Q} from the archive â nothing about today's is given away`})]}),e.jsxs("aside",{className:"fd-app","aria-label":"Ball IQ app",children:[e.jsxs("span",{className:"fd-app-tx",children:[e.jsx("b",{children:"Also on your phone."})," Streaks, reminders and live 1v1 against a mate â the same games, in the app."]}),e.jsxs("span",{className:"fd-app-links",children:[e.jsx(C,{store:"ios",onClick:()=>o("fd-app-ios")}),e.jsx(C,{store:"android",onClick:()=>o("fd-app-android")})]})]}),h&&e.jsx("section",{className:"fd-sec fd-practice",id:"fd-practice","aria-label":"Practice Footle",children:e.jsx(ce,{})}),e.jsxs("section",{className:"fd-sec",id:"clubs","aria-labelledby":"fd-clubs-h",children:[e.jsxs("div",{className:"fd-sec-head",children:[e.jsx("h2",{id:"fd-clubs-h",children:"Your club"}),e.jsxs("span",{className:"fd-sec-sub",children:[T.length," clubs on file, each with its own quiz"]})]}),e.jsx("div",{className:"fd-leagues","aria-label":"Leagues",children:O.map(s=>e.jsx("a",{className:"fd-chip",href:`/quiz/${s.s}/`,onClick:()=>o("fd-league",s.s),children:s.n},s.s))}),e.jsx("div",{className:"fd-clubs",children:(j?T:w).map(s=>e.jsx("a",{className:"fd-club",href:`/quiz/${s.s}/`,onClick:()=>o("fd-club",s.s),style:s.h?{"--club":s.h}:void 0,children:e.jsxs("span",{className:"fd-club-body",children:[e.jsx("span",{className:"fd-club-n",children:s.n}),e.jsx("span",{className:"fd-club-c",children:s.c})]})},s.s))}),e.jsxs("div",{className:"fd-more",children:[j?e.jsx("a",{className:"fd-btn",href:"/quiz/clubs/",children:"Club pages, by league"}):e.jsx("button",{type:"button",className:"fd-btn",onClick:()=>{E(!0),o("fd-all-clubs")},children:"Every club on file"}),e.jsx("button",{type:"button",className:"fd-btn fd-btn-q",onClick:()=>document.querySelector(".fd-find-in")?.focus(),children:"Search for one"})]})]}),e.jsxs("section",{className:"fd-sec",id:"games","aria-labelledby":"fd-games-h",children:[e.jsxs("div",{className:"fd-sec-head",children:[e.jsx("h2",{id:"fd-games-h",children:"Every game"}),e.jsx("span",{className:"fd-sec-sub",children:"Free, in the browser, no account needed"})]}),e.jsx("div",{className:"fd-games",children:_.map(s=>e.jsxs("a",{className:"fd-card fd-game",href:s.href,onClick:()=>o(`fd-game-${s.k}`,s.href),children:[e.jsx("span",{className:"fd-card-ic",children:e.jsx(D,{k:s.k})}),e.jsxs("span",{className:"fd-card-body",children:[e.jsxs("span",{className:"fd-card-n",children:[s.n,s.daily?e.jsx("span",{className:"fd-tag",children:"Daily"}):null]}),e.jsx("span",{className:"fd-card-line",children:s.line})]}),e.jsx("span",{className:"fd-play","aria-hidden":"true",children:"â"})]},s.k))})]}),e.jsxs("section",{className:"fd-sec","aria-labelledby":"fd-lists-h",children:[e.jsxs("div",{className:"fd-sec-head",children:[e.jsx("h2",{id:"fd-lists-h",children:"Lists and records"}),e.jsxs("a",{className:"fd-sec-link",href:"/lists/",children:["All ",A.length," lists"]})]}),e.jsx("div",{className:"fd-lists",children:M.map(s=>e.jsxs("a",{className:"fd-list",href:`/lists/${s.s}/`,onClick:()=>o("fd-list",s.s),children:[e.jsx("span",{className:"fd-list-ic",children:e.jsx(D,{k:"list"})}),e.jsxs("span",{className:"fd-list-body",children:[e.jsx("span",{className:"fd-list-n",children:s.h}),e.jsxs("span",{className:"fd-list-meta",children:[s.n," entries",s.u?` · checked ${pe(s.u)}`:""," · with a quiz"]})]})]},s.s))})]}),e.jsxs("section",{className:"fd-sec fd-how","aria-labelledby":"fd-how-h",children:[e.jsx("h2",{id:"fd-how-h",children:"How it works"}),e.jsxs("dl",{className:"fd-faq",children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Is it free?"}),e.jsx("dd",{children:"Yes. Every game and every quiz plays in the browser with no account. An account keeps your streaks and rating across devices."})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"What resets each day?"}),e.jsx("dd",{children:"Footle, the Daily 7, Transfer Trail and Mystery Player. Everyone in the world gets the same ones, at local midnight."})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Where do the questions come from?"}),e.jsx("dd",{children:"Written and fact-checked by hand, not scraped. Most answers come with the reason they are the answer."})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Can I play with friends?"}),e.jsx("dd",{children:"Yes. Live rooms for up to eight online, or pass one phone around."})]})]})]})]}),e.jsxs("footer",{className:"fd-foot",children:[e.jsxs("div",{className:"fd-w fd-foot-in",children:[e.jsxs("div",{className:"fd-foot-col",children:[e.jsx("h3",{children:"Games"}),_.map(s=>e.jsx("a",{href:s.href,children:s.n},s.k))]}),e.jsxs("div",{className:"fd-foot-col",children:[e.jsx("h3",{children:"Qu
74izzes"}),O.map(s=>e.jsx("a",{href:`/quiz/${s.s}/`,children:s.n},s.s)),e.jsx("a",{href:"/quiz/clubs/",children:"Clubs by league"}),e.jsx("a",{href:"/football-quiz/",children:"Football quiz"})]}),e.jsxs("div",{className:"fd-foot-col",children:[e.jsx("h3",{children:"Discover"}),ie.filter(([,s])=>s!=="/lists/").map(([s,m])=>e.jsx("a",{href:m,children:s},m)),A.slice(0,4).map(s=>e.jsx("a",{href:`/lists/${s.s}/`,children:s.h.replace(/^Every /,"")},s.s)),e.jsx("a",{href:"/lists/",children:"All lists"})]}),e.jsxs("div",{className:"fd-foot-col",children:[e.jsx("h3",{children:"Ball IQ"}),e.jsx("a",{href:"/about/",children:"About"}),e.jsx("a",{href:"/contact/",children:"Contact"}),oe.map(([s,m])=>e.jsx("a",{href:m,children:s},m)),e.jsx("a",{href:"/privacy",children:"Privacy"}),e.jsx("a",{href:"/terms/",children:"Terms"}),e.jsxs("span",{className:"fd-foot-app",children:[e.jsx(C,{store:"ios",onClick:()=>o("fd-foot-ios"),style:{minHeight:40,padding:"0 14px",fontSize:13.5}}),e.jsx(C,{store:"android",onClick:()=>o("fd-foot-android"),style:{minHeight:40,padding:"0 14px",fontSize:13.5}})]})]})]}),e.jsx("div",{className:"fd-w fd-foot-line",children:"An independent football quiz, made by one person."})]})]})}export{O as LEAGUES,ke as default};
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.