fc26 / index.html
Usabolfazl's picture
Add country flag emojis for all nations
46803e2 verified
Raw
History Blame Contribute Delete
50.2 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>FIFA FC 26 Pack Opener</title>
<style>
*{margin:0;padding:0;box-sizing:border-box}
:root{--bg:#0a0e1a;--card-bg:#1a1e2e;--gold:#ffd700;--icon-gold:#e8b800;--epic-purple:#9b59b6;--rare-blue:#3498db;--gold2:#f1c40f;--common-green:#27ae60;--text:#fff;--accent:#ff6b35}
body{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden}
.screen{display:none;min-height:100vh;padding:20px}
.screen.active{display:block}
/* Main Menu */
#menu{background:linear-gradient(135deg,#0a0e1a 0%,#1a1040 50%,#0a0e1a 100%);text-align:center;padding-top:40px}
.logo{font-size:3.5em;font-weight:900;background:linear-gradient(45deg,var(--gold),#ff6b35,var(--gold));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:0 0 30px rgba(255,215,0,.3);margin-bottom:5px}
.subtitle{font-size:1.1em;color:#8892b0;margin-bottom:30px;letter-spacing:2px}
.coins-display{background:linear-gradient(135deg,#1a1e2e,#2a2e3e);border:2px solid var(--gold);border-radius:15px;padding:15px 30px;display:inline-flex;align-items:center;gap:12px;margin-bottom:30px;box-shadow:0 0 20px rgba(255,215,0,.2)}
.coins-display .coin-icon{width:30px;height:30px;background:var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;color:#000;font-size:14px}
.coins-display .coin-amount{font-size:1.5em;font-weight:700;color:var(--gold)}
.packs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;max-width:900px;margin:0 auto;padding:20px}
.pack-card{background:linear-gradient(145deg,var(--card-bg),#252a3a);border-radius:16px;padding:25px;cursor:pointer;transition:all .3s;position:relative;overflow:hidden;border:2px solid transparent}
.pack-card:hover{transform:translateY(-5px);box-shadow:0 15px 40px rgba(0,0,0,.4)}
.pack-card.pack-icon{border-color:#e8b800}.pack-card.pack-icon:hover{box-shadow:0 0 30px rgba(232,184,0,.3)}
.pack-card.pack-icon-pro{border-color:#ff6b35;background:linear-gradient(145deg,#2a1a0a,#3a2a1a)}.pack-card.pack-icon-pro:hover{box-shadow:0 0 30px rgba(255,107,53,.3)}
.pack-card.pack-gold{border-color:var(--gold2)}.pack-card.pack-gold:hover{box-shadow:0 0 30px rgba(241,196,15,.3)}
.pack-card.pack-rare{border-color:var(--rare-blue)}.pack-card.pack-rare:hover{box-shadow:0 0 30px rgba(52,152,219,.3)}
.pack-card.pack-epic{border-color:var(--epic-purple)}.pack-card.pack-epic:hover{box-shadow:0 0 30px rgba(155,89,182,.3)}
.pack-card.pack-common{border-color:var(--common-green)}.pack-card.pack-common:hover{box-shadow:0 0 30px rgba(39,174,96,.3)}
.pack-card.pack-mega{border-color:#ff3366;background:linear-gradient(145deg,#1a0a1a,#2a1a2a)}.pack-card.pack-mega:hover{box-shadow:0 0 30px rgba(255,51,102,.3)}
.pack-name{font-size:1.4em;font-weight:800;margin-bottom:8px}
.pack-desc{font-size:.85em;color:#8892b0;margin-bottom:12px}
.pack-price{display:inline-flex;align-items:center;gap:6px;background:rgba(255,215,0,.15);padding:6px 14px;border-radius:20px;font-weight:700;color:var(--gold);font-size:.9em}
.pack-items{font-size:.8em;color:#667;margin-top:8px}
.pack-card .spark{position:absolute;top:0;right:0;width:60px;height:60px;opacity:.15}
/* Pack Opening */
#opener{background:radial-gradient(ellipse at center,#1a1040 0%,#0a0e1a 70%);text-align:center}
.back-btn{position:fixed;top:15px;left:15px;z-index:100;background:rgba(26,30,46,.9);border:1px solid #333;color:var(--text);padding:8px 16px;border-radius:8px;cursor:pointer;font-size:.9em;backdrop-filter:blur(10px);transition:all .3s}
.back-btn:hover{background:var(--accent);border-color:var(--accent)}
.coins-bar{position:fixed;top:15px;right:15px;z-index:100;background:rgba(26,30,46,.9);border:1px solid var(--gold);padding:8px 16px;border-radius:8px;display:flex;align-items:center;gap:8px;backdrop-filter:blur(10px)}
.coins-bar .coin-icon-sm{width:22px;height:22px;background:var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;color:#000;font-size:10px}
.coins-bar .coin-amt{color:var(--gold);font-weight:700;font-size:.95em}
/* Pack Opening Animation */
.pack-opening{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:80px 20px}
.pack-visual{width:250px;height:350px;border-radius:20px;display:flex;align-items:center;justify-content:center;position:relative;margin-bottom:40px;animation:float 3s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-15px)}}
@keyframes shake{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}
@keyframes cardReveal{0%{transform:scale(.5) rotateY(90deg);opacity:0}50%{transform:scale(1.1) rotateY(-10deg);opacity:1}100%{transform:scale(1) rotateY(0);opacity:1}}
@keyframes glow{0%,100%{box-shadow:0 0 30px rgba(255,215,0,.3)}50%{box-shadow:0 0 60px rgba(255,215,0,.6)}}
@keyframes particle{0%{transform:translateY(0) scale(1);opacity:1}100%{transform:translateY(-200px) scale(0);opacity:0}}
.open-btn{background:linear-gradient(135deg,var(--gold),#ff6b35);border:none;color:#000;padding:18px 50px;border-radius:12px;font-size:1.2em;font-weight:800;cursor:pointer;transition:all .3s;text-transform:uppercase;letter-spacing:2px;box-shadow:0 5px 25px rgba(255,107,53,.3)}
.open-btn:hover{transform:scale(1.05);box-shadow:0 8px 35px rgba(255,107,53,.5)}
.open-btn:active{transform:scale(.98)}
.open-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
/* Player Card */
.card-container{perspective:1000px;margin:20px auto}
.player-card{width:100%;height:auto;min-height:100px;border-radius:16px;position:relative;overflow:hidden;margin:0 auto;animation:cardReveal .5s ease-out;transition:all .2s}
.player-card:hover{transform:scale(1.03)}
.player-card .card-bg{position:absolute;top:0;left:0;width:100%;height:100%}
.card-icon{background:linear-gradient(180deg,#e8b800 0%,#c4960a 30%,#a07800 70%,#e8b800 100%)}
.card-epic{background:linear-gradient(180deg,#9b59b6 0%,#6c3483 50%,#9b59b6 100%)}
.card-gold{background:linear-gradient(180deg,#f1c40f 0%,#d4a90a 50%,#f1c40f 100%)}
.card-rare{background:linear-gradient(180deg,#3498db 0%,#2471a3 50%,#3498db 100%)}
.card-common{background:linear-gradient(180deg,#27ae60 0%,#1e8449 50%,#27ae60 100%)}
.card-inner{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;padding:12px}
.card-ovr{font-size:2.8em;font-weight:900;color:#fff;text-shadow:2px 2px 4px rgba(0,0,0,.5)}
.card-pos{font-size:1em;font-weight:700;color:rgba(255,255,255,.9);text-transform:uppercase;margin-bottom:4px}
.card-svg-wrap{flex:1;display:flex;align-items:center;justify-content:center}
.card-svg-wrap svg{width:120px;height:120px;border-radius:50%;border:3px solid rgba(255,255,255,.3);background:rgba(0,0,0,.3)}
.card-name{font-size:1.15em;font-weight:800;text-align:center;color:#fff;text-shadow:2px 2px 4px rgba(0,0,0,.7);margin-top:auto;padding-top:8px;line-height:1.2}
.card-meta{display:flex;justify-content:space-between;align-items:center;margin-top:6px;font-size:.8em;color:rgba(255,255,255,.8)}
.card-nation{font-weight:600}
.card-club{font-weight:600}
/* Cards Grid */
.cards-grid{display:grid;grid-template-columns:1fr;gap:12px;max-width:500px;margin:12px auto;padding:8px}
.section-title{font-size:1.5em;font-weight:800;text-align:center;margin:20px 0;color:var(--gold);text-transform:uppercase;letter-spacing:2px}
/* Particles */
.particle{position:fixed;width:6px;height:6px;border-radius:50%;pointer-events:none;z-index:1000;animation:particle 1s ease-out forwards}
/* Loading */
.loading{display:flex;align-items:center;justify-content:center;min-height:100vh;flex-direction:column;gap:20px}
.loading-spinner{width:60px;height:60px;border:4px solid #333;border-top-color:var(--gold);border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
/* Scrollbar */
::-webkit-scrollbar{width:8px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:#333;border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:#555}
@media(max-width:600px){.logo{font-size:2.5em}.packs-grid{grid-template-columns:1fr}.player-card{width:260px;height:380px}.cards-grid{grid-template-columns:1fr}}
</style>
</head>
<body>
<!-- Main Menu -->
<div id="menu" class="screen active">
<div class="logo">FC 26</div>
<div class="subtitle">ULTIMATE TEAM PACK OPENER</div>
<div class="coins-display">
<div class="coin-icon"></div>
<div class="coin-amount" id="menuCoins">999,999</div>
</div>
<div class="packs-grid" id="packsGrid"></div>
</div>
<!-- Pack Opener -->
<div id="opener" class="screen">
<button class="back-btn" onclick="showMenu()">← Back</button>
<div class="coins-bar">
<div class="coin-icon-sm"></div>
<div class="coin-amt" id="openerCoins">999,999</div>
</div>
<div class="pack-opening" id="packContent"></div>
</div>
<script>
// ============ SOFIFA PLAYER PHOTOS ============
const PLAYER_PHOTOS = {
"Pelé": "https://cdn.sofifa.org/players/4/19/107298.png",
"Zidane": "https://cdn.sofifa.org/players/4/19/240311.png",
"Ronaldo Nazário": "https://cdn.sofifa.org/players/4/19/171919.png",
"Henry": "https://cdn.sofifa.org/players/4/19/183442.png",
"Xavi": "https://cdn.sofifa.org/players/4/19/179528.png",
"Iniesta": "https://cdn.sofifa.org/players/4/19/41.png",
"Mbappé": "https://cdn.sofifa.org/players/4/19/231747.png",
"Vinícius Jr.": "https://cdn.sofifa.org/players/4/19/238794.png",
"Salah": "https://cdn.sofifa.org/players/4/19/209331.png",
"De Bruyne": "https://cdn.sofifa.org/players/4/19/192985.png",
"Kane": "https://cdn.sofifa.org/players/4/19/202126.png",
"Son Heung-min": "https://cdn.sofifa.org/players/4/19/210257.png",
"Neymar Jr.": "https://cdn.sofifa.org/players/4/19/190871.png",
"Rodri": "https://cdn.sofifa.org/players/4/19/198329.png",
"Kroos": "https://cdn.sofifa.org/players/4/19/182521.png",
"Bruno Fernandes": "https://cdn.sofifa.org/players/4/19/212198.png",
"Alisson": "https://cdn.sofifa.org/players/4/19/212831.png",
"Courtois": "https://cdn.sofifa.org/players/4/19/192119.png",
"Van Dijk": "https://cdn.sofifa.org/players/4/19/203376.png",
"Lewandowski": "https://cdn.sofifa.org/players/4/19/188545.png",
"Benzema": "https://cdn.sofifa.org/players/4/19/165153.png",
"Griezmann": "https://cdn.sofifa.org/players/4/19/194765.png",
"Kanté": "https://cdn.sofifa.org/players/4/19/215914.png",
"Pogba": "https://cdn.sofifa.org/players/4/19/195864.png",
"Ramos": "https://cdn.sofifa.org/players/4/19/155862.png",
"Casillas": "https://cdn.sofifa.org/players/4/19/5479.png",
"Buffon": "https://cdn.sofifa.org/players/4/19/1179.png",
"Shearer": "https://cdn.sofifa.org/players/4/19/120415.png",
"Gerrard": "https://cdn.sofifa.org/players/4/19/158867.png",
"Rooney": "https://cdn.sofifa.org/players/4/19/54050.png",
"Vieira": "https://cdn.sofifa.org/players/4/19/229494.png",
"Shevchenko": "https://cdn.sofifa.org/players/4/19/244584.png",
"Suárez": "https://cdn.sofifa.org/players/4/19/176580.png",
"Best": "https://cdn.sofifa.org/players/4/19/222930.png",
"Roberto Carlos": "https://cdn.sofifa.org/players/4/19/183666.png",
"Riquelme": "https://cdn.sofifa.org/players/4/19/238766.png"
};
// ============ FALLBACK RANDOM IMAGES ============
const PLAYER_IMGS = [
"https://huggingface.co/datasets/deepa-shalini/fifa-player-images/resolve/main/100186.jpg",
"https://huggingface.co/datasets/deepa-shalini/fifa-player-images/resolve/main/100199.jpg",
"https://huggingface.co/datasets/deepa-shalini/fifa-player-images/resolve/main/10076.jpg",
"https://huggingface.co/datasets/deepa-shalini/fifa-player-images/resolve/main/101074.jpg",
"https://huggingface.co/datasets/deepa-shalini/fifa-player-images/resolve/main/101111.jpg",
"https://huggingface.co/datasets/deepa-shalini/fifa-player-images/resolve/main/101345.jpg",
"https://huggingface.co/datasets/deepa-shalini/fifa-player-images/resolve/main/101431.jpg",
"https://huggingface.co/datasets/deepa-shalini/fifa-player-images/resolve/main/10183.jpg",
"https://huggingface.co/datasets/deepa-shalini/fifa-player-images/resolve/main/10206.jpg",
"https://huggingface.co/datasets/deepa-shalini/fifa-player-images/resolve/main/102193.jpg",
"https://huggingface.co/datasets/deepa-shalini/fifa-player-images/resolve/main/102395.jpg",
"https://huggingface.co/datasets/deepa-shalini/fifa-player-images/resolve/main/102603.jpg",
"https://huggingface.co/datasets/deepa-shalini/fifa-player-images/resolve/main/103094.jpg",
"https://huggingface.co/datasets/deepa-shalini/fifa-player-images/resolve/main/103099.jpg",
"https://huggingface.co/datasets/deepa-shalini/fifa-player-images/resolve/main/103108.jpg"
];
// ============ POSITION EMOJIS ============
function getPosEmoji(pos){
if(pos==='GK') return '🧤';
if(pos==='CB') return '🛡️';
if(pos==='LB'||pos==='RB'||pos==='LWB'||pos==='RWB') return '⚔️';
if(pos==='CDM'||pos==='CM'||pos==='CAM'||pos==='RM'||pos==='LM') return '🎯';
if(pos==='LW'||pos==='RW') return '🏃';
if(pos==='ST'||pos==='CF') return '⚽';
return '⚽';
}
// ============ COUNTRY FLAGS ============
function getFlag(code){
const flags={
'BR':'🇧🇷','AR':'🇦🇷','FR':'🇫🇷','DE':'🇩🇪','ES':'🇪🇸','IT':'🇮🇹','NL':'🇳🇱','GB':'🇬🇧',
'PT':'🇵🇹','HU':'🇭🇺','HR':'🇭🇷','BE':'🇧🇪','NO':'🇳🇴','SE':'🇸🇪','DK':'🇩🇰','PL':'🇵🇱',
'AT':'🇦🇹','CH':'🇨🇭','RS':'🇷🇸','UA':'🇺🇦','TR':'🇹🇷','MA':'🇲🇦','EG':'🇪🇬','NG':'🇳🇬',
'CL':'🇨🇱','UY':'🇺🇾','CO':'🇨🇴','EC':'🇪🇨','US':'🇺🇸','JP':'🇯🇵','KR':'🇰🇷','GH':'🇬🇭',
'CM':'🇨🇲','ZM':'🇿🇲','GM':'🇬🇲','AL':'🇦🇱','IE':'🇮🇪','GR':'🇬🇷','SN':'🇸🇳','CR':'🇨🇷',
'CA':'🇨🇦','GE':'🇬🇪','IQ':'🇮🇶','TN':'🇹🇳','MX':'🇲🇽','DZ':'🇩🇿','JP':'🇯🇵'
};
return flags[code]||'🏳️';
}
// ============ GENERATE STATS ============
function genStats(ovr,pos){
const base = ovr;
let pace,pass,shot,dribble,def,phys;
if(pos==='GK'){
pace=30+Math.random()*20; pass=20+Math.random()*15; shot=10+Math.random()*10;
dribble=15+Math.random()*15; def=20+Math.random()*15; phys=50+Math.random()*30;
} else if(pos==='CB'){
pace=40+Math.random()*25; pass=40+Math.random()*20; shot=30+Math.random()*20;
dribble=35+Math.random()*20; def=70+Math.random()*25; phys=70+Math.random()*25;
} else if(pos.includes('B')||pos.includes('WB')){
pace=65+Math.random()*25; pass=55+Math.random()*25; shot=40+Math.random()*25;
dribble=60+Math.random()*25; def=60+Math.random()*25; phys=65+Math.random()*20;
} else if(pos.includes('M')){
pace=55+Math.random()*30; pass=70+Math.random()*25; shot=55+Math.random()*30;
dribble=65+Math.random()*25; def=45+Math.random()*25; phys=55+Math.random()*25;
} else if(pos==='LW'||pos==='RW'){
pace=80+Math.random()*18; pass=65+Math.random()*25; shot=70+Math.random()*25;
dribble=80+Math.random()*18; def=25+Math.random()*20; phys=50+Math.random()*25;
} else {
pace=75+Math.random()*22; pass=55+Math.random()*25; shot=80+Math.random()*18;
dribble=75+Math.random()*20; def=30+Math.random()*20; phys=60+Math.random()*25;
}
return {
pace:Math.min(99,Math.round(pace)),
pass:Math.min(99,Math.round(pass)),
shot:Math.min(99,Math.round(shot)),
dribble:Math.min(99,Math.round(dribble)),
def:Math.min(99,Math.round(def)),
phys:Math.min(99,Math.round(phys))
};
}
// ============ REAL PLAYER DATA ============
const ALL_PLAYERS = [
// ========== ICONS (OVR 90+) ==========
{name:"Pelé",ovr:98,pos:"ST",nation:"BR",club:"Santos",rarity:"icon"},
{name:"Maradona",ovr:97,pos:"CAM",nation:"AR",club:"Napoli",rarity:"icon"},
{name:"Cruyff",ovr:97,pos:"CAM",nation:"NL",club:"Barcelona",rarity:"icon"},
{name:"Di Stéfano",ovr:97,pos:"ST",nation:"AR",club:"Real Madrid",rarity:"icon"},
{name:"Zidane",ovr:97,pos:"CAM",nation:"FR",club:"Real Madrid",rarity:"icon"},
{name:"Beckenbauer",ovr:96,pos:"CB",nation:"DE",club:"Bayern",rarity:"icon"},
{name:"Puskás",ovr:96,pos:"ST",nation:"HU",club:"Real Madrid",rarity:"icon"},
{name:"Best",ovr:96,pos:"LW",nation:"GB",club:"Man Utd",rarity:"icon"},
{name:"Garrincha",ovr:96,pos:"RW",nation:"BR",club:"Botafogo",rarity:"icon"},
{name:"Eusébio",ovr:96,pos:"ST",nation:"PT",club:"Benfica",rarity:"icon"},
{name:"Van Basten",ovr:96,pos:"ST",nation:"NL",club:"AC Milan",rarity:"icon"},
{name:"G. Müller",ovr:96,pos:"ST",nation:"DE",club:"Bayern",rarity:"icon"},
{name:"Ronaldo Nazário",ovr:96,pos:"ST",nation:"BR",club:"Real Madrid",rarity:"icon"},
{name:"Ronaldinho",ovr:96,pos:"CAM",nation:"BR",club:"Barcelona",rarity:"icon"},
{name:"Henry",ovr:96,pos:"ST",nation:"FR",club:"Arsenal",rarity:"icon"},
{name:"Maldini",ovr:96,pos:"CB",nation:"IT",club:"AC Milan",rarity:"icon"},
{name:"Van Nistelrooy",ovr:96,pos:"ST",nation:"NL",club:"Real Madrid",rarity:"icon"},
{name:"Xavi",ovr:96,pos:"CM",nation:"ES",club:"Barcelona",rarity:"icon"},
{name:"Iniesta",ovr:96,pos:"CM",nation:"ES",club:"Barcelona",rarity:"icon"},
{name:"Platini",ovr:95,pos:"CAM",nation:"FR",club:"Juventus",rarity:"icon"},
{name:"Roberto Carlos",ovr:95,pos:"LB",nation:"BR",club:"Real Madrid",rarity:"icon"},
{name:"Cafu",ovr:95,pos:"RB",nation:"BR",club:"AC Milan",rarity:"icon"},
{name:"Beckham",ovr:95,pos:"RM",nation:"GB",club:"Real Madrid",rarity:"icon"},
{name:"Gerrard",ovr:95,pos:"CM",nation:"GB",club:"Liverpool",rarity:"icon"},
{name:"Lampard",ovr:95,pos:"CAM",nation:"GB",club:"Chelsea",rarity:"icon"},
{name:"Scholes",ovr:95,pos:"CM",nation:"GB",club:"Man Utd",rarity:"icon"},
{name:"Rooney",ovr:95,pos:"ST",nation:"GB",club:"Man Utd",rarity:"icon"},
{name:"Shearer",ovr:95,pos:"ST",nation:"GB",club:"Newcastle",rarity:"icon"},
{name:"Cantona",ovr:95,pos:"ST",nation:"FR",club:"Man Utd",rarity:"icon"},
{name:"Vieira",ovr:95,pos:"CDM",nation:"FR",club:"Arsenal",rarity:"icon"},
{name:"Bergkamp",ovr:95,pos:"CAM",nation:"NL",club:"Arsenal",rarity:"icon"},
{name:"Casillas",ovr:95,pos:"GK",nation:"ES",club:"Real Madrid",rarity:"icon"},
{name:"Ramos",ovr:95,pos:"CB",nation:"ES",club:"Real Madrid",rarity:"icon"},
{name:"Pirlo",ovr:95,pos:"CM",nation:"IT",club:"Juventus",rarity:"icon"},
{name:"Totti",ovr:95,pos:"ST",nation:"IT",club:"Roma",rarity:"icon"},
{name:"Del Piero",ovr:95,pos:"ST",nation:"IT",club:"Juventus",rarity:"icon"},
{name:"Buffon",ovr:95,pos:"GK",nation:"IT",club:"Juventus",rarity:"icon"},
{name:"Cannavaro",ovr:95,pos:"CB",nation:"IT",club:"Real Madrid",rarity:"icon"},
{name:"Baggio",ovr:95,pos:"CAM",nation:"IT",club:"Juventus",rarity:"icon"},
{name:"Batistuta",ovr:95,pos:"ST",nation:"AR",club:"Fiorentina",rarity:"icon"},
{name:"Riquelme",ovr:95,pos:"CAM",nation:"AR",club:"Boca",rarity:"icon"},
{name:"Shevchenko",ovr:95,pos:"ST",nation:"UA",club:"AC Milan",rarity:"icon"},
{name:"Drogba",ovr:95,pos:"ST",nation:"CI",club:"Chelsea",rarity:"icon"},
{name:"Suárez",ovr:95,pos:"ST",nation:"UY",club:"Barcelona",rarity:"icon"},
{name:"Lahm",ovr:95,pos:"RB",nation:"DE",club:"Bayern",rarity:"icon"},
{name:"Baresi",ovr:95,pos:"CB",nation:"IT",club:"AC Milan",rarity:"icon"},
{name:"Modrić",ovr:95,pos:"CM",nation:"HR",club:"Real Madrid",rarity:"icon"},
// ========== EPICS (OVR 83-89) ==========
{name:"Bastoni",ovr:89,pos:"CB",nation:"IT",club:"Inter",rarity:"epic"},
{name:"Maignan",ovr:88,pos:"GK",nation:"FR",club:"AC Milan",rarity:"epic"},
{name:"Müller",ovr:88,pos:"ST",nation:"DE",club:"Bayern",rarity:"epic"},
{name:"Tchouaméni",ovr:87,pos:"CDM",nation:"FR",club:"Real Madrid",rarity:"epic"},
{name:"Müller",ovr:87,pos:"CAM",nation:"DE",club:"Dortmund",rarity:"epic"},
{name:"Kanté",ovr:86,pos:"CDM",nation:"FR",club:"Al Ittihad",rarity:"epic"},
{name:"Griezmann",ovr:86,pos:"ST",nation:"FR",club:"Atlético",rarity:"epic"},
{name:"Theo Hernández",ovr:86,pos:"LB",nation:"FR",club:"AC Milan",rarity:"epic"},
{name:"Tonali",ovr:86,pos:"CDM",nation:"IT",club:"Newcastle",rarity:"epic"},
{name:"Cuti Romero",ovr:85,pos:"CB",nation:"AR",club:"Spurs",rarity:"epic"},
{name:"Coman",ovr:85,pos:"LW",nation:"FR",club:"Bayern",rarity:"epic"},
{name:"Thuram",ovr:85,pos:"ST",nation:"FR",club:"Inter",rarity:"epic"},
{name:"Koundé",ovr:85,pos:"CB",nation:"FR",club:"Barcelona",rarity:"epic"},
{name:"Varane",ovr:85,pos:"CB",nation:"FR",club:"Man Utd",rarity:"epic"},
{name:"Müller",ovr:85,pos:"CM",nation:"DE",club:"Bayern",rarity:"epic"},
{name:"Benzema",ovr:83,pos:"ST",nation:"FR",club:"Al Ittihad",rarity:"epic"},
{name:"Pogba",ovr:83,pos:"CM",nation:"FR",club:"Juventus",rarity:"epic"},
{name:"Dembélé",ovr:84,pos:"RW",nation:"FR",club:"PSG",rarity:"epic"},
{name:"Upamecano",ovr:84,pos:"CB",nation:"FR",club:"Bayern",rarity:"epic"},
{name:"Saliba",ovr:84,pos:"CB",nation:"FR",club:"Arsenal",rarity:"epic"},
{name:"Lisandro Martínez",ovr:84,pos:"CB",nation:"AR",club:"Man Utd",rarity:"epic"},
{name:"Bono",ovr:84,pos:"GK",nation:"MA",club:"Al Hilal",rarity:"epic"},
{name:"En-Nesyri",ovr:84,pos:"ST",nation:"MA",club:"Sevilla",rarity:"epic"},
{name:"Sancho",ovr:83,pos:"LW",nation:"GB",club:"Man Utd",rarity:"epic"},
{name:"Rabiot",ovr:83,pos:"CM",nation:"FR",club:"Juventus",rarity:"epic"},
{name:"Ziyech",ovr:83,pos:"CAM",nation:"MA",club:"Galatasaray",rarity:"epic"},
{name:"Mazraoui",ovr:83,pos:"RB",nation:"MA",club:"Man Utd",rarity:"epic"},
{name:"Tagliafico",ovr:82,pos:"LB",nation:"AR",club:"Barcelona",rarity:"epic"},
{name:"Aguerd",ovr:82,pos:"CB",nation:"MA",club:"West Ham",rarity:"epic"},
{name:"Ounahi",ovr:82,pos:"CM",nation:"MA",club:"Marseille",rarity:"epic"},
{name:"Amrabat",ovr:82,pos:"CDM",nation:"MA",club:"Man Utd",rarity:"epic"},
{name:"Palacios",ovr:82,pos:"CM",nation:"CL",club:"Leverkusen",rarity:"epic"},
{name:"Correa",ovr:82,pos:"ST",nation:"AR",club:"Atlético",rarity:"epic"},
{name:"Acuña",ovr:82,pos:"LB",nation:"AR",club:"Sevilla",rarity:"epic"},
{name:"Alexis Sánchez",ovr:81,pos:"ST",nation:"CL",club:"Marseille",rarity:"epic"},
{name:"Boufal",ovr:81,pos:"LW",nation:"MA",club:"Al Ahli",rarity:"epic"},
{name:"Montiel",ovr:81,pos:"RB",nation:"AR",club:"Nottingham",rarity:"epic"},
{name:"Giroud",ovr:82,pos:"ST",nation:"FR",club:"AC Milan",rarity:"epic"},
{name:"Foyth",ovr:82,pos:"RB",nation:"AR",club:"Villarreal",rarity:"epic"},
{name:"Vidal",ovr:80,pos:"CM",nation:"CL",club:"Flamengo",rarity:"epic"},
{name:"Sissoko",ovr:80,pos:"CM",nation:"FR",club:"Watford",rarity:"epic"},
{name:"Saïss",ovr:80,pos:"CB",nation:"MA",club:"Al Shabab",rarity:"epic"},
// ========== GOLD (OVR 76-89, excluding epics above) ==========
{name:"Haaland",ovr:91,pos:"ST",nation:"NO",club:"Man City",rarity:"gold"},
{name:"Mbappé",ovr:92,pos:"ST",nation:"FR",club:"Real Madrid",rarity:"gold"},
{name:"Vinícius Jr.",ovr:91,pos:"LW",nation:"BR",club:"Real Madrid",rarity:"gold"},
{name:"Bellingham",ovr:90,pos:"CAM",nation:"GB",club:"Real Madrid",rarity:"gold"},
{name:"Salah",ovr:89,pos:"RW",nation:"EG",club:"Liverpool",rarity:"gold"},
{name:"De Bruyne",ovr:90,pos:"CAM",nation:"BE",club:"Man City",rarity:"gold"},
{name:"Lewandowski",ovr:88,pos:"ST",nation:"PL",club:"Barcelona",rarity:"gold"},
{name:"Kane",ovr:89,pos:"ST",nation:"GB",club:"Bayern",rarity:"gold"},
{name:"Son Heung-min",ovr:87,pos:"LW",nation:"KR",club:"Spurs",rarity:"gold"},
{name:"Bernardo Silva",ovr:88,pos:"CAM",nation:"PT",club:"Man City",rarity:"gold"},
{name:"Neymar Jr.",ovr:87,pos:"LW",nation:"BR",club:"Al Hilal",rarity:"gold"},
{name:"Rodri",ovr:91,pos:"CDM",nation:"ES",club:"Man City",rarity:"gold"},
{name:"Kroos",ovr:88,pos:"CM",nation:"DE",club:"Real Madrid",rarity:"gold"},
{name:"Bruno Fernandes",ovr:88,pos:"CAM",nation:"PT",club:"Man Utd",rarity:"gold"},
{name:"Alisson",ovr:89,pos:"GK",nation:"BR",club:"Liverpool",rarity:"gold"},
{name:"Courtois",ovr:89,pos:"GK",nation:"BE",club:"Real Madrid",rarity:"gold"},
{name:"Donnarumma",ovr:87,pos:"GK",nation:"IT",club:"PSG",rarity:"gold"},
{name:"Núñez",ovr:84,pos:"ST",nation:"UY",club:"Liverpool",rarity:"gold"},
{name:"Pedri",ovr:87,pos:"CM",nation:"ES",club:"Barcelona",rarity:"gold"},
{name:"Gavi",ovr:84,pos:"CM",nation:"ES",club:"Barcelona",rarity:"gold"},
{name:"Foden",ovr:87,pos:"CAM",nation:"GB",club:"Man City",rarity:"gold"},
{name:"Saka",ovr:86,pos:"RW",nation:"GB",club:"Arsenal",rarity:"gold"},
{name:"Martinelli",ovr:84,pos:"LW",nation:"BR",club:"Arsenal",rarity:"gold"},
{name:"Osimhen",ovr:86,pos:"ST",nation:"NG",club:"Napoli",rarity:"gold"},
{name:"Vlahović",ovr:85,pos:"ST",nation:"RS",club:"Juventus",rarity:"gold"},
{name:"Lautaro Martínez",ovr:87,pos:"ST",nation:"AR",club:"Inter",rarity:"gold"},
{name:"Chiesa",ovr:84,pos:"LW",nation:"IT",club:"Juventus",rarity:"gold"},
{name:"Rafinha",ovr:86,pos:"RW",nation:"BR",club:"Barcelona",rarity:"gold"},
{name:"Wirtz",ovr:86,pos:"CAM",nation:"DE",club:"Leverkusen",rarity:"gold"},
{name:"Musiala",ovr:87,pos:"CAM",nation:"DE",club:"Bayern",rarity:"gold"},
{name:"Alaba",ovr:85,pos:"CB",nation:"AT",club:"Real Madrid",rarity:"gold"},
{name:"Dias",ovr:87,pos:"CB",nation:"PT",club:"Man City",rarity:"gold"},
{name:"Marquinhos",ovr:87,pos:"CB",nation:"BR",club:"PSG",rarity:"gold"},
{name:"Van Dijk",ovr:89,pos:"CB",nation:"NL",club:"Liverpool",rarity:"gold"},
{name:"Walker",ovr:85,pos:"RB",nation:"GB",club:"Man City",rarity:"gold"},
{name:"Alexander-Arnold",ovr:86,pos:"RB",nation:"GB",club:"Liverpool",rarity:"gold"},
{name:"Robertson",ovr:84,pos:"LB",nation:"GB",club:"Liverpool",rarity:"gold"},
{name:"Cancelo",ovr:85,pos:"LB",nation:"PT",club:"Barcelona",rarity:"gold"},
{name:"Hakimi",ovr:85,pos:"RB",nation:"MA",club:"PSG",rarity:"gold"},
{name:"Szczęsny",ovr:84,pos:"GK",nation:"PL",club:"Juventus",rarity:"gold"},
{name:"Ter Stegen",ovr:86,pos:"GK",nation:"DE",club:"Barcelona",rarity:"gold"},
{name:"Navas",ovr:84,pos:"GK",nation:"CR",club:"PSG",rarity:"gold"},
{name:"Mendy",ovr:84,pos:"GK",nation:"SN",club:"Real Madrid",rarity:"gold"},
{name:"Martínez",ovr:87,pos:"GK",nation:"AR",club:"Aston Villa",rarity:"gold"},
{name:"Trippier",ovr:83,pos:"RB",nation:"GB",club:"Newcastle",rarity:"gold"},
{name:"Rice",ovr:86,pos:"CDM",nation:"GB",club:"Arsenal",rarity:"gold"},
{name:"Gravenberch",ovr:83,pos:"CM",nation:"NL",club:"Liverpool",rarity:"gold"},
{name:"Kai Havertz",ovr:84,pos:"CAM",nation:"DE",club:"Arsenal",rarity:"gold"},
{name:"Ödegaard",ovr:88,pos:"CAM",nation:"NO",club:"Arsenal",rarity:"gold"},
{name:"Joselu",ovr:82,pos:"ST",nation:"ES",club:"Real Madrid",rarity:"gold"},
{name:"Isco",ovr:82,pos:"CAM",nation:"ES",club:"Real Betis",rarity:"gold"},
{name:"Morata",ovr:82,pos:"ST",nation:"ES",club:"Atlético",rarity:"gold"},
{name:"F. Torres",ovr:82,pos:"ST",nation:"ES",club:"Atlético",rarity:"gold"},
{name:"Di María",ovr:83,pos:"RW",nation:"AR",club:"Benfica",rarity:"gold"},
{name:"Hazard",ovr:82,pos:"LW",nation:"BE",club:"Retired",rarity:"gold"},
{name:"Grealish",ovr:84,pos:"LW",nation:"GB",club:"Man City",rarity:"gold"},
{name:"Raheem Sterling",ovr:83,pos:"RW",nation:"GB",club:"Chelsea",rarity:"gold"},
{name:"Rashford",ovr:84,pos:"LW",nation:"GB",club:"Man Utd",rarity:"gold"},
{name:"Mudryk",ovr:81,pos:"LW",nation:"UA",club:"Chelsea",rarity:"gold"},
{name:"Palmer",ovr:85,pos:"CAM",nation:"GB",club:"Chelsea",rarity:"gold"},
{name:"Madueke",ovr:82,pos:"RW",nation:"GB",club:"Chelsea",rarity:"gold"},
{name:"Jackson",ovr:82,pos:"ST",nation:"SN",club:"Chelsea",rarity:"gold"},
{name:"Caicedo",ovr:84,pos:"CDM",nation:"EC",club:"Chelsea",rarity:"gold"},
{name:"Enzo Fernández",ovr:84,pos:"CM",nation:"AR",club:"Chelsea",rarity:"gold"},
{name:"Szoboszlai",ovr:83,pos:"CAM",nation:"HU",club:"Liverpool",rarity:"gold"},
{name:"Díaz",ovr:83,pos:"LW",nation:"CO",club:"Liverpool",rarity:"gold"},
{name:"Jota",ovr:83,pos:"ST",nation:"PT",club:"Liverpool",rarity:"gold"},
{name:"Mbeumo",ovr:82,pos:"RW",nation:"CM",club:"Brentford",rarity:"gold"},
{name:"Toney",ovr:82,pos:"ST",nation:"GB",club:"Brentford",rarity:"gold"},
{name:"Bowen",ovr:82,pos:"RW",nation:"GB",club:"West Ham",rarity:"gold"},
{name:"Paquetá",ovr:83,pos:"CAM",nation:"BR",club:"West Ham",rarity:"gold"},
{name:"Kudus",ovr:83,pos:"CAM",nation:"GH",club:"West Ham",rarity:"gold"},
{name:"Wilson",ovr:82,pos:"ST",nation:"GB",club:"Newcastle",rarity:"gold"},
{name:"Isak",ovr:86,pos:"ST",nation:"SE",club:"Newcastle",rarity:"gold"},
{name:"Gordon",ovr:83,pos:"LW",nation:"GB",club:"Newcastle",rarity:"gold"},
{name:"Watkins",ovr:83,pos:"ST",nation:"GB",club:"Aston Villa",rarity:"gold"},
{name:"McGinn",ovr:82,pos:"CM",nation:"GB",club:"Aston Villa",rarity:"gold"},
{name:"Ollie Watkins",ovr:84,pos:"ST",nation:"GB",club:"Aston Villa",rarity:"gold"},
{name:"Diaby",ovr:82,pos:"RW",nation:"FR",club:"Aston Villa",rarity:"gold"},
{name:"Trossard",ovr:82,pos:"LW",nation:"BE",club:"Arsenal",rarity:"gold"},
{name:"Mudryk",ovr:81,pos:"LW",nation:"UA",club:"Chelsea",rarity:"gold"},
{name:"Calvert-Lewin",ovr:80,pos:"ST",nation:"GB",club:"Everton",rarity:"gold"},
{name:"Solanke",ovr:82,pos:"ST",nation:"GB",club:"Spurs",rarity:"gold"},
{name:"Richarlison",ovr:82,pos:"ST",nation:"BR",club:"Spurs",rarity:"gold"},
{name:"Maddison",ovr:83,pos:"CAM",nation:"GB",club:"Spurs",rarity:"gold"},
{name:"Mings",ovr:80,pos:"CB",nation:"GB",club:"Aston Villa",rarity:"gold"},
{name:"Gabriel",ovr:85,pos:"CB",nation:"BR",club:"Arsenal",rarity:"gold"},
{name:"White",ovr:83,pos:"CB",nation:"GB",club:"Arsenal",rarity:"gold"},
{name:"Zinchenko",ovr:82,pos:"LB",nation:"UA",club:"Arsenal",rarity:"gold"},
// ========== RARE (OVR 75-84) ==========
{name:"Neto",ovr:82,pos:"RW",nation:"PT",club:"Bournemouth",rarity:"rare"},
{name:"Solanke",ovr:82,pos:"ST",nation:"GB",club:"Bournemouth",rarity:"rare"},
{name:"Andreas Pereira",ovr:80,pos:"CAM",nation:"BR",club:"Fulham",rarity:"rare"},
{name:"Jiménez",ovr:80,pos:"ST",nation:"MX",club:"Fulham",rarity:"rare"},
{name:"Eze",ovr:83,pos:"CAM",nation:"GB",club:"Crystal Palace",rarity:"rare"},
{name:"Olise",ovr:82,pos:"RW",nation:"FR",club:"Bayern",rarity:"rare"},
{name:"Mateta",ovr:80,pos:"ST",nation:"FR",club:"Crystal Palace",rarity:"rare"},
{name:"Mbeumo",ovr:82,pos:"RW",nation:"CM",club:"Brentford",rarity:"rare"},
{name:"Ait-Nouri",ovr:81,pos:"LB",nation:"DZ",club:"Wolves",rarity:"rare"},
{name:"Cunha",ovr:82,pos:"ST",nation:"BR",club:"Wolves",rarity:"rare"},
{name:"Sarabia",ovr:80,pos:"CAM",nation:"ES",club:"Wolves",rarity:"rare"},
{name:"Neto",ovr:81,pos:"LW",nation:"BR",club:"Bournemouth",rarity:"rare"},
{name:"Senesi",ovr:80,pos:"CB",nation:"AR",club:"Bournemouth",rarity:"rare"},
{name:"Dunk",ovr:80,pos:"CB",nation:"GB",club:"Brighton",rarity:"rare"},
{name:"March",ovr:80,pos:"LW",nation:"GB",club:"Brighton",rarity:"rare"},
{name:"Mitoma",ovr:82,pos:"LW",nation:"JP",club:"Brighton",rarity:"rare"},
{name:"Welbeck",ovr:79,pos:"ST",nation:"GB",club:"Brighton",rarity:"rare"},
{name:"Ramsdale",ovr:80,pos:"GK",nation:"GB",club:"Southampton",rarity:"rare"},
{name:"Adam Armstrong",ovr:78,pos:"ST",nation:"GB",club:"Southampton",rarity:"rare"},
{name:"Brennan Johnson",ovr:80,pos:"RW",nation:"GB",club:"Spurs",rarity:"rare"},
{name:"Ademola Lookman",ovr:82,pos:"RW",nation:"NG",club:"Atalanta",rarity:"rare"},
{name:"Scamacca",ovr:80,pos:"ST",nation:"IT",club:"Atalanta",rarity:"rare"},
{name:"Dovbyk",ovr:81,pos:"ST",nation:"UA",club:"Roma",rarity:"rare"},
{name:"Pellegrini",ovr:80,pos:"CAM",nation:"IT",club:"Roma",rarity:"rare"},
{name:"Broja",ovr:79,pos:"ST",nation:"AL",club:"Chelsea",rarity:"rare"},
{name:"Tammy Abraham",ovr:80,pos:"ST",nation:"GB",club:"Roma",rarity:"rare"},
{name:"Ibrahimović",ovr:80,pos:"ST",nation:"SE",club:"AC Milan",rarity:"rare"},
{name:"Okafor",ovr:80,pos:"ST",nation:"CH",club:"AC Milan",rarity:"rare"},
{name:"Zirkzee",ovr:81,pos:"ST",nation:"NL",club:"Man Utd",rarity:"rare"},
{name:"Højlund",ovr:81,pos:"ST",nation:"DK",club:"Man Utd",rarity:"rare"},
{name:"Garnacho",ovr:81,pos:"LW",nation:"AR",club:"Man Utd",rarity:"rare"},
{name:"Chinonso Obasi",ovr:77,pos:"ST",nation:"NG",club:"Leicester",rarity:"rare"},
{name:"Vardy",ovr:78,pos:"ST",nation:"GB",club:"Leicester",rarity:"rare"},
{name:"Daka",ovr:79,pos:"ST",nation:"ZM",club:"Leicester",rarity:"rare"},
{name:"Barnes",ovr:80,pos:"LW",nation:"GB",club:"Newcastle",rarity:"rare"},
{name:"Minteh",ovr:78,pos:"RW",nation:"GM",club:"Brighton",rarity:"rare"},
{name:"Semenyo",ovr:79,pos:"RW",nation:"GH",club:"Bournemouth",rarity:"rare"},
{name:"Tyler Adams",ovr:79,pos:"CDM",nation:"US",club:"Bournemouth",rarity:"rare"},
{name:"Lewis Dunk",ovr:80,pos:"CB",nation:"GB",club:"Brighton",rarity:"rare"},
{name:"Konsa",ovr:81,pos:"CB",nation:"GB",club:"Aston Villa",rarity:"rare"},
{name:"Torres",ovr:82,pos:"CB",nation:"ES",club:"Aston Villa",rarity:"rare"},
{name:"Pau Torres",ovr:83,pos:"CB",nation:"ES",club:"Aston Villa",rarity:"rare"},
{name:"Rodrigo Bentancur",ovr:81,pos:"CM",nation:"UY",club:"Spurs",rarity:"rare"},
{name:"Cody Gakpo",ovr:83,pos:"LW",nation:"NL",club:"Liverpool",rarity:"rare"},
{name:"Darwin Núñez",ovr:84,pos:"ST",nation:"UY",club:"Liverpool",rarity:"rare"},
{name:"Szoboszlai",ovr:83,pos:"CAM",nation:"HU",club:"Liverpool",rarity:"rare"},
{name:"Endo",ovr:80,pos:"CDM",nation:"JP",club:"Liverpool",rarity:"rare"},
{name:"Tsimikas",ovr:81,pos:"LB",nation:"GR",club:"Liverpool",rarity:"rare"},
{name:"Lucas Paquetá",ovr:83,pos:"CAM",nation:"BR",club:"West Ham",rarity:"rare"},
{name:"Mohammed Kudus",ovr:83,pos:"CAM",nation:"GH",club:"West Ham",rarity:"rare"},
{name:"Emerson Royal",ovr:80,pos:"RB",nation:"BR",club:"AC Milan",rarity:"rare"},
{name:"Fikayo Tomori",ovr:83,pos:"CB",nation:"GB",club:"AC Milan",rarity:"rare"},
{name:"Yacine Adli",ovr:79,pos:"CM",nation:"FR",club:"AC Milan",rarity:"rare"},
{name:"Nicolo Zaniolo",ovr:79,pos:"CAM",nation:"IT",club:"Galatasaray",rarity:"rare"},
{name:"Mauro Icardi",ovr:81,pos:"ST",nation:"AR",club:"Galatasaray",rarity:"rare"},
{name:"Dries Mertens",ovr:79,pos:"CAM",nation:"BE",club:"Galatasaray",rarity:"rare"},
{name:"Victor Osimhen",ovr:86,pos:"ST",nation:"NG",club:"Galatasaray",rarity:"rare"},
{name:"Khvicha Kvaratskhelia",ovr:85,pos:"LW",nation:"GE",club:"PSG",rarity:"rare"},
{name:"Bradley Barcola",ovr:83,pos:"LW",nation:"FR",club:"PSG",rarity:"rare"},
{name:"Gonçalo Ramos",ovr:83,pos:"ST",nation:"PT",club:"PSG",rarity:"rare"},
{name:"Asensio",ovr:81,pos:"CAM",nation:"ES",club:"PSG",rarity:"rare"},
{name:"Zaïre-Emery",ovr:81,pos:"CM",nation:"FR",club:"PSG",rarity:"rare"},
{name:"Fabian Ruiz",ovr:82,pos:"CM",nation:"ES",club:"PSG",rarity:"rare"},
{name:"Randal Kolo Muani",ovr:82,pos:"ST",nation:"FR",club:"PSG",rarity:"rare"},
{name:"Jonathan David",ovr:83,pos:"ST",nation:"CA",club:"Lille",rarity:"rare"},
{name:"Florian Wirtz",ovr:86,pos:"CAM",nation:"DE",club:"Leverkusen",rarity:"rare"},
{name:"Victor Boniface",ovr:82,pos:"ST",nation:"NG",club:"Leverkusen",rarity:"rare"},
{name:"Xhaka",ovr:82,pos:"CM",nation:"CH",club:"Leverkusen",rarity:"rare"},
{name:"Diaby",ovr:82,pos:"RW",nation:"FR",club:"Leverkusen",rarity:"rare"},
{name:"Ollie Watkins",ovr:84,pos:"ST",nation:"GB",club:"Aston Villa",rarity:"rare"},
{name:"Marcus Thuram",ovr:85,pos:"ST",nation:"FR",club:"Inter",rarity:"rare"},
{name:"Nicolò Barella",ovr:86,pos:"CM",nation:"IT",club:"Inter",rarity:"rare"},
{name:"Alessandro Bastoni",ovr:89,pos:"CB",nation:"IT",club:"Inter",rarity:"rare"},
{name:"Hakan Çalhanoğlu",ovr:85,pos:"CM",nation:"TR",club:"Inter",rarity:"rare"},
{name:"Federico Dimarco",ovr:84,pos:"LB",nation:"IT",club:"Inter",rarity:"rare"},
{name:"Denzel Dumfries",ovr:82,pos:"RB",nation:"NL",club:"Inter",rarity:"rare"},
{name:"Marcus Rashford",ovr:84,pos:"LW",nation:"GB",club:"Man Utd",rarity:"rare"},
// ========== COMMON (OVR 55-74) ==========
{name:"Jorginho",ovr:78,pos:"CM",nation:"IT",club:"Arsenal",rarity:"common"},
{name:"Nketiah",ovr:77,pos:"ST",nation:"GB",club:"Crystal Palace",rarity:"common"},
{name:"Reiss Nelson",ovr:76,pos:"RW",nation:"GB",club:"Arsenal",rarity:"common"},
{name:"Eddie Nketiah",ovr:77,pos:"ST",nation:"GB",club:"Crystal Palace",rarity:"common"},
{name:"Smith Rowe",ovr:78,pos:"CAM",nation:"GB",club:"Fulham",rarity:"common"},
{name:"Rob Holding",ovr:76,pos:"CB",nation:"GB",club:"Crystal Palace",rarity:"common"},
{name:"Cedric Soares",ovr:74,pos:"RB",nation:"PT",club:"Fulham",rarity:"common"},
{name:"Matt Turner",ovr:76,pos:"GK",nation:"US",club:"Nottingham",rarity:"common"},
{name:"Freddie Ljungberg",ovr:76,pos:"RM",nation:"SE",club:"Retired",rarity:"common"},
{name:"Martin Ødegaard",ovr:88,pos:"CAM",nation:"NO",club:"Arsenal",rarity:"common"},
{name:"Curtis Jones",ovr:77,pos:"CM",nation:"GB",club:"Liverpool",rarity:"common"},
{name:"Harvey Elliott",ovr:78,pos:"CAM",nation:"GB",club:"Liverpool",rarity:"common"},
{name:"Nat Phillips",ovr:74,pos:"CB",nation:"GB",club:"Liverpool",rarity:"common"},
{name:"Rhys Williams",ovr:72,pos:"CB",nation:"GB",club:"Liverpool",rarity:"common"},
{name:"Caoimhín Kelleher",ovr:76,pos:"GK",nation:"IE",club:"Liverpool",rarity:"common"},
{name:"Fabio Carvalho",ovr:77,pos:"CAM",nation:"PT",club:"Brentford",rarity:"common"},
{name:"Tyler Morton",ovr:74,pos:"CM",nation:"GB",club:"Liverpool",rarity:"common"},
{name:"James McAtee",ovr:77,pos:"CAM",nation:"GB",club:"Man City",rarity:"common"},
{name:"Rico Lewis",ovr:79,pos:"RB",nation:"GB",club:"Man City",rarity:"common"},
{name:"Oscar Bobb",ovr:78,pos:"RW",nation:"NO",club:"Man City",rarity:"common"},
{name:"Maximo Perrone",ovr:76,pos:"CM",nation:"AR",club:"Man City",rarity:"common"},
{name:"Micah Hamilton",ovr:72,pos:"RW",nation:"GB",club:"Man City",rarity:"common"},
{name:"James Trafford",ovr:75,pos:"GK",nation:"GB",club:"Burnley",rarity:"common"},
{name:"Cole Palmer",ovr:85,pos:"CAM",nation:"GB",club:"Chelsea",rarity:"common"},
{name:"Armando Broja",ovr:79,pos:"ST",nation:"AL",club:"Chelsea",rarity:"common"},
{name:"Lesley Ugochukwu",ovr:74,pos:"CDM",nation:"FR",club:"Chelsea",rarity:"common"},
{name:"Carney Chukwuemeka",ovr:75,pos:"CM",nation:"GB",club:"Chelsea",rarity:"common"},
{name:"Noni Madueke",ovr:82,pos:"RW",nation:"GB",club:"Chelsea",rarity:"common"},
{name:"Djordje Petrović",ovr:78,pos:"GK",nation:"RS",club:"Chelsea",rarity:"common"},
{name:"Scott McTominay",ovr:80,pos:"CM",nation:"GB",club:"Napoli",rarity:"common"},
{name:"Aaron Wan-Bissaka",ovr:79,pos:"RB",nation:"GB",club:"West Ham",rarity:"common"},
{name:"Scott McTominay",ovr:80,pos:"CM",nation:"GB",club:"Napoli",rarity:"common"},
{name:"James Ward-Prowse",ovr:80,pos:"CM",nation:"GB",club:"West Ham",rarity:"common"},
{name:"Conor Gallagher",ovr:81,pos:"CM",nation:"GB",club:"Atlético",rarity:"common"},
{name:"Chalobah",ovr:78,pos:"CB",nation:"GB",club:"Chelsea",rarity:"common"},
{name:"André Onana",ovr:82,pos:"GK",nation:"CM",club:"Man Utd",rarity:"common"},
{name:"Tom Heaton",ovr:72,pos:"GK",nation:"GB",club:"Man Utd",rarity:"common"},
{name:"Jonny Evans",ovr:76,pos:"CB",nation:"GB",club:"Man Utd",rarity:"common"},
{name:"Luke Shaw",ovr:82,pos:"LB",nation:"GB",club:"Man Utd",rarity:"common"},
{name:"Tyrell Malacia",ovr:79,pos:"LB",nation:"NL",club:"Man Utd",rarity:"common"},
{name:"Kobbie Mainoo",ovr:80,pos:"CM",nation:"GB",club:"Man Utd",rarity:"common"},
{name:"Dan Gore",ovr:70,pos:"CM",nation:"GB",club:"Man Utd",rarity:"common"},
{name:"Willy Kambwala",ovr:70,pos:"CB",nation:"FR",club:"Man Utd",rarity:"common"},
{name:"Ibrahim Diaby",ovr:68,pos:"ST",nation:"FR",club:"Man Utd",rarity:"common"},
{name:"Ethan Laird",ovr:72,pos:"RB",nation:"GB",club:"Birmingham",rarity:"common"},
{name:"Brandon Williams",ovr:73,pos:"LB",nation:"GB",club:"Ipswich",rarity:"common"},
{name:"Hannibal Mejbri",ovr:74,pos:"CM",nation:"TN",club:"Burnley",rarity:"common"},
{name:"Facundo Pellistri",ovr:77,pos:"RW",nation:"UY",club:"Panathinaikos",rarity:"common"},
{name:"Zidane Iqbal",ovr:71,pos:"CAM",nation:"IQ",club:"Utrecht",rarity:"common"},
{name:"Charlie Savage",ovr:68,pos:"CM",nation:"GB",club:"Reading",rarity:"common"},
{name:"Mark Goldbridge",ovr:60,pos:"CM",nation:"GB",club:"YouTube FC",rarity:"common"}
];
// ============ PACK DEFINITIONS ==========
const PACKS = [
{id:"icon",name:"ICON PACK",desc:"Contains only legendary Icon players (90+ OVR)",price:50000,items:3,rarity:"icon",iconColor:"#e8b800",class:"pack-icon"},
{id:"icon_pro",name:"ICON PRO PACK",desc:"Premium Icons - guaranteed top legends",price:100000,items:5,rarity:"icon",iconColor:"#ff6b35",class:"pack-icon-pro"},
{id:"epic",name:"EPIC PACK",desc:"Top-tier Epic players (83-89 OVR)",price:25000,items:4,rarity:"epic",iconColor:"#9b59b6",class:"pack-epic"},
{id:"gold",name:"GOLD PACK",desc:"Gold quality players (76-89 OVR)",price:7500,items:6,rarity:"gold",iconColor:"#f1c40f",class:"pack-gold"},
{id:"rare",name:"RARE PACK",desc:"Rare quality players (75-84 OVR)",price:5000,items:6,rarity:"rare",iconColor:"#3498db",class:"pack-rare"},
{id:"common",name:"COMMON PACK",desc:"Common players to build your squad",price:750,items:8,rarity:"common",iconColor:"#27ae60",class:"pack-common"},
{id:"mega",name:"MEGA PACK",desc:"12 players - mix of all rarities!",price:35000,items:12,rarity:"mega",iconColor:"#ff3366",class:"pack-mega"}
];
// ============ STATE ==========
let coins = 999999;
let currentPack = null;
let pendingPlayers = null;
// ============ HELPERS ==========
function formatCoins(n){return n.toLocaleString()}
function getInitials(name){
const parts = name.split(' ');
if(parts.length >= 2) return (parts[0][0] + parts[parts.length-1][0]).toUpperCase();
return name.substring(0,2).toUpperCase();
}
function getRarityClass(r){return 'card-'+r}
function getPackRarities(pack){
if(pack.id==='icon') return ['icon'];
if(pack.id==='icon_pro') return ['icon'];
if(pack.id==='epic') return ['epic'];
if(pack.id==='gold') return ['gold','epic'];
if(pack.id==='rare') return ['rare','gold'];
if(pack.id==='common') return ['common','rare'];
if(pack.id==='mega') return ['icon','epic','gold','rare','common'];
return ['common'];
}
function getPlayersForRarity(rarity){
return ALL_PLAYERS.filter(p=>p.rarity===rarity);
}
function shuffle(arr){
const a=[...arr];
for(let i=a.length-1;i>0;i--){const j=Math.floor(Math.random()*(i+1));[a[i],a[j]]=[a[j],a[i]];}
return a;
}
function pickRandom(arr,n){
const s=shuffle(arr);
return s.slice(0,Math.min(n,s.length));
}
// ============ SVG PLAYER PORTRAIT ==========
function createPlayerSVG(player,size=120){
const initials = getInitials(player.name);
const rarityColors = {
icon: {bg:'#e8b800',accent:'#c4960a',text:'#000'},
epic: {bg:'#9b59b6',accent:'#6c3483',text:'#fff'},
gold: {bg:'#f1c40f',accent:'#d4a90a',text:'#000'},
rare: {bg:'#3498db',accent:'#2471a3',text:'#fff'},
common: {bg:'#27ae60',accent:'#1e8449',text:'#fff'}
};
const c = rarityColors[player.rarity] || rarityColors.common;
return `<svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="0 0 ${size} ${size}">
<defs>
<linearGradient id="bg_${player.name.replace(/[^a-zA-Z]/g,'')}" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:${c.bg}"/>
<stop offset="100%" style="stop-color:${c.accent}"/>
</linearGradient>
</defs>
<circle cx="${size/2}" cy="${size/2}" r="${size/2}" fill="url(#bg_${player.name.replace(/[^a-zA-Z]/g,'')})" stroke="rgba(255,255,255,0.3)" stroke-width="3"/>
<text x="${size/2}" y="${size/2}" text-anchor="middle" dominant-baseline="central" font-family="Arial,sans-serif" font-weight="900" font-size="${size*0.38}" fill="${c.text}" opacity="0.9">${initials}</text>
</svg>`;
}
// ============ RENDER PLAYER CARD ==========
function renderPlayerCard(player,idx){
const rClass = getRarityClass(player.rarity);
const stats = genStats(player.ovr,player.pos);
const posEmoji = getPosEmoji(player.pos);
return `<div class="card-container" style="animation-delay:${idx*0.15}s">
<div class="player-card ${rClass}">
<div class="card-bg ${rClass}"></div>
<div class="card-inner">
<div style="display:flex;justify-content:space-between;align-items:flex-start">
<div>
<div class="card-ovr">${player.ovr}</div>
<div class="card-pos">${posEmoji} ${player.pos}</div>
</div>
<div style="text-align:right">
<div style="font-size:.7em;color:rgba(255,255,255,.7);text-transform:uppercase">${player.rarity}</div>
</div>
</div>
<div style="text-align:center;margin:15px 0;font-size:3em">${posEmoji}</div>
<div class="card-name">${player.name}</div>
<div class="card-meta">
<span class="card-nation">${getFlag(player.nation)} ${player.nation}</span>
<span class="card-club">⚽ ${player.club}</span>
</div>
<div style="margin-top:8px;font-size:.7em;color:rgba(255,255,255,.8)">
<div style="display:grid;grid-template-columns:1fr 1fr;gap:2px 8px">
<div>⚡ ${stats.pace}</div><div>🎯 ${stats.shot}</div>
<div>📬 ${stats.pass}</div><div>💫 ${stats.dribble}</div>
<div>🛡️ ${stats.def}</div><div>💪 ${stats.phys}</div>
</div>
</div>
</div>
</div>
</div>`;
}
// ============ RENDER PACKS MENU ==========
function renderPacks(){
const grid = document.getElementById('packsGrid');
grid.innerHTML = PACKS.map(p=>`
<div class="pack-card ${p.class}" onclick="openPack('${p.id}')">
<div style="font-size:2em;margin-bottom:10px">${p.id==='icon'?'👑':p.id==='icon_pro'?'🏆':p.id==='epic'?'💎':p.id==='gold'?'🥇':p.id==='rare'?'🔷':p.id==='common'?'🟢':'🎁'}</div>
<div class="pack-name" style="color:${p.iconColor}">${p.name}</div>
<div class="pack-desc">${p.desc}</div>
<div class="pack-price">⚽ ${formatCoins(p.price)}</div>
<div class="pack-items">${p.items} players inside</div>
</div>
`).join('');
}
// ============ OPEN PACK ==========
function openPack(packId){
const pack = PACKS.find(p=>p.id===packId);
if(!pack) return;
if(coins < pack.price){
alert('Not enough coins! You have '+formatCoins(coins)+' coins.');
return;
}
coins -= pack.price;
updateCoinsDisplay();
currentPack = pack;
// Pick players based on pack type
const rarities = getPackRarities(pack);
let players = [];
rarities.forEach(r=>{
const pool = getPlayersForRarity(r);
const count = r===pack.rarity ? Math.ceil(pack.items*0.5) : Math.floor(pack.items/rarities.length);
players.push(...pickRandom(pool,count));
});
// Fill remaining slots
while(players.length < pack.items){
const r = rarities[Math.floor(Math.random()*rarities.length)];
const pool = getPlayersForRarity(r);
const pick = pool[Math.floor(Math.random()*pool.length)];
if(!players.find(p=>p.name===pick.name)){
players.push(pick);
}
}
players = shuffle(players).slice(0,pack.items);
pendingPlayers = players;
// Show pack opening screen
showScreen('opener');
const content = document.getElementById('packContent');
content.innerHTML = `
<div class="pack-visual" style="background:linear-gradient(145deg,${pack.iconColor}22,${pack.iconColor}44);border:3px solid ${pack.iconColor}">
<div style="font-size:4em">${pack.id==='icon'?'👑':pack.id==='icon_pro'?'🏆':pack.id==='epic'?'💎':pack.id==='gold'?'🥇':pack.id==='rare'?'🔷':pack.id==='common'?'🟢':'🎁'}</div>
</div>
<h2 style="color:${pack.iconColor};margin-bottom:10px;font-size:1.5em">${pack.name}</h2>
<p style="color:#8892b0;margin-bottom:30px">${pack.items} players inside</p>
<button class="open-btn" onclick="revealCards()">OPEN PACK</button>
`;
}
// ============ REVEAL CARDS ==========
function revealCards(){
const players = pendingPlayers;
if(!players) return;
const content = document.getElementById('packContent');
let html = `<div class="section-title">Your Players!</div>`;
html += `<div class="cards-grid">`;
players.forEach((p,i)=>{
html += renderPlayerCard(p,i);
});
html += `</div>`;
html += `<div style="text-align:center;margin:30px 0">
<button class="open-btn" onclick="showMenu()" style="font-size:1em;padding:14px 30px">BACK TO MENU</button>
</div>`;
content.innerHTML = html;
// Spawn particles for high-value cards
const hasIcon = players.some(p=>p.rarity==='icon');
const hasEpic = players.some(p=>p.rarity==='epic');
if(hasIcon || hasEpic){
for(let i=0;i<30;i++){
setTimeout(()=>{
const particle = document.createElement('div');
particle.className='particle';
particle.style.left=Math.random()*100+'vw';
particle.style.top=Math.random()*100+'vh';
particle.style.background=hasIcon?'#e8b800':'#9b59b6';
document.body.appendChild(particle);
setTimeout(()=>particle.remove(),1000);
},i*50);
}
}
}
// ============ NAVIGATION ==========
function showScreen(id){
document.querySelectorAll('.screen').forEach(s=>s.classList.remove('active'));
document.getElementById(id).classList.add('active');
window.scrollTo(0,0);
}
function showMenu(){
showScreen('menu');
updateCoinsDisplay();
}
function updateCoinsDisplay(){
document.getElementById('menuCoins').textContent = formatCoins(coins);
document.getElementById('openerCoins').textContent = formatCoins(coins);
}
// ============ INIT ==========
renderPacks();
updateCoinsDisplay();
</script>
</body>
</html>