{"id":1377,"date":"2026-06-16T10:37:02","date_gmt":"2026-06-16T02:37:02","guid":{"rendered":"https:\/\/qubitledge.com\/?p=1377"},"modified":"2026-06-16T11:50:54","modified_gmt":"2026-06-16T03:50:54","slug":"spain","status":"publish","type":"post","link":"https:\/\/qubitledge.com\/index.php\/2026\/06\/16\/spain\/","title":{"rendered":"\u897f\u73ed\u7259\uff1a\u6597\u725b\u58eb\u519b\u56e2"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"1377\" class=\"elementor elementor-1377\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-37a0e0e e-flex e-con-boxed e-con e-parent\" data-id=\"37a0e0e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a52e816 elementor-widget elementor-widget-html\" data-id=\"a52e816\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t\r\n<!DOCTYPE html>\r\n<html lang=\"zh-CN\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>\u6597\u725b\u58eb\u519b\u56e2 \u00b7 Spain 2026 World Cup Squad<\/title>\r\n<style>\r\n\/* ============ \u5168\u5c40\u53d8\u91cf \/ \u897f\u73ed\u7259\u590d\u53e4\u914d\u8272 ============ *\/\r\n:root{\r\n  --rojo:#c60b1e;        \/* \u897f\u73ed\u7259\u56fd\u65d7\u7ea2 *\/\r\n  --rojo-dark:#8e0815;\r\n  --rojo-2:#a30a18;\r\n  --oro:#c8a01a;          \/* \u590d\u53e4\u91d1 *\/\r\n  --oro-soft:#e6c14b;\r\n  --amarillo:#ffc400;     \/* \u56fd\u65d7\u9ec4 *\/\r\n  --ink:#2b1d10;          \/* \u6696\u58a8\u8272 *\/\r\n  --paper:#fdfbf5;\r\n  --cream:#faf6ec;\r\n  --cream-2:#f1ead6;\r\n  --line:#e0d8c2;\r\n  --navy:#5a1414;         \/* \u6df1\u9152\u7ea2\uff0c\u7528\u4e8e\u6807\u9898\u7b49 *\/\r\n}\r\n\r\n*{box-sizing:border-box;margin:0;padding:0}\r\nhtml,body{min-height:100%}\r\nbody{\r\n  font-family: Georgia, 'Times New Roman', 'Songti SC', 'STSong', serif;\r\n  color:var(--ink);\r\n  background:\r\n    repeating-linear-gradient(45deg, rgba(198,11,30,.022) 0 2px, transparent 2px 14px),\r\n    var(--paper);\r\n  line-height:1.6;\r\n}\r\nbutton{font-family:inherit;cursor:pointer;border:none;background:none}\r\nselect{font-family:inherit}\r\n\r\n\/* ============ \u9876\u90e8\u6a2a\u5e45 ============ *\/\r\n.banner{\r\n  background:var(--rojo);\r\n  color:#fff;\r\n  padding:46px 20px 40px;\r\n  text-align:center;\r\n  \/* \u56fd\u65d7\u7ea2-\u9ec4-\u7ea2\u6bcd\u9898\u73af\u7ed5\u4e00\u5708\uff1a\u5185\u5708\u9ec4\u8fb9 + \u5916\u5708\u6df1\u7ea2\u5149\u73af\uff0c\u56db\u8fb9\u5bf9\u79f0 *\/\r\n  border:6px solid var(--amarillo);\r\n  box-shadow:0 0 0 4px var(--rojo-dark);\r\n  position:relative;\r\n  overflow:hidden;\r\n}\r\n.banner::before{display:none}\r\n.banner::after{display:none}\r\n.crest{\r\n  display:inline-flex;align-items:center;justify-content:center;\r\n  width:54px;height:54px;border-radius:50%;\r\n  background:#fff;\r\n  box-shadow:0 0 0 4px var(--oro), 0 6px 18px rgba(0,0,0,.35);\r\n  margin-bottom:14px;position:relative;overflow:hidden;\r\n}\r\n.crest .bars{width:30px;height:30px;border-radius:50%;overflow:hidden;display:flex;flex-direction:column}\r\n.crest .bars i{display:block;width:100%}\r\n.crest .bars i:nth-child(1){height:25%;background:var(--rojo)}\r\n.crest .bars i:nth-child(2){height:50%;background:var(--amarillo)}\r\n.crest .bars i:nth-child(3){height:25%;background:var(--rojo)}\r\n.banner h1{\r\n  font-size:clamp(38px,6.5vw,68px);\r\n  letter-spacing:.04em;\r\n  font-weight:700;\r\n  line-height:1.05;\r\n  margin-bottom:10px;\r\n  text-shadow:0 2px 0 var(--rojo-dark);\r\n}\r\n.banner h1 .en-name{\r\n  color:var(--oro-soft);\r\n  font-size:.62em;\r\n  font-style:italic;\r\n  font-weight:400;\r\n  letter-spacing:.02em;\r\n  display:inline-block;\r\n  vertical-align:middle;\r\n}\r\n.banner .sub{\r\n  font-style:italic;\r\n  color:#fff;\r\n  letter-spacing:.2em;\r\n  font-size:clamp(14px,2vw,19px);\r\n  text-transform:uppercase;\r\n  font-weight:600;\r\n}\r\n.banner .sub2{\r\n  color:#f6dfe0;\r\n  font-size:clamp(11px,1.5vw,13px);\r\n  letter-spacing:.1em;\r\n  margin-top:4px;\r\n}\r\n.banner .manager{\r\n  margin-top:12px;\r\n  font-size:13px;color:#f0c8cc;letter-spacing:.1em;\r\n}\r\n.banner .manager b{color:#fff}\r\n\r\n\/* ============ \u7403\u961f\u4ecb\u7ecd\u533a ============ *\/\r\n.about{\r\n  max-width:1080px;margin:0 auto;padding:36px 22px 8px;\r\n}\r\n.about-card{\r\n  background:var(--cream);\r\n  border:1px solid var(--line);\r\n  border-top:4px double var(--rojo);\r\n  padding:28px 30px 30px;\r\n  position:relative;\r\n  box-shadow:0 2px 0 rgba(198,11,30,.06);\r\n}\r\n.about-card::before{\r\n  content:\"EST. 1913\";\r\n  position:absolute;top:-13px;right:24px;\r\n  background:var(--paper);color:var(--oro);\r\n  border:1px solid var(--oro);border-radius:2px;\r\n  font-size:11px;letter-spacing:.2em;padding:2px 10px;font-weight:700;\r\n}\r\n.about h2{\r\n  color:var(--rojo);font-size:22px;letter-spacing:.05em;\r\n  margin-bottom:6px;border-bottom:1px solid var(--line);padding-bottom:10px;\r\n  display:flex;align-items:center;gap:10px;\r\n}\r\n.about h2::before{content:\"\u00a7\";color:var(--rojo-dark);font-style:italic;font-size:26px}\r\n.about p{margin:12px 0;color:#333;font-size:15.5px}\r\n.about .lead{font-size:16px;color:var(--ink)}\r\n.about .lead b{color:var(--rojo)}\r\n\r\n\/* \u8363\u8a89\u6761 *\/\r\n.honors{\r\n  display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));\r\n  gap:12px;margin-top:20px;\r\n}\r\n.honor{\r\n  background:#fff;border:1px solid var(--line);\r\n  border-left:4px solid var(--rojo);\r\n  padding:12px 14px;\r\n}\r\n.honor .t{font-size:11px;letter-spacing:.16em;color:#8a7e5d;text-transform:uppercase}\r\n.honor .v{font-size:17px;color:var(--rojo-dark);font-weight:700;margin-top:3px}\r\n.honor .v small{color:var(--oro);font-weight:600;font-size:12px;letter-spacing:.05em;display:block;margin-top:2px}\r\n\r\n\/* ============ Tab \u5bfc\u822a ============ *\/\r\n.tabs-wrap{\r\n  max-width:1080px;margin:30px auto 0;padding:0 22px;\r\n}\r\n.tabs{\r\n  display:flex;gap:0;border-bottom:2px solid var(--rojo);\r\n  flex-wrap:wrap;\r\n}\r\n.tab{\r\n  padding:13px 26px;\r\n  background:var(--cream-2);color:var(--rojo-dark);\r\n  border:1px solid var(--line);border-bottom:none;\r\n  font-size:14px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;\r\n  margin-right:4px;border-radius:8px 8px 0 0;\r\n  transition:all .2s;position:relative;top:2px;\r\n}\r\n.tab:hover{background:#fff}\r\n.tab.active{\r\n  background:var(--rojo);color:#fff;\r\n  border-color:var(--rojo);\r\n}\r\n.tab.active::after{\r\n  content:\"\";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--oro);\r\n}\r\n\r\n\/* ============ \u5185\u5bb9\u9762\u677f ============ *\/\r\n.panel{\r\n  max-width:1080px;margin:0 auto;padding:24px 22px 60px;\r\n  display:none;\r\n}\r\n.panel.active{display:block;animation:fade .35s ease}\r\n@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}\r\n\r\n.panel-title{\r\n  color:var(--rojo-dark);font-size:18px;letter-spacing:.06em;\r\n  margin-bottom:14px;display:flex;align-items:center;gap:10px;\r\n}\r\n.panel-title .bar{width:36px;height:3px;background:var(--rojo)}\r\n\r\n\/* ============ \u9635\u578b\u9009\u62e9\u5668 ============ *\/\r\n.formation-bar{\r\n  display:flex;gap:10px;flex-wrap:wrap;align-items:center;\r\n  margin-bottom:18px;\r\n}\r\n.formation-bar .label{\r\n  font-size:12px;letter-spacing:.16em;color:#6a6a6a;text-transform:uppercase;font-weight:700;\r\n}\r\n.fbtn{\r\n  padding:8px 18px;background:#fff;border:1.5px solid var(--rojo);\r\n  color:var(--rojo-dark);font-weight:700;letter-spacing:.08em;border-radius:4px;\r\n  transition:all .18s;\r\n}\r\n.fbtn:hover{background:var(--cream)}\r\n.fbtn.on{background:var(--rojo);color:#fff;border-color:var(--rojo)}\r\n.fbtn .pos-mini{font-size:10px;color:#999;font-weight:400;letter-spacing:0;margin-left:6px}\r\n.fbtn.on .pos-mini{color:#f6c9cf}\r\n\r\n\/* ============ \u7403\u573a ============ *\/\r\n.pitch-wrap{\r\n  background:linear-gradient(180deg,#1c5e2e 0%,#237238 100%);\r\n  border:6px solid var(--rojo-dark);\r\n  border-radius:14px;\r\n  padding:14px;\r\n  box-shadow:0 8px 24px rgba(90,20,20,.18);\r\n}\r\n.pitch{\r\n  position:relative;\r\n  width:100%;aspect-ratio:3\/4;\r\n  background:\r\n    repeating-linear-gradient(180deg, rgba(255,255,255,.04) 0 5%, rgba(255,255,255,.07) 5% 10%);\r\n  border:3px solid rgba(255,255,255,.85);\r\n  border-radius:8px;\r\n  overflow:hidden;\r\n}\r\n.pitch::before{\r\n  content:\"\";position:absolute;left:0;right:0;top:50%;height:2px;\r\n  background:rgba(255,255,255,.7);transform:translateY(-50%);\r\n}\r\n.center-circle{\r\n  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);\r\n  width:22%;aspect-ratio:1;border:2px solid rgba(255,255,255,.7);border-radius:50%;\r\n}\r\n.center-spot{\r\n  position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:50%;\r\n  background:rgba(255,255,255,.8);transform:translate(-50%,-50%);\r\n}\r\n.pen-box-top, .penBoxBot{\r\n  position:absolute;left:50%;transform:translateX(-50%);\r\n  width:50%;height:16%;\r\n  border:2px solid rgba(255,255,255,.7);\r\n  border-radius:0;\r\n}\r\n.pen-box-top{top:0;border-top:none}\r\n.penBoxBot{bottom:0;border-bottom:none}\r\n.pen-arc-top, .penArcBot{\r\n  position:absolute;left:50%;transform:translateX(-50%);\r\n  width:30%;height:9%;border:2px solid rgba(255,255,255,.7);border-radius:0;\r\n}\r\n.pen-arc-top{top:16%;border-top:none}\r\n.penArcBot{bottom:16%;border-bottom:none}\r\n\r\n\/* \u7403\u5458\u6807\u8bb0 *\/\r\n.marker{\r\n  position:absolute;\r\n  transform:translate(-50%,-50%);\r\n  display:flex;flex-direction:column;align-items:center;\r\n  transition:left .5s cubic-bezier(.4,1.2,.5,1), top .5s cubic-bezier(.4,1.2,.5,1);\r\n  cursor:pointer;z-index:3;\r\n  width:54px;\r\n}\r\n.marker .dot{\r\n  width:46px;height:46px;border-radius:50%;\r\n  background:radial-gradient(circle at 35% 30%, #fff, #f0ece0);\r\n  border:3px solid var(--rojo-dark);\r\n  display:flex;align-items:center;justify-content:center;\r\n  font-weight:700;color:var(--rojo);font-size:18px;\r\n  box-shadow:0 3px 8px rgba(0,0,0,.35);\r\n  transition:transform .18s, box-shadow .18s, border-color .18s;\r\n  font-family:Georgia,serif;\r\n}\r\n.marker:hover .dot{\r\n  transform:scale(1.12) translateY(-2px);\r\n  box-shadow:0 8px 18px rgba(0,0,0,.4);\r\n  border-color:var(--oro);\r\n}\r\n.marker .pname{\r\n  margin-top:5px;font-size:11px;color:#fff;font-weight:700;\r\n  text-shadow:0 1px 3px rgba(0,0,0,.9);\r\n  white-space:nowrap;letter-spacing:.02em;\r\n  max-width:78px;overflow:hidden;text-overflow:ellipsis;\r\n}\r\n.marker .pos-tag{\r\n  position:absolute;top:-8px;right:-4px;\r\n  background:var(--rojo);color:#fff;\r\n  font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;\r\n  letter-spacing:.06em;font-family:Arial,sans-serif;\r\n  border:1px solid #fff;\r\n}\r\n.marker.captain .dot{border-color:var(--oro);box-shadow:0 0 0 2px var(--oro),0 3px 8px rgba(0,0,0,.4)}\r\n.marker.star .dot::after{\r\n  content:\"\u2605\";position:absolute;top:-14px;color:var(--oro);\r\n  font-size:14px;text-shadow:0 1px 2px rgba(0,0,0,.5);\r\n}\r\n\r\n\/* \u9635\u578b\u56fe\u56fe\u4f8b *\/\r\n.legend{\r\n  display:flex;gap:18px;flex-wrap:wrap;margin-top:16px;\r\n  font-size:12px;color:#555;align-items:center;\r\n  padding:10px 14px;background:var(--cream);border:1px solid var(--line);border-radius:6px;\r\n}\r\n.legend .item{display:flex;align-items:center;gap:6px}\r\n.legend .sw{width:14px;height:14px;border-radius:50%;border:2px solid var(--rojo-dark);background:#fff}\r\n.legend .sw.gold{border-color:var(--oro);box-shadow:0 0 0 1.5px var(--oro)}\r\n.legend .sw.star{background:var(--rojo)}\r\n.pos-gloss{\r\n  margin-top:10px;font-size:12px;color:#777;font-style:italic;\r\n}\r\n.pos-gloss b{color:var(--rojo-dark);font-style:normal}\r\n\r\n\/* ============ \u9635\u5bb9\u540d\u5355 ============ *\/\r\n.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}\r\n.filter-btn{\r\n  padding:9px 20px;background:#fff;border:1.5px solid var(--line);\r\n  color:#555;font-weight:700;letter-spacing:.08em;border-radius:4px;font-size:13px;\r\n  transition:all .15s;text-transform:uppercase;\r\n}\r\n.filter-btn:hover{border-color:var(--rojo);color:var(--rojo-dark)}\r\n.filter-btn.on{background:var(--rojo);color:#fff;border-color:var(--rojo)}\r\n.filter-btn .cnt{font-size:11px;color:#aaa;margin-left:6px;font-weight:400}\r\n.filter-btn.on .cnt{color:#f6c9cf}\r\n\r\n.squad-grid{\r\n  display:grid;\r\n  grid-template-columns:repeat(auto-fill,minmax(200px,1fr));\r\n  gap:14px;\r\n}\r\n.pcard{\r\n  background:var(--cream);\r\n  border:1px solid var(--line);\r\n  border-top:3px solid var(--rojo);\r\n  padding:14px;cursor:pointer;\r\n  transition:transform .18s, box-shadow .18s, border-color .18s;\r\n  position:relative;\r\n  display:flex;flex-direction:column;gap:8px;\r\n}\r\n.pcard:hover{\r\n  transform:translateY(-3px);\r\n  box-shadow:0 8px 18px rgba(198,11,30,.15);\r\n  border-top-color:var(--oro);\r\n}\r\n.pcard .num{\r\n  position:absolute;top:10px;right:12px;\r\n  font-size:30px;color:rgba(198,11,30,.15);font-weight:700;font-style:italic;\r\n}\r\n.pcard .prow1{display:flex;align-items:center;gap:10px}\r\n.pcard .pavatar{\r\n  width:44px;height:44px;border-radius:50%;overflow:hidden;\r\n  background:linear-gradient(135deg,var(--rojo),var(--rojo-dark));\r\n  color:#fff;display:flex;align-items:center;justify-content:center;\r\n  font-weight:700;font-size:15px;flex-shrink:0;\r\n  border:2px solid var(--oro);\r\n}\r\n.pcard .pavatar img{width:100%;height:100%;object-fit:cover}\r\n.pcard .pavatar.noimg span{display:flex}\r\n.pcard .names{flex:1;min-width:0}\r\n.pcard .en{font-weight:700;color:var(--rojo-dark);font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\r\n.pcard .zh{font-size:12px;color:#666}\r\n.pcard .pos-rating{display:flex;justify-content:space-between;align-items:center}\r\n.pcard .pos-badges{display:flex;gap:4px;flex-wrap:wrap}\r\n.pos-badge{\r\n  font-family:Arial,sans-serif;font-size:10px;font-weight:700;\r\n  padding:2px 7px;border-radius:3px;letter-spacing:.06em;\r\n  background:var(--rojo-dark);color:#fff;\r\n}\r\n.pos-badge.GK{background:#5a4a1a}\r\n.pos-badge.DEF{background:var(--rojo-dark)}\r\n.pos-badge.MID{background:#2d6b2d}\r\n.pos-badge.FWD{background:var(--rojo)}\r\n.pcard .rating{\r\n  font-weight:700;color:var(--rojo);font-size:20px;font-family:Georgia,serif;\r\n}\r\n.pcard .rating small{font-size:10px;color:#999;font-weight:400}\r\n.pcard .club{font-size:11px;color:#888;font-style:italic;border-top:1px dashed var(--line);padding-top:6px}\r\n\r\n\/* ============ \u7403\u5458\u5bf9\u6bd4 ============ *\/\r\n.vs-wrap{display:flex;flex-direction:column;gap:18px}\r\n.vs-pickers{\r\n  display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center;\r\n  background:var(--cream);border:1px solid var(--line);padding:18px;border-radius:8px;\r\n}\r\n.vs-picker label{font-size:11px;color:#888;letter-spacing:.14em;text-transform:uppercase;display:block;margin-bottom:6px;font-weight:700}\r\n.vs-picker select{\r\n  width:100%;padding:10px 12px;border:1.5px solid var(--rojo);\r\n  border-radius:4px;font-size:14px;background:#fff;color:var(--rojo-dark);\r\n}\r\n.vs-badge{\r\n  width:54px;height:54px;border-radius:50%;\r\n  background:var(--rojo);color:#fff;\r\n  display:flex;align-items:center;justify-content:center;\r\n  font-weight:700;font-style:italic;font-size:20px;letter-spacing:.04em;\r\n  box-shadow:0 0 0 3px #fff,0 0 0 4px var(--rojo);\r\n  font-family:Georgia,serif;\r\n}\r\n.vs-result{\r\n  display:grid;grid-template-columns:1fr auto 1fr;gap:0;\r\n  background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;\r\n}\r\n.vs-col{padding:22px 20px;display:flex;flex-direction:column;gap:10px;text-align:left;align-items:flex-start}\r\n.vs-col.left{border-right:1px dashed var(--line)}\r\n.vs-col.right{border-left:none}\r\n.vs-col .name{font-size:20px;color:var(--rojo-dark);font-weight:700;line-height:1.2;word-break:break-word}\r\n.vs-col .zh{font-size:13px;color:#777;margin-top:-8px}\r\n.vs-col .num-big{font-size:14px;color:var(--oro);font-weight:700;font-style:italic;letter-spacing:.1em}\r\n.vs-mid{\r\n  display:flex;flex-direction:column;justify-content:center;align-items:center;\r\n  background:var(--cream-2);padding:18px 16px;gap:10px;\r\n  min-width:110px;\r\n}\r\n.vs-mid .label{font-size:10px;color:#999;letter-spacing:.16em;text-transform:uppercase;font-weight:700}\r\n.vs-mid .val{font-size:13px;color:var(--rojo-dark);font-weight:700;text-align:center}\r\n\r\n\/* \u8bc4\u5206\u6761 *\/\r\n.rating-bar-wrap{display:flex;flex-direction:column;gap:6px;width:100%}\r\n.rating-bar-wrap .top{display:flex;justify-content:space-between;font-size:11px;color:#999;letter-spacing:.1em;text-transform:uppercase}\r\n.rating-bar-wrap .top b{color:var(--rojo-dark);font-size:14px}\r\n.rating-bar{height:10px;background:var(--cream-2);border-radius:5px;overflow:hidden;border:1px solid var(--line)}\r\n.rating-bar > i{display:block;height:100%;background:linear-gradient(90deg,var(--rojo),var(--oro));border-radius:5px}\r\n\r\n.vs-attr{\r\n  width:100%;max-width:240px;font-size:12px;color:#555;\r\n}\r\n.vs-attr .k{font-size:10px;color:#aaa;letter-spacing:.12em;text-transform:uppercase;font-weight:700}\r\n.vs-attr .v{font-size:13px;color:var(--ink);margin-top:2px}\r\n\r\n\/* ============ \u6a21\u6001\u6846 ============ *\/\r\n.modal-mask{\r\n  position:fixed;inset:0;background:rgba(30,10,10,.7);\r\n  display:none;align-items:center;justify-content:center;z-index:100;\r\n  padding:20px;backdrop-filter:blur(3px);\r\n}\r\n.modal-mask.show{display:flex;animation:fade .25s}\r\n.modal{\r\n  background:var(--paper);border:6px solid var(--rojo);\r\n  max-width:460px;width:100%;\r\n  border-radius:8px;overflow:hidden;\r\n  box-shadow:0 20px 50px rgba(0,0,0,.5);\r\n  animation:pop .3s cubic-bezier(.3,1.3,.5,1);\r\n  position:relative;\r\n}\r\n@keyframes pop{from{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}\r\n.modal-head{\r\n  background:var(--rojo);color:#fff;padding:22px 24px 18px;\r\n  display:flex;gap:16px;align-items:center;position:relative;\r\n  border-bottom:4px solid var(--oro);\r\n}\r\n.modal-head .avatar{\r\n  width:62px;height:62px;border-radius:50%;overflow:hidden;\r\n  background:#fff;color:var(--rojo-dark);\r\n  display:flex;align-items:center;justify-content:center;\r\n  font-size:26px;font-weight:700;flex-shrink:0;\r\n  border:3px solid var(--oro);\r\n}\r\n.modal-head .avatar img{width:100%;height:100%;object-fit:cover}\r\n.modal-head .h-info{flex:1}\r\n.modal-head .h-en{font-size:21px;font-weight:700;letter-spacing:.02em}\r\n.modal-head .h-zh{font-size:13px;color:#f6dfe0;margin-top:2px}\r\n.modal-head .h-num{font-size:11px;color:var(--oro-soft);letter-spacing:.18em;margin-top:4px;text-transform:uppercase}\r\n.modal-close{\r\n  position:absolute;top:10px;right:12px;\r\n  width:30px;height:30px;border-radius:50%;\r\n  background:rgba(255,255,255,.15);color:#fff;font-size:20px;\r\n  display:flex;align-items:center;justify-content:center;\r\n}\r\n.modal-close:hover{background:var(--rojo-dark)}\r\n.modal-body{padding:22px 24px 26px}\r\n.modal-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px dashed var(--line);font-size:14px}\r\n.modal-row .k{color:#888;font-size:12px;letter-spacing:.1em;text-transform:uppercase}\r\n.modal-row .v{color:var(--rojo-dark);font-weight:700;text-align:right}\r\n.rating-big{\r\n  font-size:42px;color:var(--rojo);font-weight:700;font-family:Georgia,serif;line-height:1;\r\n}\r\n.rating-big small{font-size:14px;color:#999}\r\n.rating-pct{margin:6px 0 4px}\r\n.bio{margin-top:14px;font-size:14px;color:#444;line-height:1.7;background:var(--cream);padding:14px;border-left:3px solid var(--oro)}\r\n.bio b{color:var(--rojo-dark)}\r\n\r\n\/* \u9875\u811a *\/\r\nfooter{\r\n  text-align:center;padding:26px 20px;color:#777;font-size:12px;\r\n  border-top:1px solid var(--line);background:var(--cream);\r\n  letter-spacing:.06em;\r\n}\r\nfooter b{color:var(--rojo-dark)}\r\n\r\n\/* ============ \u4e16\u754c\u676f\u8bf4\u660e ============ *\/\r\n.wc-intro{max-width:1080px;margin:0 auto;padding:30px 22px 0}\r\n.wc-card{\r\n  background:linear-gradient(135deg,#fff 0%,var(--cream) 100%);\r\n  border:1px solid var(--line);\r\n  border-top:5px solid var(--rojo);\r\n  padding:26px 28px 24px;position:relative;\r\n  box-shadow:0 2px 0 rgba(198,11,30,.06);\r\n}\r\n.wc-badge{\r\n  position:absolute;top:-14px;right:22px;\r\n  background:var(--rojo);color:#fff;\r\n  font-size:11px;letter-spacing:.2em;font-weight:700;\r\n  padding:4px 14px;border-radius:3px;\r\n  border:1px solid var(--oro);\r\n}\r\n.wc-card h2{\r\n  color:var(--rojo-dark);font-size:21px;margin-bottom:8px;\r\n}\r\n.wc-card .lead{font-size:15.5px;color:#333;margin:8px 0 14px}\r\n.wc-card .lead b{color:var(--rojo)}\r\n.wc-hosts{\r\n  display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0;\r\n}\r\n.host{\r\n  text-align:center;padding:12px 8px;background:#fff;border:1px solid var(--line);\r\n  border-radius:4px;\r\n}\r\n.host .flag{font-size:28px;display:block;margin-bottom:4px}\r\n.host b{display:block;color:var(--rojo-dark);font-size:14px}\r\n.host small{color:#999;font-size:11px}\r\n\r\n\/* \u9192\u76ee\u805a\u7126\u6761\uff1a\u897f\u73ed\u7259 *\/\r\n.focus-banner{\r\n  margin-top:16px;\r\n  background:linear-gradient(135deg,var(--rojo-dark) 0%,var(--rojo) 60%,var(--rojo-2) 100%);\r\n  border:2px solid var(--oro);\r\n  border-radius:8px;\r\n  padding:22px 24px;\r\n  display:flex;justify-content:space-between;align-items:center;gap:18px;\r\n  box-shadow:0 6px 20px rgba(198,11,30,.3);\r\n  position:relative;overflow:hidden;\r\n}\r\n.focus-banner::before{\r\n  content:\"\ud83d\udc02\";position:absolute;right:-10px;bottom:-30px;\r\n  font-size:130px;opacity:.10;\r\n}\r\n.focus-left{display:flex;align-items:center;gap:18px;position:relative;z-index:1}\r\n.focus-flag{\r\n  font-size:42px;line-height:1;\r\n  background:rgba(255,255,255,.12);border-radius:50%;\r\n  width:74px;height:74px;display:flex;align-items:center;justify-content:center;\r\n  border:2px solid var(--oro);flex-shrink:0;overflow:hidden;\r\n}\r\n.focus-flag .bars{width:46px;height:46px;border-radius:50%;overflow:hidden;display:flex;flex-direction:column}\r\n.focus-flag .bars i{display:block;width:100%}\r\n.focus-flag .bars i:nth-child(1){height:25%;background:var(--rojo)}\r\n.focus-flag .bars i:nth-child(2){height:50%;background:var(--amarillo)}\r\n.focus-flag .bars i:nth-child(3){height:25%;background:var(--rojo)}\r\n.focus-kicker{\r\n  color:var(--oro-soft);font-size:11px;letter-spacing:.22em;\r\n  font-weight:700;text-transform:uppercase;margin-bottom:4px;\r\n}\r\n.focus-name{\r\n  color:#fff;font-size:30px;font-weight:700;line-height:1;letter-spacing:.04em;\r\n}\r\n.focus-name span{\r\n  color:#fff;font-size:18px;font-style:italic;font-weight:400;\r\n  margin-left:8px;opacity:.85;letter-spacing:.1em;\r\n}\r\n.focus-desc{\r\n  color:#f6dfe0;font-size:13px;margin-top:6px;max-width:480px;line-height:1.5;\r\n}\r\n.focus-right{display:flex;gap:14px;position:relative;z-index:1;flex-shrink:0}\r\n.focus-stat{\r\n  text-align:center;background:rgba(255,255,255,.1);\r\n  border:1px solid rgba(255,255,255,.2);border-radius:6px;\r\n  padding:10px 14px;min-width:78px;\r\n}\r\n.focus-stat b{display:block;color:#fff;font-size:22px;line-height:1}\r\n.focus-stat small{color:var(--oro-soft);font-size:10px;letter-spacing:.08em;text-transform:uppercase;display:block;margin-top:4px}\r\n\r\n\/* ============ \u5386\u53f2\u6c89\u6d6e\u65f6\u95f4\u7ebf ============ *\/\r\n.saga{\r\n  margin-top:24px;padding-top:22px;border-top:2px double var(--line);\r\n}\r\n.saga h3{\r\n  color:var(--rojo-dark);font-size:19px;margin-bottom:8px;\r\n  display:flex;align-items:center;gap:8px;flex-wrap:wrap;\r\n}\r\n.saga-intro{font-size:14px;color:#666;font-style:italic;margin-bottom:18px}\r\n.saga-timeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}\r\n.saga-era{\r\n  display:flex;flex-direction:column;gap:8px;align-items:flex-start;\r\n  padding:14px 16px;border-radius:6px;border:1px solid var(--line);background:#fff;\r\n}\r\n.saga-era.peak{border-left:4px solid var(--oro)}\r\n.saga-era.valley{border-left:4px solid #8a94a8;opacity:.96}\r\n.era-tag{font-size:11px;font-weight:700;letter-spacing:.08em;color:#fff;padding:3px 8px;border-radius:3px;text-align:center;background:var(--rojo-dark)}\r\n.saga-era.peak .era-tag{background:var(--rojo)}\r\n.saga-era.valley .era-tag{background:#6a7588}\r\n.era-title{font-size:14.5px;color:var(--rojo-dark);font-weight:700;margin-bottom:4px}\r\n.era-desc{font-size:13px;color:#555;line-height:1.55}\r\n.saga-style{\r\n  margin-top:18px;display:flex;align-items:center;flex-wrap:wrap;gap:8px;\r\n  padding:12px 14px;background:var(--cream-2);border-radius:6px;\r\n}\r\n.style-label{font-size:12px;color:#888;letter-spacing:.1em;text-transform:uppercase;font-weight:700}\r\n.style-tag{\r\n  font-size:12px;color:var(--rojo-dark);font-weight:600;\r\n  background:#fff;border:1px solid var(--rojo);\r\n  padding:4px 12px;border-radius:20px;\r\n}\r\n\r\n\/* ============ \u5386\u53f2\u4f20\u5947\u7403\u661f\u5899 ============ *\/\r\n.legends-card{\r\n  background:var(--cream);\r\n  border:1px solid var(--line);\r\n  border-top:4px double var(--rojo);\r\n  padding:28px 28px 30px;\r\n  box-shadow:0 2px 0 rgba(198,11,30,.06);\r\n}\r\n.legends-head h2{\r\n  color:var(--rojo-dark);font-size:23px;letter-spacing:.05em;\r\n  border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:6px;\r\n  display:flex;align-items:center;gap:10px;\r\n}\r\n.legends-head h2::before{content:\"\u2756\";color:var(--oro);font-size:24px}\r\n.legends-sub{font-size:13.5px;color:#666;font-style:italic;margin-bottom:18px}\r\n.legends-grid{\r\n  display:flex;gap:14px;overflow-x:auto;padding:4px 4px 14px;\r\n  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;\r\n}\r\n.legends-grid::-webkit-scrollbar{height:8px}\r\n.legends-grid::-webkit-scrollbar-track{background:var(--cream-2);border-radius:4px}\r\n.legends-grid::-webkit-scrollbar-thumb{background:var(--rojo);border-radius:4px}\r\n.legend{flex:0 0 170px;scroll-snap-align:start}\r\n.legend{\r\n  background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;\r\n  transition:transform .18s,box-shadow .18s;cursor:default;\r\n}\r\n.legend:hover{transform:translateY(-3px);box-shadow:0 8px 18px rgba(198,11,30,.15)}\r\n.legend .photo{\r\n  width:100%;aspect-ratio:1;\r\n  display:flex;align-items:center;justify-content:center;\r\n  position:relative;\r\n  border-bottom:3px solid var(--oro);\r\n}\r\n.legend .photo img{width:100%;height:100%;object-fit:cover;object-position:center 20%}\r\n.ph-fallback{\r\n  position:absolute;inset:0;\r\n  display:flex;flex-direction:column;align-items:center;justify-content:center;\r\n  gap:4px;color:#fff;\r\n}\r\n.ph-initials{\r\n  font-family:Georgia,serif;font-size:38px;font-weight:700;letter-spacing:.04em;\r\n  color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.4);\r\n  border:2px solid rgba(255,255,255,.4);border-radius:50%;\r\n  width:64px;height:64px;display:flex;align-items:center;justify-content:center;\r\n  background:rgba(255,255,255,.08);\r\n}\r\n.ph-icon{font-size:22px;opacity:.9}\r\n.legend .photo .era{\r\n  position:absolute;top:6px;left:6px;\r\n  background:var(--rojo);color:#fff;font-size:10px;font-weight:700;\r\n  padding:2px 6px;border-radius:2px;letter-spacing:.05em;z-index:2;\r\n}\r\n.legend .lbody{padding:10px 12px 12px}\r\n.legend .lname{font-size:14px;color:var(--rojo-dark);font-weight:700;line-height:1.25}\r\n.legend .lnamezh{font-size:12px;color:#888;margin-top:2px}\r\n.legend .ltag{\r\n  display:inline-block;font-size:10px;font-weight:700;\r\n  background:var(--rojo-dark);color:#fff;padding:2px 7px;border-radius:3px;\r\n  letter-spacing:.05em;margin-top:8px;\r\n}\r\n.legend .lstat{font-size:11px;color:#666;margin-top:6px;line-height:1.5}\r\n.legend .lstat b{color:var(--rojo)}\r\n.legend .lnote{font-size:11.5px;color:#555;margin-top:6px;line-height:1.55;font-style:italic}\r\n\r\n\/* \u7403\u5458\u5bf9\u6bd4\uff1a\u4f4d\u7f6e\u7ec4\u9009\u62e9\u6761 *\/\r\n.vs-group-bar{\r\n  background:var(--cream);border:1px solid var(--line);\r\n  border-left:4px solid var(--rojo);\r\n  padding:14px 16px;border-radius:6px;\r\n}\r\n.vs-group-label{\r\n  display:block;font-size:11px;letter-spacing:.16em;color:#6a6a6a;\r\n  text-transform:uppercase;font-weight:700;margin-bottom:10px;\r\n}\r\n.vs-group-btns{display:flex;gap:8px;flex-wrap:wrap}\r\n.vgbtn{\r\n  padding:8px 16px;background:#fff;border:1.5px solid var(--line);\r\n  color:#555;font-weight:700;letter-spacing:.06em;border-radius:4px;font-size:13px;\r\n  transition:all .15s;\r\n}\r\n.vgbtn:hover{border-color:var(--rojo);color:var(--rojo-dark)}\r\n.vgbtn.on{background:var(--rojo);color:#fff;border-color:var(--rojo)}\r\n.vs-group-tip{\r\n  margin-top:10px;font-size:12px;color:#888;font-style:italic;\r\n}\r\n\r\n\/* ============ \u9876\u90e8\u5feb\u901f\u5bfc\u822a ============ *\/\r\n.topnav{\r\n  position:fixed;top:0;left:0;right:0;z-index:200;\r\n  display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;\r\n  background:var(--rojo);padding:9px 14px;\r\n  border-bottom:3px solid var(--oro);\r\n  box-shadow:0 2px 10px rgba(0,0,0,.35);\r\n  -webkit-overflow-scrolling:touch;\r\n}\r\nbody{padding-top:54px}\r\n.topnav::-webkit-scrollbar{height:5px}\r\n.topnav::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.5);border-radius:3px}\r\n.topnav a{\r\n  flex:0 0 auto;color:#f6dfe0;text-decoration:none;font-size:13px;\r\n  padding:6px 13px;border-radius:20px;white-space:nowrap;\r\n  transition:all .15s;font-weight:600;letter-spacing:.02em;\r\n}\r\n.topnav a:hover{background:rgba(255,255,255,.15);color:#fff}\r\n.topnav a:active{background:var(--rojo-dark);color:#fff}\r\n\r\n\/* \u54cd\u5e94\u5f0f *\/\r\n@media(max-width:680px){\r\n  .vs-pickers{grid-template-columns:1fr;gap:10px}\r\n  .vs-badge{margin:0 auto}\r\n  .vs-result{grid-template-columns:1fr}\r\n  .vs-col.left{border-right:none;border-bottom:1px dashed var(--line);text-align:left;align-items:flex-start}\r\n  .vs-mid{flex-direction:row;padding:10px}\r\n  .marker{width:44px}\r\n  .marker .dot{width:38px;height:38px;font-size:15px}\r\n  .marker .pname{font-size:9px;max-width:60px}\r\n  .tabs{flex-wrap:nowrap;border-bottom:none}\r\n  .tab{\r\n    flex:1 1 0;margin-right:0;\r\n    padding:12px 4px;\r\n    font-size:11px;letter-spacing:.06em;\r\n    border-radius:0;border:1px solid var(--line);\r\n    display:flex;align-items:center;justify-content:center;text-align:center;\r\n    line-height:1.3;\r\n  }\r\n  .tab:not(:last-child){border-right:none}\r\n  .tab.active::after{display:none}\r\n  .tab.active{border-color:var(--rojo)}\r\n  .tab br{display:none}\r\n  .wc-hosts{grid-template-columns:1fr 1fr 1fr;gap:8px}\r\n  .host{padding:8px 4px}\r\n  .host .flag{font-size:22px}\r\n  .legends-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}\r\n  .legend .photo{font-size:36px}\r\n  .wc-card,.legends-card{padding:20px 16px}\r\n  .focus-banner{flex-direction:column;align-items:flex-start;gap:14px;padding:18px}\r\n  .focus-name{font-size:24px}\r\n  .focus-right{width:100%;justify-content:flex-start}\r\n  .saga-era{grid-template-columns:1fr;gap:6px}\r\n  .era-tag{align-self:flex-start;display:inline-block;width:auto}\r\n  .topnav a{font-size:12px;padding:5px 10px}\r\n  .legend{flex-basis:150px}\r\n}\r\n<\/style>\r\n<\/head>\r\n<body>\r\n\r\n<!-- ===== \u9876\u90e8\u6a2a\u5e45 ===== -->\r\n<header class=\"banner\">\r\n  <div class=\"crest\" title=\"Bandera de Espa\u00f1a\">\r\n    <div class=\"bars\"><i><\/i><i><\/i><i><\/i><\/div>\r\n  <\/div>\r\n  <h1>\u897f\u73ed\u7259 <span class=\"en-name\">Espa\u00f1a<\/span><\/h1>\r\n  <div class=\"sub\">LA ROJA \u00b7 \u6597\u725b\u58eb\u519b\u56e2<\/div>\r\n  <div class=\"sub2\">2026 FIFA World Cup Squad \u00b7 \u56fd\u5bb6\u961f\u9635\u5bb9<\/div>\r\n  <div class=\"manager\">Head Coach \u00b7 <b>Luis de la Fuente<\/b> \u00b7 \u4e3b\u6559\u7ec3 \u8def\u6613\u65af\u00b7\u5fb7\u62c9\u5bcc\u6069\u7279<\/div>\r\n<\/header>\r\n\r\n<!-- ===== \u5feb\u901f\u5bfc\u822a ===== -->\r\n<nav class=\"topnav\" id=\"topnav\">\r\n  <a href=\"#sec-intro\">\u8d5b\u4e8b\u4ecb\u7ecd<\/a>\r\n  <a href=\"#sec-about\">\u7403\u961f\u4ecb\u7ecd<\/a>\r\n  <a href=\"#sec-saga\">\u98ce\u683c\u6c89\u6d6e<\/a>\r\n  <a href=\"#sec-legends\">\u767e\u5e74\u4f20\u5947<\/a>\r\n  <a href=\"#sec-pitch\">\u9635\u578b\u56fe<\/a>\r\n  <a href=\"#sec-squad\">\u9635\u5bb9\u540d\u5355<\/a>\r\n  <a href=\"#sec-vs\">\u7403\u5458\u5bf9\u6bd4<\/a>\r\n<\/nav>\r\n\r\n<!-- ===== \u4e16\u754c\u676f\u8bf4\u660e ===== -->\r\n<section class=\"wc-intro\" id=\"sec-intro\">\r\n  <div class=\"wc-card\">\r\n    <div class=\"wc-badge\">2026 \u00b7 FIFA WORLD CUP<\/div>\r\n    <h2>\u5173\u4e8e2026\u5e74\u4e16\u754c\u676f About World Cup 2026<\/h2>\r\n    <p class=\"lead\">\r\n      <b>2026 \u5e74\u7f8e\u52a0\u58a8\u4e16\u754c\u676f\uff08FIFA World Cup 2026\uff09<\/b>\u662f\u5386\u53f2\u4e0a\u7b2c\u4e00\u5c4a\u7531\u4e09\u56fd\u8054\u5408\u4e3e\u529e\u3001\u4e14\u6269\u519b\u81f3 <b>48 \u652f\u7403\u961f<\/b>\u7684\u4e16\u754c\u676f\u3002\r\n    <\/p>\r\n    <div class=\"wc-hosts\">\r\n      <div class=\"host\"><span class=\"flag\">\ud83c\uddfa\ud83c\uddf8<\/span><b>\u7f8e\u56fd USA<\/b><small>11 \u5ea7\u573a\u9986<\/small><\/div>\r\n      <div class=\"host\"><span class=\"flag\">\ud83c\udde8\ud83c\udde6<\/span><b>\u52a0\u62ff\u5927 Canada<\/b><small>2 \u5ea7\u573a\u9986<\/small><\/div>\r\n      <div class=\"host\"><span class=\"flag\">\ud83c\uddf2\ud83c\uddfd<\/span><b>\u58a8\u897f\u54e5 Mexico<\/b><small>3 \u5ea7\u573a\u9986<\/small><\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- \u9192\u76ee\u805a\u7126\u6761\uff1a\u897f\u73ed\u7259 -->\r\n  <div class=\"focus-banner\">\r\n    <div class=\"focus-left\">\r\n      <div class=\"focus-flag\"><div class=\"bars\"><i><\/i><i><\/i><i><\/i><\/div><\/div>\r\n      <div class=\"focus-text\">\r\n        <div class=\"focus-kicker\">\u672c\u9875\u805a\u7126\u7403\u961f \u00b7 FOCUS TEAM<\/div>\r\n        <div class=\"focus-name\">\u897f\u73ed\u7259 <span>ESPA\u00d1A<\/span><\/div>\r\n        <div class=\"focus-desc\">\u6597\u725b\u58eb\u519b\u56e2 \u00b7 2026 \u4e16\u754c\u676f\u593a\u51a0\u5927\u70ed\u95e8\uff0c\u7531\u5fb7\u62c9\u5bcc\u6069\u7279\u6267\u6559\uff0c\u9635\u4e2d\u62e5\u6709\u4e9a\u9a6c\u5c14\u3001\u5a01\u5ec9\u59c6\u65af\u3001\u7f57\u5fb7\u91cc\u3001\u4f69\u5fb7\u91cc\u7b49\u8d85\u7ea7\u5de8\u661f<\/div>\r\n      <\/div>\r\n    <\/div>\r\n    <div class=\"focus-right\">\r\n      <div class=\"focus-stat\"><b>2010<\/b><small>\u4e16\u754c\u676f\u51a0\u519b<\/small><\/div>\r\n      <div class=\"focus-stat\"><b>No.2<\/b><small>\u4e16\u754c\u6392\u540d<\/small><\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- ===== \u7403\u961f\u4ecb\u7ecd ===== -->\r\n<section class=\"about\" id=\"sec-about\">\r\n  <div class=\"about-card\">\r\n    <h2>\u5173\u4e8e\u6597\u725b\u58eb\u519b\u56e2 About La Roja<\/h2>\r\n    <p class=\"lead\">\r\n      <b>\u897f\u73ed\u7259\u56fd\u5bb6\u8db3\u7403\u961f\uff08Spain National Football Team\uff09<\/b>\uff0c\u6635\u79f0\"<b>La Roja\uff08\u7ea2\u8272\uff09<\/b>\"\uff0c\u4e5f\u88ab\u79f0\u4f5c\"<b>La Furia Espa\u00f1ola\uff08\u897f\u73ed\u7259\u72c2\u6012\uff09<\/b>\"\uff0c\u4e2d\u6587\u4e16\u754c\u5e38\u79f0\"<b>\u6597\u725b\u58eb\u519b\u56e2<\/b>\"\u3002\u7403\u961f\u7531<b>\u7687\u5bb6\u897f\u73ed\u7259\u8db3\u7403\u8054\u5408\u4f1a\uff08RFEF\uff09<\/b>\u7ba1\u7406\uff0c\u6210\u7acb\u4e8e1913\u5e74\u3002\u7ea2\u8272\u7403\u8863\u4e0e\u6597\u725b\u58eb\u7684\u52c7\u731b\uff0c\u8c61\u5f81\u8fd9\u652f\u6280\u672f\u6d41\u7403\u961f\u7684\u767e\u5e74\u8363\u5149\u3002\r\n    <\/p>\r\n    <p>\r\n      \u897f\u73ed\u7259\u662f<b>21\u4e16\u7eaa\u6700\u6210\u529f\u7684\u6b27\u6d32\u56fd\u5bb6\u961f<\/b>\uff0c2008\u20132012\u5e74\u8fde\u7eed\u593a\u5f97\u6b27\u6d32\u676f-\u4e16\u754c\u676f-\u6b27\u6d32\u676f\u4e09\u5ea7\u5927\u8d5b\u51a0\u519b\uff0c\u53f2\u65e0\u524d\u4f8b\u3002\u4e3b\u573a\u4e0d\u56fa\u5b9a\uff0c\u5168\u56fd\u5de1\u56de\u4f5c\u8d5b\uff0c\u6700\u5e38\u4f7f\u7528\u9a6c\u5fb7\u91cc\u7684<b>\u4f2f\u7eb3\u4e4c\u7403\u573a\uff08Santiago Bernab\u00e9u\uff09<\/b>\u3002\u5982\u4eca\u7403\u961f\u7531<b>\u5fb7\u62c9\u5bcc\u6069\u7279<\/b>\u6267\u6559\uff0c\u5e26\u77402024\u6b27\u6d32\u676f\u51a0\u519b\u7684\u4f59\u5a01\uff0c\u5251\u63072026\u7f8e\u52a0\u58a8\u4e16\u754c\u676f\u3002\r\n    <\/p>\r\n\r\n    <div class=\"honors\">\r\n      <div class=\"honor\">\r\n        <div class=\"t\">FIFA World Cup \u4e16\u754c\u676f<\/div>\r\n        <div class=\"v\">2010 \u51a0\u519b <small>\ud83c\udfc6 \u552f\u4e00\u4e00\u6b21 \u00b7 \u51b3\u8d5b 1\u20130 \u8377\u5170\uff08\u4f0a\u6d85\u65af\u5854\u52a0\u65f6\u7edd\u6740\uff09<\/small><\/div>\r\n      <\/div>\r\n      <div class=\"honor\">\r\n        <div class=\"t\">UEFA Euro \u6b27\u6d32\u676f<\/div>\r\n        <div class=\"v\">\u51a0\u519b \u00d74 <small>\ud83c\udfc6 \u5386\u53f2\u6700\u591a \u00b7 1964 \u00b7 2008 \u00b7 2012 \u00b7 2024<\/small><\/div>\r\n      <\/div>\r\n      <div class=\"honor\">\r\n        <div class=\"t\">Nations League \u6b27\u56fd\u8054<\/div>\r\n        <div class=\"v\">2023 \u51a0\u519b <small>\ud83c\udfc6 \u51b3\u8d5b\u70b9\u7403\u80dc\u514b\u7f57\u5730\u4e9a<\/small><\/div>\r\n      <\/div>\r\n      <div class=\"honor\">\r\n        <div class=\"t\">FIFA Ranking \u4e16\u754c\u6392\u540d<\/div>\r\n        <div class=\"v\">\u4e16\u754c\u7b2c 2 <small>\u66fe\u8fde\u7eed6\u5e74\u5e74\u7ec8\u7b2c\u4e00<\/small><\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <span id=\"sec-saga\" style=\"display:block\"><\/span>\r\n    <!-- \u5386\u53f2\u98ce\u683c\u4e0e\u6c89\u6d6e -->\r\n    <div class=\"saga\">\r\n      <h3>\u51e0\u7ecf\u6c89\u6d6e \u00b7 \u7403\u961f\u98ce\u683c\u4e0e\u547d\u8fd0 A Century of Highs and Lows<\/h3>\r\n      <p class=\"saga-intro\">\r\n        \u4ece\"\u6c38\u8fdc\u7684\u9884\u9009\u8d5b\u4e4b\u738b\"\u5230\u9ec4\u91d1\u4e00\u4ee3\u4e09\u8fde\u51a0\uff0c\u518d\u5230\u738b\u671d\u5d29\u584c\u4e0e\u51e4\u51f0\u6d85\u69c3 \u2014\u2014 \u897f\u73ed\u7259\u7684\u6545\u4e8b\uff0c\u662f\u4e00\u90e8\u6280\u672f\u4e0e\u547d\u8fd0\u4ea4\u7ec7\u7684\u53f2\u8bd7\u3002\r\n      <\/p>\r\n      <div class=\"saga-timeline\">\r\n        <div class=\"saga-era valley\">\r\n          <div class=\"era-tag\">1920\u20132006 \u00b7 \u6f2b\u957f\u7b49\u5f85<\/div>\r\n          <div class=\"era-title\">\ud83e\udd40 \u9884\u9009\u8d5b\u4e4b\u738b<\/div>\r\n          <div class=\"era-desc\">\u7a7a\u6709\u8c6a\u534e\u9635\u5bb9\u5374\u5c61\u5c61\u6298\u621f\u6dd8\u6c70\u8d5b\uff0c\u88ab\u8bbd\"\u9884\u9009\u8d5b\u4e4b\u738b\u3001\u6b63\u8d5b\u8f6f\u811a\u867e\"\u3002\u8fd1\u4e00\u4e2a\u4e16\u7eaa\u91cc\u4ec5\u67091964\u672c\u571f\u6b27\u6d32\u676f\u4e00\u51a0\uff0c\u59cb\u7ec8\u4e0e\u5927\u8d5b\u8363\u8a89\u64e6\u80a9\u3002<\/div>\r\n        <\/div>\r\n        <div class=\"saga-era peak\">\r\n          <div class=\"era-tag\">2008\u20132012 \u00b7 \u5dc5\u5cf0<\/div>\r\n          <div class=\"era-title\">\ud83c\udfc6 \u9ec4\u91d1\u4e00\u4ee3\u4e09\u8fde\u51a0<\/div>\r\n          <div class=\"era-desc\">2008\u6b27\u6d32\u676f \u2192 2010\u4e16\u754c\u676f \u2192 2012\u6b27\u6d32\u676f\uff0c\u53f2\u65e0\u524d\u4f8b\u7684\u4e09\u8fde\u51a0\u3002\u54c8\u7ef4\u3001\u4f0a\u6d85\u65af\u5854\u3001\u5361\u897f\u5229\u4e9a\u65af\u5c06tiki-taka\u63a8\u5411\u4e16\u754c\u4e4b\u5dc5\u3002<\/div>\r\n        <\/div>\r\n        <div class=\"saga-era valley\">\r\n          <div class=\"era-tag\">2014\u20132018 \u00b7 \u4f4e\u8c37<\/div>\r\n          <div class=\"era-title\">\ud83c\udf27\ufe0f \u738b\u671d\u5d29\u584c<\/div>\r\n          <div class=\"era-desc\">\u536b\u5195\u51a0\u519b2014\u5e74\u5df4\u897f\u4e16\u754c\u676f\u5c0f\u7ec4\u51fa\u5c40\uff081\u20135\u60e8\u8d25\u8377\u5170\uff09\uff0c2018\u5e74\u4fc4\u7f57\u65af\u6b62\u6b6516\u5f3a\u3002\u9ec4\u91d1\u4e00\u4ee3\u8001\u53bb\uff0c\u7403\u961f\u9677\u5165\u6f2b\u957f\u7684\u91cd\u5efa\u671f\u3002<\/div>\r\n        <\/div>\r\n        <div class=\"saga-era peak\">\r\n          <div class=\"era-tag\">2020\u20132024 \u00b7 \u590d\u5174<\/div>\r\n          <div class=\"era-title\">\ud83d\udd25 \u51e4\u51f0\u6d85\u69c3<\/div>\r\n          <div class=\"era-desc\">2020\u6b27\u6d32\u676f\u56db\u5f3a\u30012023\u6b27\u56fd\u8054\u9996\u51a0\u30012024\u6b27\u6d32\u676f\u51b3\u8d5b2\u20131\u529b\u514b\u82f1\u683c\u5170\u767b\u9876\u2014\u2014\u961f\u53f2\u7b2c\u56db\u5ea7\u6b27\u6d32\u676f\uff0c\u8d85\u8d8a\u5fb7\u56fd\u72ec\u5360\u5386\u53f2\u7b2c\u4e00\u3002<\/div>\r\n        <\/div>\r\n        <div class=\"saga-era peak\">\r\n          <div class=\"era-tag\">2026 \u00b7 \u65b0\u9ec4\u91d1\u4e00\u4ee3<\/div>\r\n          <div class=\"era-title\">\ud83c\udf1f \u4e24\u7ffc\u9f50\u98de<\/div>\r\n          <div class=\"era-desc\">18\u5c81\u5929\u624d\u4e9a\u9a6c\u5c14\uff08Lamine Yamal\uff09\u4e0e23\u5c81\u5c3c\u79d1\u00b7\u5a01\u5ec9\u59c6\u65af\u7ec4\u6210\u5f53\u4eca\u8db3\u575b\u6700\u5177\u6740\u4f24\u529b\u7684\u4e24\u7ffc\uff0c\u897f\u73ed\u7259\u4ee5\u65b0\u9ec4\u91d1\u4e00\u4ee3\u4e4b\u59ff\u51b2\u51fb2026\u4e16\u754c\u676f\u3002<\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"saga-style\">\r\n        <span class=\"style-label\">\u4f20\u7edf\u98ce\u683c Style\uff1a<\/span>\r\n        <span class=\"style-tag\">\u63a7\u7403\u4e3a\u738b Possession<\/span>\r\n        <span class=\"style-tag\">Tiki-Taka<\/span>\r\n        <span class=\"style-tag\">\u4f20\u5207\u6e17\u900f<\/span>\r\n        <span class=\"style-tag\">\u6280\u672f\u81f3\u4e0a<\/span>\r\n        <span class=\"style-tag\">\u4e24\u7ffc\u9f50\u98de<\/span>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- ===== \u5386\u53f2\u4f20\u5947\u7403\u661f ===== -->\r\n<section class=\"about\" id=\"sec-legends\">\r\n  <div class=\"legends-card\">\r\n    <div class=\"legends-head\">\r\n      <h2>\u767e\u5e74\u4f20\u5947 Hall of Legends<\/h2>\r\n      <p class=\"legends-sub\">\u4e0d\u61c2\u7403\u4e5f\u6ca1\u5173\u7cfb \u2014\u2014 \u8fd9\u4e9b\u540d\u5b57\u4f60\u4e00\u5b9a\u542c\u8fc7\u3002\u4ed6\u4eec\u5c31\u662f\"\u6597\u725b\u58eb\u519b\u56e2\"\u767e\u5e74\u8363\u5149\u7684\u4ee3\u540d\u8bcd\u3002<\/p>\r\n    <\/div>\r\n    <div class=\"legends-grid\" id=\"legendsGrid\"><\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- ===== Tab \u5bfc\u822a ===== -->\r\n<div class=\"tabs-wrap\">\r\n  <nav class=\"tabs\">\r\n    <button class=\"tab active\" data-tab=\"pitch\">\u26bd \u9635\u578b\u56fe<br>Pitch<\/button>\r\n    <button class=\"tab\" data-tab=\"squad\">\ud83d\udccb \u9635\u5bb9\u540d\u5355<br>Squad<\/button>\r\n    <button class=\"tab\" data-tab=\"vs\">\u2694\ufe0f \u7403\u5458\u5bf9\u6bd4<br>Compare<\/button>\r\n  <\/nav>\r\n<\/div>\r\n\r\n<!-- ===== Tab 1\uff1a\u9635\u578b\u56fe ===== -->\r\n<section class=\"panel active\" id=\"panel-pitch\" data-anchor=\"sec-pitch\">\r\n  <div class=\"formation-bar\">\r\n    <span class=\"label\">Formation \u9635\u578b\uff1a<\/span>\r\n    <button class=\"fbtn on\" data-f=\"433\">4-3-3<span class=\"pos-mini\">GK\u00b74\u00b73\u00b73<\/span><\/button>\r\n    <button class=\"fbtn\" data-f=\"4231\">4-2-3-1<span class=\"pos-mini\">GK\u00b74\u00b72\u00b73\u00b71<\/span><\/button>\r\n    <button class=\"fbtn\" data-f=\"343\">3-4-3<span class=\"pos-mini\">GK\u00b73\u00b74\u00b73<\/span><\/button>\r\n  <\/div>\r\n\r\n  <div class=\"legend\">\r\n    <div class=\"item\"><span class=\"sw\"><\/span>\u666e\u901a\u7403\u5458<\/div>\r\n    <div class=\"item\"><span class=\"sw gold\"><\/span>\u961f\u957f \/ \u9996\u53d1\u6838\u5fc3<\/div>\r\n    <div class=\"item\"><span class=\"sw star\"><\/span>\u5173\u952e\u4f4d\u7f6e<\/div>\r\n    <div class=\"item\" style=\"margin-left:auto;color:#999;font-style:italic\">\ud83d\udc46 \u70b9\u51fb\u7403\u5458\u67e5\u770b\u8be6\u7ec6\u4fe1\u606f<\/div>\r\n  <\/div>\r\n\r\n  <div class=\"pitch-wrap\">\r\n    <div class=\"pitch\" id=\"pitch\">\r\n      <div class=\"penBoxBot\"><\/div><div class=\"penArcBot\"><\/div>\r\n      <div class=\"center-circle\"><\/div><div class=\"center-spot\"><\/div>\r\n      <div class=\"penBoxTop\"><\/div><div class=\"pen-arc-top\"><\/div>\r\n      <!-- \u7403\u5458\u6807\u8bb0\u7531 JS \u6ce8\u5165 -->\r\n    <\/div>\r\n  <\/div>\r\n  <div class=\"pos-gloss\">\r\n    <b>\u4f4d\u7f6e\u7f29\u5199\uff1a<\/b> GK \u95e8\u5c06 \u00b7 CB \u4e2d\u536b \u00b7 LB \u5de6\u540e\u536b \u00b7 RB \u53f3\u540e\u536b \u00b7 CM \u4e2d\u524d\u536b \u00b7 CDM \u540e\u8170 \u00b7 CAM \u524d\u8170 \u00b7 LW \u5de6\u8fb9\u950b \u00b7 RW \u53f3\u8fb9\u950b \u00b7 ST \u524d\u950b\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- ===== Tab 2\uff1a\u9635\u5bb9\u540d\u5355 ===== -->\r\n<section class=\"panel\" id=\"panel-squad\" data-anchor=\"sec-squad\">\r\n  <div class=\"filters\" id=\"filters\">\r\n    <button class=\"filter-btn on\" data-f=\"ALL\">\u5168\u90e8 All<span class=\"cnt\" id=\"c-ALL\"><\/span><\/button>\r\n    <button class=\"filter-btn\" data-f=\"GK\">\u95e8\u5c06 GK<span class=\"cnt\" id=\"c-GK\"><\/span><\/button>\r\n    <button class=\"filter-btn\" data-f=\"DEF\">\u540e\u536b DEF<span class=\"cnt\" id=\"c-DEF\"><\/span><\/button>\r\n    <button class=\"filter-btn\" data-f=\"MID\">\u4e2d\u573a MID<span class=\"cnt\" id=\"c-MID\"><\/span><\/button>\r\n    <button class=\"filter-btn\" data-f=\"FWD\">\u524d\u950b FWD<span class=\"cnt\" id=\"c-FWD\"><\/span><\/button>\r\n  <\/div>\r\n  <div class=\"squad-grid\" id=\"squadGrid\"><\/div>\r\n<\/section>\r\n\r\n<!-- ===== Tab 3\uff1a\u7403\u5458\u5bf9\u6bd4 ===== -->\r\n<section class=\"panel\" id=\"panel-vs\" data-anchor=\"sec-vs\">\r\n  <div class=\"vs-wrap\">\r\n    <div class=\"vs-group-bar\">\r\n      <span class=\"vs-group-label\">\u5bf9\u6bd4\u4f4d\u7f6e Position Group<\/span>\r\n      <div class=\"vs-group-btns\">\r\n        <button class=\"vgbtn\" data-g=\"FWD\">\u524d\u950b FWD<\/button>\r\n        <button class=\"vgbtn on\" data-g=\"MID\">\u4e2d\u573a MID<\/button>\r\n        <button class=\"vgbtn\" data-g=\"DEF\">\u540e\u536b DEF<\/button>\r\n        <button class=\"vgbtn\" data-g=\"GK\">\u95e8\u5c06 GK<\/button>\r\n      <\/div>\r\n      <div class=\"vs-group-tip\" id=\"vsGroupTip\">\u53ea\u80fd\u9009\u62e9\u540c\u4e00\u4f4d\u7f6e\u7c7b\u522b\u7684\u7403\u5458\u8fdb\u884c\u5bf9\u6bd4<\/div>\r\n    <\/div>\r\n    <div class=\"vs-pickers\">\r\n      <div class=\"vs-picker\">\r\n        <label>Player A<\/label>\r\n        <select id=\"selA\"><\/select>\r\n      <\/div>\r\n      <div class=\"vs-badge\">VS<\/div>\r\n      <div class=\"vs-picker\">\r\n        <label>Player B<\/label>\r\n        <select id=\"selB\"><\/select>\r\n      <\/div>\r\n    <\/div>\r\n    <div id=\"vsResult\"><\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- ===== \u6a21\u6001\u6846 ===== -->\r\n<div class=\"modal-mask\" id=\"modalMask\">\r\n  <div class=\"modal\" id=\"modalBox\"><\/div>\r\n<\/div>\r\n\r\n<footer>\r\n  \u6570\u636e\u7efc\u5408\u81ea <b>RFEF \/ ESPN \/ FIFA \/ Transfermarkt<\/b> \u7b49\u516c\u5f00\u6765\u6e90 \u00b7 \u8bc4\u5206\u4ec5\u4f9b\u4e3b\u89c2\u53c2\u8003<br>\r\n  \ud83d\udc02 LA ROJA \u00b7 2026 FIFA World Cup Canada \u00b7 Mexico \u00b7 USA\r\n<\/footer>\r\n\r\n<script>\r\n\/* ============================================================\r\n   \u6570\u636e\u5c42\uff1a26 \u4eba\u5927\u540d\u5355 + \u4f4d\u7f6e + \u8bc4\u5206 + \u7b80\u4ecb\r\n   group: GK \/ DEF \/ MID \/ FWD\r\n   positions: \u7403\u5458\u53ef\u80dc\u4efb\u4f4d\u7f6e\u7684\u7f29\u5199\u6570\u7ec4\r\n============================================================ *\/\r\nconst SQUAD = [\r\n  \/\/ ---------- \u95e8\u5c06 ----------\r\n  {id:'simon', name:'Unai Sim\u00f3n', zh:'\u4e4c\u5948\u00b7\u897f\u8499', number:23, group:'GK',\r\n   positions:['GK'], rating:86, club:'Athletic Club', clubZh:'\u6bd5\u5c14\u5df4\u9102\u7ade\u6280', age:28,\r\n   bio:'2024\u6b27\u6d32\u676f\u593a\u51a0\u4e00\u95e8\u9996\u9009\uff0c\u811a\u4e0b\u51fa\u7403\u51fa\u8272\u3001\u70b9\u7403\u5927\u6218\u7ecf\u9a8c\u4e30\u5bcc\uff0c\u6597\u725b\u58eb\u95e8\u524d\u7684\u5b9a\u6d77\u795e\u9488\u3002'},\r\n  {id:'raya', name:'David Raya', zh:'\u6234\u7ef4\u00b7\u62c9\u4e9a', number:1, group:'GK',\r\n   positions:['GK'], rating:84, club:'Arsenal', clubZh:'\u963f\u68ee\u7eb3', age:30,\r\n   bio:'\u968f\u963f\u68ee\u7eb3\u593a\u5f972025\/26\u82f1\u8d85\u51a0\u519b\uff0c\u6251\u6551\u53cd\u5e94\u795e\u901f\u3001\u51fa\u7403\u80fd\u529b\u51fa\u8272\uff0c\u4e8c\u95e8\u6709\u529b\u7ade\u4e89\u8005\u3002'},\r\n  {id:'joang', name:'Joan Garc\u00eda', zh:'\u970d\u5b89\u00b7\u52a0\u897f\u4e9a', number:13, group:'GK',\r\n   positions:['GK'], rating:79, club:'Barcelona', clubZh:'\u5df4\u585e\u7f57\u90a3', age:25,\r\n   bio:'2025\u5e74\u8f6c\u6295\u5df4\u8428\u7684\u6251\u6551\u4e13\u5bb6\uff0c\u897f\u7532\u6d8c\u73b0\u7684\u73b0\u4ee3\u578b\u95e8\u5c06\uff0c\u672c\u5c4a\u9996\u6b21\u5165\u9009\u5927\u8d5b\u540d\u5355\u3002'},\r\n\r\n  \/\/ ---------- \u540e\u536b ----------\r\n  {id:'porro', name:'Pedro Porro', zh:'\u4f69\u5fb7\u7f57\u00b7\u6ce2\u7f57', number:12, group:'DEF',\r\n   positions:['RB'], rating:82, club:'Tottenham', clubZh:'\u6258\u7279\u7eb3\u59c6\u70ed\u523a', age:26,\r\n   bio:'\u82f1\u8d85\u653b\u51fb\u578b\u53f3\u540e\u536b\uff0c\u524d\u63d2\u4f20\u4e2d\u3001\u521b\u9020\u529b\u5341\u8db3\uff0c\u662f\u53f3\u8def\u9996\u53d1\u7684\u91cd\u8981\u7ade\u4e89\u8005\u3002'},\r\n  {id:'llorente', name:'Marcos Llorente', zh:'\u9a6c\u79d1\u65af\u00b7\u7565\u4f26\u7279', number:5, group:'DEF',\r\n   positions:['RB','CDM','CM'], rating:82, club:'Atl\u00e9tico Madrid', clubZh:'\u9a6c\u5fb7\u91cc\u7ade\u6280', age:30,\r\n   bio:'\u4f53\u80fd\u602a\u517d\u578b\u4e07\u91d1\u6cb9\uff0c\u53ef\u6253\u53f3\u540e\u536b\u3001\u540e\u8170\u3001\u4e2d\u573a\uff0c\u5927\u8d5b\u7ecf\u9a8c\u4e30\u5bcc\uff0c\u5fb7\u62c9\u5bcc\u6069\u7279\u7684\u6218\u672f\u591a\u9762\u624b\u3002'},\r\n  {id:'pubill', name:'Marc Pubill', zh:'\u9a6c\u514b\u00b7\u666e\u6bd4\u5c14', number:2, group:'DEF',\r\n   positions:['RB'], rating:76, club:'Atl\u00e9tico Madrid', clubZh:'\u9a6c\u5fb7\u91cc\u7ade\u6280', age:24,\r\n   bio:'\u4f53\u80fd\u5145\u6c9b\u3001\u653b\u51fb\u6027\u5f3a\u7684\u53f3\u540e\u536b\uff0c\u897f\u73ed\u7259U21\/U23\u5e38\u5ba2\uff0c\u672c\u5c4a\u5927\u8d5b\u65b0\u4eba\u3002'},\r\n  {id:'cubarsi', name:'Pau Cubars\u00ed', zh:'\u4fdd\u00b7\u5e93\u5df4\u5c14\u897f', number:22, group:'DEF',\r\n   positions:['CB'], rating:83, club:'Barcelona', clubZh:'\u5df4\u585e\u7f57\u90a3', age:19, star:true,\r\n   bio:'\u5929\u624d\u578b\u5c11\u5e74\u4e2d\u536b\uff0c\u4ec519\u5c81\u5df2\u662f\u5df4\u8428\u548c\u897f\u73ed\u7259\u540e\u9632\u6838\u5fc3\uff0c\u51fa\u7403\u3001\u5361\u4f4d\u3001\u9605\u8bfb\u6bd4\u8d5b\u8d85\u9f84\u6210\u719f\u3002'},\r\n  {id:'laporte', name:'Aymeric Laporte', zh:'\u827e\u6885\u91cc\u514b\u00b7\u62c9\u6ce2\u5c14\u7279', number:14, group:'DEF',\r\n   positions:['CB'], rating:83, club:'Al Nassr', clubZh:'\u5229\u96c5\u5f97\u80dc\u5229', age:31,\r\n   bio:'\u7ecf\u9a8c\u4e30\u5bcc\u7684\u5de6\u811a\u4e2d\u536b\uff0c2024\u6b27\u6d32\u676f\u593a\u51a0\u529f\u81e3\uff0c\u51fa\u7403\u4e0e\u9632\u7a7a\u4ff1\u4f73\uff0c\u66f4\u8863\u5ba4\u9886\u8896\u3002'},\r\n  {id:'lenormand', name:'Robin Le Normand', zh:'\u7f57\u73ed\u00b7\u52d2\u8bfa\u5c14\u8292', number:4, group:'DEF',\r\n   positions:['CB'], rating:82, club:'Atl\u00e9tico Madrid', clubZh:'\u9a6c\u5fb7\u91cc\u7ade\u6280', age:29,\r\n   bio:'\u8eab\u4f53\u5f3a\u58ee\u7684\u7269\u7406\u578b\u4e2d\u536b\uff0c\u9632\u7a7a\u3001\u5bf9\u6297\u9876\u7ea7\uff0c2024\u6b27\u6d32\u676f\u4e3b\u529b\uff0c\u5e26\u6765\u786c\u5ea6\u4e0e\u7a33\u5b9a\u3002'},\r\n  {id:'egarcia', name:'Eric Garc\u00eda', zh:'\u57c3\u91cc\u514b\u00b7\u52a0\u897f\u4e9a', number:3, group:'DEF',\r\n   positions:['CB'], rating:78, club:'Barcelona', clubZh:'\u5df4\u585e\u7f57\u90a3', age:25,\r\n   bio:'\u51fa\u7403\u578b\u4e2d\u536b\uff0c\u4f20\u7403\u3001\u7ec4\u7ec7\u80fd\u529b\u51fa\u8272\uff0c\u91cd\u56de\u5df4\u8428\u540e\u72b6\u6001\u56de\u5347\uff0c\u540e\u9632\u8f6e\u6362\u4eba\u9009\u3002'},\r\n  {id:'grimaldo', name:'Alejandro Grimaldo', zh:'\u4e9a\u5386\u676d\u5fb7\u7f57\u00b7\u683c\u91cc\u9a6c\u5c14\u591a', number:6, group:'DEF',\r\n   positions:['LB'], rating:85, club:'Bayer Leverkusen', clubZh:'\u52d2\u6c83\u5e93\u68ee', age:30,\r\n   bio:'\u5fb7\u7532\u52a9\u653b\u738b\uff082023\/24\u4e0d\u8d25\u8d5b\u5b63\uff09\uff0c\u5de6\u811a\u4efb\u610f\u7403\u4e0e\u4f20\u4e2d\u5927\u5e08\uff0c\u5de6\u8def\u8fdb\u653b\u53d1\u52a8\u673a\u3002'},\r\n  {id:'cucurella', name:'Marc Cucurella', zh:'\u9a6c\u514b\u00b7\u5e93\u5e93\u96f7\u5229\u4e9a', number:24, group:'DEF',\r\n   positions:['LB','LWB'], rating:84, club:'Chelsea', clubZh:'\u5207\u5c14\u897f', age:27,\r\n   bio:'2024\u6b27\u6d32\u676f\u51b3\u8d5bMVP\u7ea7\u522b\u8868\u73b0\uff0c\u4e0d\u77e5\u75b2\u5026\u7684\u5de6\u8fb9\u536b\/\u7ffc\u536b\uff0c\u5173\u952e\u65f6\u523b\u7684\"\u80dc\u8d1f\u5e08\"\u3002'},\r\n  {id:'hbueno', name:'Hugo Bueno', zh:'\u4e4c\u6208\u00b7\u5e03\u57c3\u8bfa', number:15, group:'DEF',\r\n   positions:['LB'], rating:75, club:'Stuttgart', clubZh:'\u65af\u56fe\u52a0\u7279', age:24,\r\n   bio:'\u653b\u51fb\u578b\u5de6\u540e\u536b\u65b0\u661f\uff0c\u672c\u8d5b\u5b63\u5728\u65af\u56fe\u52a0\u7279\u8868\u73b0\u62a2\u773c\uff0c\u672c\u5c4a\u5927\u8d5b\u9996\u6b21\u5165\u9009\u3002'},\r\n\r\n  \/\/ ---------- \u4e2d\u573a ----------\r\n  {id:'rodri', name:'Rodri', zh:'\u7f57\u5fb7\u91cc', number:16, group:'MID',\r\n   positions:['CDM'], rating:92, club:'Manchester City', clubZh:'\u66fc\u57ce', age:29, captain:true, star:true,\r\n   bio:'\u5f53\u4eca\u4e16\u754c\u7b2c\u4e00\u540e\u8170\uff0c2024\u91d1\u7403\u5956\u5f97\u4e3b\uff0c\u62a2\u65ad\u3001\u62e6\u622a\u3001\u957f\u4f20\u8c03\u5ea6\u4ff1\u7edd\u3002\u7403\u961f\u8282\u62cd\u5668\u4e0e\u653b\u9632\u67a2\u7ebd\uff0c\u6597\u725b\u58eb\u519b\u56e2\u7684\u7075\u9b42\u3002'},\r\n  {id:'pedri', name:'Pedri', zh:'\u4f69\u5fb7\u91cc', number:20, group:'MID',\r\n   positions:['CM','CAM'], rating:89, club:'Barcelona', clubZh:'\u5df4\u585e\u7f57\u90a3', age:23, star:true,\r\n   bio:'\u65b0\u751f\u4ee3\u6280\u672f\u6d41\u4e2d\u573a\u6838\u5fc3\uff0c\u89c6\u91ce\u3001\u76d8\u5e26\u3001\u63a7\u7403\u4e00\u7edd\u3002\u88ab\u8a89\u4e3a\"\u65b0\u4f0a\u6d85\u65af\u5854\"\uff0c\u662f\u7403\u961f\u521b\u9020\u529b\u7684\u5fc3\u810f\u3002'},\r\n  {id:'olmo', name:'Dani Olmo', zh:'\u8fbe\u5c3c\u00b7\u5965\u5c14\u83ab', number:10, group:'MID',\r\n   positions:['CAM','LW','ST'], rating:87, club:'Barcelona', clubZh:'\u5df4\u585e\u7f57\u90a3', age:28, star:true,\r\n   bio:'2024\u6b27\u6d32\u676f\u91d1\u9774\u5e76\u5217\u5f97\u4e3b\uff0c\u80fd\u524d\u8170\u80fd\u8fb9\u950b\u80fd\u4f2a\u4e5d\uff0c\u591a\u9762\u653b\u51fb\u624b\uff0c\u5173\u952e\u6218\u7684\"\u7ec8\u7ed3\u8005\"\u3002'},\r\n  {id:'fabian', name:'Fabi\u00e1n Ruiz', zh:'\u6cd5\u7ef4\u5b89\u00b7\u9c81\u4f0a\u65af', number:8, group:'MID',\r\n   positions:['CM','CAM'], rating:85, club:'PSG', clubZh:'\u5df4\u9ece\u5723\u65e5\u8033\u66fc', age:30,\r\n   bio:'2024\u6b27\u6d32\u676f\u51b3\u8d5bMVP\uff0c\u5de6\u811a\u4f18\u96c5\u7684\u7ec4\u7ec7\u8005\uff0c\u63a7\u7403\u3001\u63a8\u8fdb\u3001\u8fdc\u5c04\u4ff1\u4f73\uff0ctiki-taka\u7684\u5f53\u4ee3\u4f20\u4eba\u3002'},\r\n  {id:'merino', name:'Mikel Merino', zh:'\u7c73\u514b\u5c14\u00b7\u6885\u91cc\u8bfa', number:6, group:'MID',\r\n   positions:['CM','CAM'], rating:85, club:'Arsenal', clubZh:'\u963f\u68ee\u7eb3', age:29,\r\n   bio:'\u5168\u80fdbox-to-box\u4e2d\u573a\uff0c\u5934\u7403\u3001\u540e\u63d2\u4e0a\u3001\u5bf9\u6297\u4ff1\u4f73\uff0c\u968f\u963f\u68ee\u7eb3\u593a\u5f972025\/26\u82f1\u8d85\u51a0\u519b\u3002'},\r\n  {id:'zubimendi', name:'Mart\u00edn Zubimendi', zh:'\u9a6c\u4e01\u00b7\u82cf\u7ef4\u95e8\u8fea', number:18, group:'MID',\r\n   positions:['CDM'], rating:83, club:'Arsenal', clubZh:'\u963f\u68ee\u7eb3', age:26,\r\n   bio:'\u62d6\u540e\u7ec4\u7ec7\u6838\u5fc3\uff08regista\uff09\uff0c2024\u6b27\u6d32\u676f\u51b3\u8d5b\u8fdb\u7403\u8005\uff0c\u7f57\u5fb7\u91cc\u7684\u5934\u53f7\u66ff\u8865\u4e0e\u8f6e\u6362\u4eba\u9009\u3002'},\r\n  {id:'gavi', name:'Gavi', zh:'\u52a0\u7ef4', number:9, group:'MID',\r\n   positions:['CM','CAM'], rating:82, club:'Barcelona', clubZh:'\u5df4\u585e\u7f57\u90a3', age:21,\r\n   bio:'\u6597\u58eb\u578b\u5e74\u8f7b\u4e2d\u573a\uff0c\u62fc\u62a2\u51f6\u72e0\u3001\u6597\u5fd7\u65fa\u76db\uff0c\u4ece\u957f\u671f\u4f24\u75c5\u4e2d\u56de\u5f52\uff0c\u4e3a\u4e2d\u573a\u6ce8\u5165\u6fc0\u60c5\u4e0e\u786c\u5ea6\u3002'},\r\n  {id:'baena', name:'\u00c1lex Baena', zh:'\u4e9a\u5386\u514b\u65af\u00b7\u5df4\u57c3\u7eb3', number:25, group:'MID',\r\n   positions:['CM','CAM'], rating:80, club:'Villarreal', clubZh:'\u6bd4\u5229\u4e9a\u96f7\u4e9a\u5c14', age:24,\r\n   bio:'\u4efb\u610f\u7403\u4e13\u5bb6\u4e0e\u521b\u9020\u578b8\u53f7\uff0c\u672c\u8d5b\u5b63\u897f\u7532\u6d8c\u73b0\u7684\u7ec4\u7ec7\u6838\u5fc3\uff0c\u5fb7\u62c9\u5bcc\u6069\u7279\u770b\u597d\u7684\u65b0\u751f\u4ee3\u3002'},\r\n\r\n  \/\/ ---------- \u524d\u950b ----------\r\n  {id:'yamal', name:'Lamine Yamal', zh:'\u62c9\u660e\u00b7\u4e9a\u9a6c\u5c14', number:19, group:'FWD',\r\n   positions:['RW','CAM'], rating:90, club:'Barcelona', clubZh:'\u5df4\u585e\u7f57\u90a3', age:18, star:true,\r\n   bio:'18\u5c81\u65f7\u4e16\u5929\u624d\uff0c2024\u6b27\u6d32\u676f\u6700\u4f73\u5e74\u8f7b\u7403\u5458\u3002\u76d8\u5e26\u3001\u5185\u5207\u3001\u52a9\u653b\u3001\u5c04\u95e8\u6837\u6837\u7cbe\u901a\uff0c\u88ab\u89c6\u4e3a\u4e0b\u4e00\u4ee3\u7403\u738b\u5019\u9009\u4eba\u3002'},\r\n  {id:'nico', name:'Nico Williams', zh:'\u5c3c\u79d1\u00b7\u5a01\u5ec9\u59c6\u65af', number:17, group:'FWD',\r\n   positions:['LW','RW'], rating:88, club:'Athletic Club', clubZh:'\u6bd5\u5c14\u5df4\u9102\u7ade\u6280', age:23, star:true,\r\n   bio:'\u901f\u5ea6\u7206\u70b9\u7684\u5de6\u8fb9\u950b\uff0c2024\u6b27\u6d32\u676f\u51b3\u8d5b\u8fdb\u7403\u8005\uff0c\u4e0e\u4e9a\u9a6c\u5c14\u7ec4\u6210\u5f53\u4eca\u8db3\u575b\u6700\u6050\u6016\u7684\u4e24\u7ffc\u3002'},\r\n  {id:'oyarzabal', name:'Mikel Oyarzabal', zh:'\u7c73\u514b\u5c14\u00b7\u5965\u4e9a\u8428\u74e6\u5c14', number:21, group:'FWD',\r\n   positions:['ST','LW','CAM'], rating:84, club:'Real Sociedad', clubZh:'\u7687\u5bb6\u793e\u4f1a', age:29, captain:true,\r\n   bio:'2024\u6b27\u6d32\u676f\u51b3\u8d5b\u81f4\u80dc\u8fdb\u7403\u7684\u82f1\u96c4\uff0c\u8dd1\u4f4d\u9b3c\u9b45\u3001\u7ec8\u7ed3\u51b7\u9759\uff0c\u950b\u7ebf\u4e07\u91d1\u6cb9\u4e0e\u66f4\u8863\u5ba4\u9886\u8896\u3002'},\r\n  {id:'ftorres', name:'Ferran Torres', zh:'\u8d39\u5170\u00b7\u6258\u96f7\u65af', number:7, group:'FWD',\r\n   positions:['RW','LW','ST'], rating:80, club:'Barcelona', clubZh:'\u5df4\u585e\u7f57\u90a3', age:26,\r\n   bio:'\u591a\u9762\u624b\u653b\u51fb\u624b\uff0c\u80fd\u8fb9\u80fd\u4e2d\uff0c\u8fd1\u5e74\u5927\u8d5b\u56fd\u5bb6\u961f\u7a33\u5b9a\u5f97\u5206\u624b\uff0c\u5173\u952e\u66ff\u8865\u4e0e\u8f6e\u6362\u4eba\u9009\u3002'},\r\n  {id:'pino', name:'Yeremy Pino', zh:'\u8036\u96f7\u7c73\u00b7\u76ae\u8bfa', number:11, group:'FWD',\r\n   positions:['RW','LW'], rating:78, club:'Villarreal', clubZh:'\u6bd4\u5229\u4e9a\u96f7\u4e9a\u5c14', age:23,\r\n   bio:'\u76f4\u63a5\u3001\u5feb\u901f\u7684\u8fb9\u950b\uff0c\u4eceACL\u91cd\u4f24\u4e2d\u91cd\u8fd4\u5dc5\u5cf0\uff0c\u672c\u5c4a\u5927\u8d5b\u950b\u7ebf\u8f6e\u6362\u4eba\u9009\u3002'},\r\n  {id:'vmunoz', name:'V\u00edctor Mu\u00f1oz', zh:'\u7ef4\u514b\u6258\u00b7\u7a46\u5c3c\u5965\u65af', number:26, group:'FWD',\r\n   positions:['RW','ST'], rating:76, club:'Osasuna', clubZh:'\u5965\u8428\u82cf\u7eb3', age:23,\r\n   bio:'2025\/26\u897f\u7532\u6d8c\u73b0\u7684\u52a8\u6001\u578b\u8fb9\u950b\/\u524d\u950b\uff0c\u672c\u5c4a\u540d\u5355\u7684\u60ca\u559c\u65b0\u4eba\u4e4b\u9009\u3002'},\r\n];\r\n\r\n\/* ============================================================\r\n   \u5386\u53f2\u4f20\u5947\u7403\u661f \u2014\u2014 \u7167\u7247\u5b57\u6bb5 photo \u9884\u7559\u4f4d\r\n   \u586b\u5165\u56fe\u7247 URL \u540e\u5373\u663e\u793a\u771f\u4eba\u7167\uff0c\u7559\u7a7a\u5219\u663e\u793a\u6e10\u53d8\u5e95 + \u9996\u5b57\u6bcd\u5360\u4f4d\u3002\r\n   \u65e5\u540e\u53ef\u7528 PicGo\uff08POST http:\/\/127.0.0.1:36677\/upload\uff09\u4e0a\u4f20\u771f\u4eba\u7167\u56de\u586b\u3002\r\n============================================================ *\/\r\nconst LEGENDS = [\r\n  {id:'casillas', name:'Iker Casillas', zh:'\u4f0a\u514b\u5c14\u00b7\u5361\u897f\u5229\u4e9a\u65af', era:'2000-10s',\r\n   initials:'IC', icon:'\ud83e\udde4', accent:'#8a1a1a',\r\n   photo:'https:\/\/picgo-feitong.oss-cn-shanghai.aliyuncs.com\/pictures\/20260616103242965.webp', wiki:'https:\/\/en.wikipedia.org\/wiki\/Iker_Casillas',\r\n   tag:'\u5723\u5361\u897f',\r\n   stat:'\u897f\u73ed\u7259 167 \u573a \u00b7 2010 \u4e16\u754c\u676f\u961f\u957f',\r\n   note:'\u897f\u73ed\u7259\u4e0e\u7687\u9a6c\u53cc\u6599\u4f20\u5947\u961f\u957f\uff0c2010\u4e16\u754c\u676f\u593a\u51a0\u529f\u81e3\uff0c\u95e8\u524d\u53cd\u5e94\u795e\u7ea7\uff0c\u88ab\u8a89\"\u5723\u5361\u897f\"\u3002'},\r\n  {id:'xavi', name:'Xavi Hern\u00e1ndez', zh:'\u54c8\u7ef4\u00b7\u57c3\u5c14\u5357\u5fb7\u65af', era:'2000-10s',\r\n   initials:'XH', icon:'\ud83c\udfaf', accent:'#7a5a1a',\r\n   photo:'https:\/\/picgo-feitong.oss-cn-shanghai.aliyuncs.com\/pictures\/20260616103243548.webp', wiki:'https:\/\/en.wikipedia.org\/wiki\/Xavi',\r\n   tag:'tiki-taka \u5927\u8111',\r\n   stat:'\u897f\u73ed\u7259 133 \u573a 13 \u7403 \u00b7 2010 \u4e16\u754c\u676f\u51a0\u519b',\r\n   note:'tiki-taka\u54f2\u5b66\u7684\u7075\u9b42\u5927\u8111\uff0c\u4f20\u7403\u3001\u89c6\u91ce\u3001\u8282\u594f\u63a7\u5236\u65e0\u4eba\u80fd\u51fa\u5176\u53f3\uff0c\u9ec4\u91d1\u4e00\u4ee3\u7684\u4e2d\u573a\u6307\u6325\u5b98\u3002'},\r\n  {id:'iniesta', name:'Andr\u00e9s Iniesta', zh:'\u5b89\u5fb7\u96f7\u65af\u00b7\u4f0a\u6d85\u65af\u5854', era:'2000-10s',\r\n   initials:'AI', icon:'\u2728', accent:'#5a3d7a',\r\n   photo:'https:\/\/picgo-feitong.oss-cn-shanghai.aliyuncs.com\/pictures\/20260616103242032.webp', wiki:'https:\/\/en.wikipedia.org\/wiki\/Andr%C3%A9s_Iniesta',\r\n   tag:'2010 \u7edd\u6740\u82f1\u96c4',\r\n   stat:'\u897f\u73ed\u7259 131 \u573a \u00b7 2010 \u4e16\u754c\u676f\u51b3\u8d5b116\u5206\u949f\u7edd\u6740',\r\n   note:'2010\u4e16\u754c\u676f\u51b3\u8d5b\u52a0\u65f6\u7edd\u6740\u8377\u5170\u7684\u8fdb\u7403\u8005\uff0c\u4f18\u96c5\u7684\u9b54\u672f\u5e08\uff0c\u897f\u73ed\u7259\u767e\u5e74\u8363\u5149\u7684\u6c38\u6052\u8c61\u5f81\u3002'},\r\n  {id:'villa', name:'David Villa', zh:'\u5927\u536b\u00b7\u6bd4\u5229\u4e9a', era:'2000-10s',\r\n   initials:'DV', icon:'\u26bd', accent:'#7a2d2d',\r\n   photo:'https:\/\/picgo-feitong.oss-cn-shanghai.aliyuncs.com\/pictures\/20260616103242593.webp', wiki:'https:\/\/en.wikipedia.org\/wiki\/David_Villa',\r\n   tag:'\u5386\u53f2\u5c04\u624b\u738b',\r\n   stat:'\u897f\u73ed\u7259 98 \u573a 59 \u7403 \u00b7 \u961f\u53f2\u6700\u4f73\u5c04\u624b',\r\n   note:'\u897f\u73ed\u7259\u961f\u53f2\u5934\u53f7\u5c04\u624b\uff0c2010\u4e16\u754c\u676f\u91d1\u9774\uff085\u7403\uff09\uff0c\u846b\u82a6\u5a03\u822c\u7684\u7981\u533a\u6740\u624b\u3002'},\r\n  {id:'raul', name:'Ra\u00fal', zh:'\u52b3\u5c14\u00b7\u5188\u8428\u96f7\u65af', era:'1990s-2000s',\r\n   initials:'RG', icon:'\ud83d\udc51', accent:'#2d4a7a',\r\n   photo:'https:\/\/picgo-feitong.oss-cn-shanghai.aliyuncs.com\/pictures\/20260616103243171.webp', wiki:'https:\/\/en.wikipedia.org\/wiki\/Ra%C3%BAl_(footballer)',\r\n   tag:'\u6307\u73af\u738b',\r\n   stat:'\u897f\u73ed\u7259 102 \u573a 44 \u7403 \u00b7 \u7687\u9a6c\u4f20\u5947',\r\n   note:'\u7687\u9a6c\u4e0e\u897f\u73ed\u7259\u7684\u65d7\u5e1c\u6027\u4eba\u7269\uff0c\u4f18\u96c5\u7684\"\u6307\u73af\u738b\"\uff0c\u4e00\u4e2a\u65f6\u4ee3\u7684\u8db3\u7403\u5076\u50cf\u3002'},\r\n  {id:'torres', name:'Fernando Torres', zh:'\u8d39\u5c14\u5357\u591a\u00b7\u6258\u96f7\u65af', era:'2000-10s',\r\n   initials:'FT', icon:'\u26a1', accent:'#7a5a2d',\r\n   photo:'https:\/\/picgo-feitong.oss-cn-shanghai.aliyuncs.com\/pictures\/20260616103242755.jpg', wiki:'https:\/\/en.wikipedia.org\/wiki\/Fernando_Torres',\r\n   tag:'\u5723\u5a74',\r\n   stat:'\u897f\u73ed\u7259 110 \u573a 38 \u7403 \u00b7 2008 \u6b27\u6d32\u676f\u51b3\u8d5b\u81f4\u80dc',\r\n   note:'\u901f\u5ea6\u578b\u91d1\u7ae5\"\u5723\u5a74\"\uff0c2008\u6b27\u6d32\u676f\u51b3\u8d5b\u5355\u5200\u81f4\u80dc\u5fb7\u56fd\uff0c\u5f00\u542f\u9ec4\u91d1\u4e00\u4ee3\u738b\u671d\u7684\u6807\u5fd7\u6027\u4eba\u7269\u3002'},\r\n  {id:'ramos', name:'Sergio Ramos', zh:'\u585e\u5c14\u5409\u5965\u00b7\u62c9\u83ab\u65af', era:'2000-20s',\r\n   initials:'SR', icon:'\ud83d\udee1\ufe0f', accent:'#2d5a7a',\r\n   photo:'https:\/\/picgo-feitong.oss-cn-shanghai.aliyuncs.com\/pictures\/20260616103243393.jpg', wiki:'https:\/\/en.wikipedia.org\/wiki\/Sergio_Ramos',\r\n   tag:'\u94c1\u8840\u961f\u957f',\r\n   stat:'\u897f\u73ed\u7259 180 \u573a 23 \u7403 \u00b7 \u56fd\u5bb6\u961f\u51fa\u573a\u7eaa\u5f55',\r\n   note:'\u897f\u73ed\u7259\u56fd\u5bb6\u961f\u5386\u53f2\u51fa\u573a\u738b\uff08180\u573a\uff09\uff0c\u94c1\u8840\u4e2d\u536b\u3001\u5934\u7403\u5927\u5e08\u3001\u5927\u573a\u9762\u5148\u751f\uff0c\u7687\u9a6c\u4e0e\u897f\u73ed\u7259\u7684\u53cc\u6599\u4f20\u5947\u3002'},\r\n  {id:'puyol', name:'Carles Puyol', zh:'\u5361\u83b1\u65af\u00b7\u666e\u7ea6\u5c14', era:'2000-10s',\r\n   initials:'CP', icon:'\ud83e\udd81', accent:'#5a4a1a',\r\n   photo:'https:\/\/picgo-feitong.oss-cn-shanghai.aliyuncs.com\/pictures\/20260616103242318.jpg', wiki:'https:\/\/en.wikipedia.org\/wiki\/Carles_Puyol',\r\n   tag:'\u72ee\u738b',\r\n   stat:'\u897f\u73ed\u7259 100 \u573a 3 \u7403 \u00b7 2010 \u4e16\u754c\u676f\u534a\u51b3\u8d5b\u5934\u7403\u81f4\u80dc',\r\n   note:'\u6807\u5fd7\u6027\u7684\u84ec\u677e\u957f\u53d1\"\u72ee\u738b\"\uff0c2010\u4e16\u754c\u676f\u534a\u51b3\u8d5b\u5934\u7403\u6dd8\u6c70\u5fb7\u56fd\uff0c\u94c1\u8840\u4e0e\u5fe0\u8bda\u7684\u5316\u8eab\u3002'},\r\n];\r\n\r\n\/* ============================================================\r\n   \u5de5\u5177\u51fd\u6570\uff08\u52a1\u5fc5\u5728 renderLegends \u8c03\u7528\u4e4b\u524d\u5b9a\u4e49\uff09\r\n============================================================ *\/\r\nconst $ = (s,p=document)=>p.querySelector(s);\r\nconst $$ = (s,p=document)=>[...p.querySelectorAll(s)];\r\nconst byId = id => SQUAD.find(p=>p.id===id);\r\nconst groupZh = {GK:'\u95e8\u5c06',DEF:'\u540e\u536b',MID:'\u4e2d\u573a',FWD:'\u524d\u950b'};\r\n\r\nfunction renderLegends(){\r\n  $('#legendsGrid').innerHTML = LEGENDS.map(l=>`\r\n    <div class=\"legend\">\r\n      <div class=\"photo\" style=\"background:linear-gradient(135deg,${l.accent},#1a1410)\">\r\n        ${l.photo\r\n          ? `<img decoding=\"async\" src=\"${l.photo}\" alt=\"${l.name}\" onerror=\"this.style.display='none';this.parentNode.querySelector('.ph-fallback').style.display='flex'\">\r\n             <div class=\"ph-fallback\" style=\"display:none\">\r\n               <div class=\"ph-initials\">${l.initials}<\/div>\r\n               <div class=\"ph-icon\">${l.icon}<\/div>\r\n             <\/div>`\r\n          : `<div class=\"ph-fallback\">\r\n               <div class=\"ph-initials\">${l.initials}<\/div>\r\n               <div class=\"ph-icon\">${l.icon}<\/div>\r\n             <\/div>`}\r\n        <span class=\"era\">${l.era}<\/span>\r\n      <\/div>\r\n      <div class=\"lbody\">\r\n        <div class=\"lname\">${l.name}<\/div>\r\n        <div class=\"lnamezh\">${l.zh}<\/div>\r\n        <span class=\"ltag\">${l.tag}<\/span>\r\n        <div class=\"lstat\"><b>${l.stat}<\/b><\/div>\r\n        <div class=\"lnote\">${l.note}<\/div>\r\n      <\/div>\r\n    <\/div>`).join('');\r\n}\r\n\/* \u6e32\u67d3\u5386\u53f2\u4f20\u5947\u7403\u661f\u5899\uff08\u5728\u5de5\u5177\u51fd\u6570\u5b9a\u4e49\u4e4b\u540e\u8c03\u7528\uff09*\/\r\nrenderLegends();\r\n\r\n\/* ============================================================\r\n   \u9635\u578b\u5b9a\u4e49\uff1a\u6bcf\u4e2a slot \u542b key(\u89d2\u8272\u952e)\u3001pos(\u663e\u793a\u7f29\u5199)\u3001x\/y(\u767e\u5206\u6bd4\u5750\u6807)\r\n   \u5750\u6807\u7cfb\uff1ax \u6a2a\u5411 0~100\uff08\u5de6\u2192\u53f3\uff09\uff0cy \u7eb5\u5411 0~100\uff08\u4e0a=\u8fdb\u653b\u65b9\u5411\uff0c\u4e0b=\u672c\u65b9\u7403\u95e8\uff09\r\n============================================================ *\/\r\nconst FORMATIONS = {\r\n  '433':{ label:'4-3-3', slots:[\r\n    {key:'GK',  pos:'GK', x:50, y:90},\r\n    {key:'LB',  pos:'LB', x:14, y:72},\r\n    {key:'LCB', pos:'CB', x:36, y:75},\r\n    {key:'RCB', pos:'CB', x:64, y:75},\r\n    {key:'RB',  pos:'RB', x:86, y:72},\r\n    {key:'LCM', pos:'CM', x:30, y:50},\r\n    {key:'CDM', pos:'CDM',x:50, y:54},\r\n    {key:'RCM', pos:'CM', x:70, y:50},\r\n    {key:'LW',  pos:'LW', x:18, y:22},\r\n    {key:'ST',  pos:'ST', x:50, y:18},\r\n    {key:'RW',  pos:'RW', x:82, y:22},\r\n  ]},\r\n  '4231':{ label:'4-2-3-1', slots:[\r\n    {key:'GK',  pos:'GK', x:50, y:90},\r\n    {key:'LB',  pos:'LB', x:14, y:72},\r\n    {key:'LCB', pos:'CB', x:38, y:75},\r\n    {key:'RCB', pos:'CB', x:62, y:75},\r\n    {key:'RB',  pos:'RB', x:86, y:72},\r\n    {key:'LDM', pos:'CDM',x:36, y:56},\r\n    {key:'RDM', pos:'CDM',x:64, y:56},\r\n    {key:'LW',  pos:'LW', x:18, y:30},\r\n    {key:'CAM', pos:'CAM',x:50, y:34},\r\n    {key:'RW',  pos:'RW', x:82, y:30},\r\n    {key:'ST',  pos:'ST', x:50, y:13},\r\n  ]},\r\n  '343':{ label:'3-4-3', slots:[\r\n    {key:'GK',  pos:'GK', x:50, y:90},\r\n    {key:'LCB', pos:'CB', x:28, y:75},\r\n    {key:'CB',  pos:'CB', x:50, y:78},\r\n    {key:'RCB', pos:'CB', x:72, y:75},\r\n    {key:'LWB', pos:'LB', x:10, y:48},\r\n    {key:'LCM', pos:'CM', x:34, y:50},\r\n    {key:'RCM', pos:'CDM',x:66, y:50},\r\n    {key:'RWB', pos:'RB', x:90, y:48},\r\n    {key:'LW',  pos:'LW', x:20, y:20},\r\n    {key:'ST',  pos:'ST', x:50, y:16},\r\n    {key:'RW',  pos:'RW', x:80, y:20},\r\n  ]},\r\n};\r\n\r\n\/* \u6bcf\u4e2a\u9635\u578b slot \u2192 \u5206\u914d\u54ea\u540d\u7403\u5458\uff08\u6309 id\uff09\u3002\r\n   key \u4e3a\u89d2\u8272\u952e\uff0c\u503c\u4e3a SQUAD \u4e2d\u7684\u7403\u5458 id *\/\r\nconst LINEUPS = {\r\n  '433':{\r\n    GK:'simon', LB:'cucurella', LCB:'laporte', RCB:'cubarsi', RB:'porro',\r\n    LCM:'pedri', CDM:'rodri', RCM:'fabian',\r\n    LW:'nico', ST:'oyarzabal', RW:'yamal'\r\n  },\r\n  '4231':{\r\n    GK:'simon', LB:'cucurella', LCB:'laporte', RCB:'cubarsi', RB:'porro',\r\n    LDM:'rodri', RDM:'zubimendi',\r\n    LW:'nico', CAM:'olmo', RW:'yamal', ST:'oyarzabal'\r\n  },\r\n  '343':{\r\n    GK:'simon', LCB:'lenormand', CB:'laporte', RCB:'cubarsi',\r\n    LWB:'grimaldo', LCM:'pedri', RCM:'rodri', RWB:'porro',\r\n    LW:'nico', ST:'oyarzabal', RW:'yamal'\r\n  }\r\n};\r\n\r\n\/* ============================================================\r\n   Tab \u5207\u6362\r\n============================================================ *\/\r\n$$('.tab').forEach(t=>{\r\n  t.addEventListener('click',()=>{\r\n    $$('.tab').forEach(x=>x.classList.remove('active'));\r\n    $$('.panel').forEach(x=>x.classList.remove('active'));\r\n    t.classList.add('active');\r\n    $('#panel-'+t.dataset.tab).classList.add('active');\r\n    const anchor=$('#panel-'+t.dataset.tab).dataset.anchor;\r\n    if(anchor){ setTimeout(()=>{ const el=document.getElementById(anchor)||$('#panel-'+t.dataset.tab); el.scrollIntoView({behavior:'smooth',block:'start'}); },60); }\r\n  });\r\n});\r\n\r\n\/* \u9876\u90e8\u5bfc\u822a\u70b9\u51fb\u5e73\u6ed1\u6eda\u52a8 *\/\r\n$$('.topnav a').forEach(a=>{\r\n  a.addEventListener('click',e=>{\r\n    const id=a.getAttribute('href').slice(1);\r\n    \/\/ tab \u9762\u677f\u7528 data-anchor \u5c5e\u6027\u5b9a\u4f4d\uff08id \u662f panel-xxx\uff09\r\n    const el=document.getElementById(id) || document.querySelector('[data-anchor=\"'+id+'\"]');\r\n    if(!el) return;\r\n    e.preventDefault();\r\n    \/\/ \u82e5\u76ee\u6807\u662f tab \u9762\u677f\uff0c\u5148\u5207\u6362 tab\r\n    const panelMap={\"sec-pitch\":'pitch',\"sec-squad\":'squad',\"sec-vs\":'vs'};\r\n    if(panelMap[id]){\r\n      $$('.tab').forEach(x=>x.classList.remove('active'));\r\n      $$('.panel').forEach(x=>x.classList.remove('active'));\r\n      const tabBtn=document.querySelector('.tab[data-tab=\"'+panelMap[id]+'\"]');\r\n      if(tabBtn) tabBtn.classList.add('active');\r\n      $('#panel-'+panelMap[id]).classList.add('active');\r\n    }\r\n    setTimeout(()=>el.scrollIntoView({behavior:'smooth',block:'start'}),60);\r\n  });\r\n});\r\n\r\n\/* ============================================================\r\n   \u9635\u578b\u56fe\u6e32\u67d3\r\n============================================================ *\/\r\nconst pitch = $('#pitch');\r\nlet currentF = '433';\r\n\r\nfunction renderPitch(f){\r\n  currentF = f;\r\n  \/\/ \u79fb\u9664\u65e7 marker\r\n  $$('.marker',pitch).forEach(m=>m.remove());\r\n  const slots = FORMATIONS[f].slots;\r\n  const lineup = LINEUPS[f];\r\n  slots.forEach(slot=>{\r\n    const pid = lineup[slot.key];\r\n    if(!pid) return;\r\n    const p = byId(pid);\r\n    const m = document.createElement('div');\r\n    m.className='marker';\r\n    if(p.captain) m.classList.add('captain');\r\n    if(p.star) m.classList.add('star');\r\n    m.style.left = slot.x+'%';\r\n    m.style.top  = slot.y+'%';\r\n    m.innerHTML = `\r\n      <div class=\"dot\">${p.number}<\/div>\r\n      <span class=\"pos-tag\">${slot.pos}<\/span>\r\n      <div class=\"pname\">${p.zh}<\/div>`;\r\n    m.addEventListener('click',()=>openModal(p.id));\r\n    pitch.appendChild(m);\r\n  });\r\n}\r\n\r\n$$('.fbtn').forEach(b=>{\r\n  b.addEventListener('click',()=>{\r\n    $$('.fbtn').forEach(x=>x.classList.remove('on'));\r\n    b.classList.add('on');\r\n    renderPitch(b.dataset.f);\r\n  });\r\n});\r\n\r\nrenderPitch('433');\r\n\r\n\/* ============================================================\r\n   \u9635\u5bb9\u540d\u5355\u6e32\u67d3 + \u7b5b\u9009\r\n============================================================ *\/\r\nconst grid = $('#squadGrid');\r\nlet currentFilter='ALL';\r\n\r\nfunction renderSquad(){\r\n  \/\/ \u66f4\u65b0\u8ba1\u6570\r\n  ['ALL','GK','DEF','MID','FWD'].forEach(g=>{\r\n    const n = g==='ALL'? SQUAD.length : SQUAD.filter(p=>p.group===g).length;\r\n    $('#c-'+g).textContent = n;\r\n  });\r\n  const list = currentFilter==='ALL'? SQUAD : SQUAD.filter(p=>p.group===currentFilter);\r\n  grid.innerHTML = list.map(p=>`\r\n    <div class=\"pcard\" data-id=\"${p.id}\">\r\n      <div class=\"num\">${p.number}<\/div>\r\n      <div class=\"prow1\">\r\n        <div class=\"pavatar\">\r\n          ${p.photo\r\n            ? `<img decoding=\"async\" src=\"${p.photo}\" alt=\"${p.name}\" onerror=\"this.style.display='none';this.parentNode.classList.add('noimg')\">`\r\n            : `<span>${p.name.split(' ').map(w=>w[0]).slice(0,2).join('')}<\/span>`}\r\n        <\/div>\r\n        <div class=\"names\">\r\n          <div class=\"en\">${p.name}<\/div>\r\n          <div class=\"zh\">${p.zh}<\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"pos-rating\">\r\n        <div class=\"pos-badges\">${p.positions.map(po=>`<span class=\"pos-badge ${p.group}\">${po}<\/span>`).join('')}<\/div>\r\n        <div class=\"rating\">${p.rating}<small>\/100<\/small><\/div>\r\n      <\/div>\r\n      <div class=\"club\">${p.club} \u00b7 ${p.clubZh}<\/div>\r\n    <\/div>`).join('');\r\n  $$('.pcard',grid).forEach(c=>c.addEventListener('click',()=>openModal(c.dataset.id)));\r\n}\r\nrenderSquad();\r\n\r\n$$('#filters .filter-btn').forEach(b=>{\r\n  b.addEventListener('click',()=>{\r\n    $$('#filters .filter-btn').forEach(x=>x.classList.remove('on'));\r\n    b.classList.add('on');\r\n    currentFilter=b.dataset.f;\r\n    renderSquad();\r\n  });\r\n});\r\n\r\n\/* ============================================================\r\n   \u7403\u5458\u5bf9\u6bd4 \u2014\u2014 \u540c\u4f4d\u7f6e\u624d\u80fd\u5bf9\u6bd4\r\n============================================================ *\/\r\nconst selA=$('#selA'), selB=$('#selB');\r\nlet vsGroup='MID';   \/\/ \u5f53\u524d\u5bf9\u6bd4\u7684\u4f4d\u7f6e\u7ec4\r\n\r\nfunction fillSelects(){\r\n  \/\/ \u4ec5\u586b\u5165\u9009\u4e2d\u7ec4\u522b\u7684\u7403\u5458\r\n  const list = SQUAD.filter(p=>p.group===vsGroup);\r\n  const opts = list.map(p=>`<option value=\"${p.id}\">${p.zh} ${p.name} (${p.positions.join('\/')})<\/option>`).join('');\r\n  selA.innerHTML=opts;\r\n  selB.innerHTML=opts;\r\n  \/\/ \u9ed8\u8ba4\u9009\u524d\u4e24\u4eba\r\n  selA.value=list[0]?.id||'';\r\n  selB.value=list[1]?.id||list[0]?.id||'';\r\n  \/\/ \u66f4\u65b0\u63d0\u793a\r\n  const map={FWD:'\u524d\u950b',MID:'\u4e2d\u573a',DEF:'\u540e\u536b',GK:'\u95e8\u5c06'};\r\n  $('#vsGroupTip').textContent=`\u5f53\u524d\u5bf9\u6bd4\uff1a${map[vsGroup]}\uff08${list.length}\u4eba\u53ef\u9009\uff09\u2014 \u53ea\u80fd\u9009\u62e9\u540c\u4e00\u4f4d\u7f6e\u7c7b\u522b\u7684\u7403\u5458`;\r\n}\r\nfillSelects();\r\n\r\nfunction renderVS(){\r\n  const a=byId(selA.value), b=byId(selB.value);\r\n  if(!a||!b) return;\r\n  $('#vsResult').innerHTML = `\r\n    <div class=\"vs-result\">\r\n      <div class=\"vs-col left\">\r\n        <div class=\"num-big\">#${a.number}<\/div>\r\n        <div class=\"name\">${a.name}<\/div>\r\n        <div class=\"zh\">${a.zh}<\/div>\r\n        ${ratingBar(a.rating,'left')}\r\n        ${attr('\u4f4d\u7f6e Position', a.positions.join(' \/ '),'left')}\r\n        ${attr('\u4ff1\u4e50\u90e8 Club', `${a.clubZh} ${a.club}`,'left')}\r\n        ${attr('\u5e74\u9f84 Age', a.age+' \u5c81','left')}\r\n      <\/div>\r\n      <div class=\"vs-mid\">\r\n        <div class=\"label\">\u8bc4\u5206<br>Rating<\/div>\r\n        <div style=\"display:flex;flex-direction:column;gap:10px;width:100%;align-items:center\">\r\n          <div class=\"label\" style=\"color:var(--rojo)\">A \u00b7 ${a.rating}<\/div>\r\n          <div class=\"label\" style=\"color:var(--rojo-dark)\">B \u00b7 ${b.rating}<\/div>\r\n        <\/div>\r\n        <div class=\"label\" style=\"margin-top:8px;font-style:italic;color:#aaa\">${a.rating>b.rating?'\u25c0 A \u9886\u5148':a.rating<b.rating?'B \u9886\u5148 \u25b6':'\u5e73\u624b Tie'}<\/div>\r\n      <\/div>\r\n      <div class=\"vs-col right\">\r\n        <div class=\"num-big\">#${b.number}<\/div>\r\n        <div class=\"name\">${b.name}<\/div>\r\n        <div class=\"zh\">${b.zh}<\/div>\r\n        ${ratingBar(b.rating,'right')}\r\n        ${attr('\u4f4d\u7f6e Position', b.positions.join(' \/ '),'right')}\r\n        ${attr('\u4ff1\u4e50\u90e8 Club', `${b.clubZh} ${b.club}`,'right')}\r\n        ${attr('\u5e74\u9f84 Age', b.age+' \u5c81','right')}\r\n      <\/div>\r\n    <\/div>`;\r\n}\r\nfunction ratingBar(r,align){\r\n  return `<div class=\"rating-bar-wrap\">\r\n    <div class=\"top\"><span>\u7efc\u5408 OVR<\/span><b>${r}<\/b><\/div>\r\n    <div class=\"rating-bar\"><i style=\"width:${r}%\"><\/i><\/div>\r\n  <\/div>`;\r\n}\r\nfunction attr(k,v,align){\r\n  return `<div class=\"vs-attr\">\r\n    <div class=\"k\">${k}<\/div><div class=\"v\">${v}<\/div><\/div>`;\r\n}\r\nselA.addEventListener('change',renderVS);\r\nselB.addEventListener('change',renderVS);\r\n$$('.vgbtn').forEach(b=>{\r\n  b.addEventListener('click',()=>{\r\n    $$('.vgbtn').forEach(x=>x.classList.remove('on'));\r\n    b.classList.add('on');\r\n    vsGroup=b.dataset.g;\r\n    fillSelects();\r\n    renderVS();\r\n  });\r\n});\r\nrenderVS();\r\n\r\n\/* ============================================================\r\n   \u7403\u5458\u8be6\u60c5\u6a21\u6001\u6846\r\n============================================================ *\/\r\nconst mask=$('#modalMask'), box=$('#modalBox');\r\nfunction openModal(id){\r\n  const p=byId(id); if(!p) return;\r\n  const initials=p.name.split(' ').map(w=>w[0]).slice(0,2).join('');\r\n  const avatarInner = p.photo\r\n    ? `<img decoding=\"async\" src=\"${p.photo}\" alt=\"${p.name}\" onerror=\"this.style.display='none';this.parentNode.innerHTML='${initials}'\">`\r\n    : initials;\r\n  box.innerHTML=`\r\n    <div class=\"modal-head\">\r\n      <div class=\"avatar\">${avatarInner}<\/div>\r\n      <div class=\"h-info\">\r\n        <div class=\"h-en\">${p.name}<\/div>\r\n        <div class=\"h-zh\">${p.zh}<\/div>\r\n        <div class=\"h-num\">#${p.number} \u00b7 ${p.club}<\/div>\r\n      <\/div>\r\n      <button class=\"modal-close\" onclick=\"closeModal()\">\u00d7<\/button>\r\n    <\/div>\r\n    <div class=\"modal-body\">\r\n      <div class=\"modal-row\">\r\n        <span class=\"k\">\u7efc\u5408\u8bc4\u5206 OVR<\/span>\r\n        <span class=\"v rating-big\">${p.rating}<small>\/100<\/small><\/span>\r\n      <\/div>\r\n      <div class=\"rating-bar rating-pct\"><i style=\"width:${p.rating}%\"><\/i><\/div>\r\n      <div class=\"modal-row\">\r\n        <span class=\"k\">\u4f4d\u7f6e Position<\/span>\r\n        <span class=\"v\">${p.positions.map(po=>`<span class=\"pos-badge ${p.group}\" style=\"margin-left:4px\">${po}<\/span>`).join('')}<\/span>\r\n      <\/div>\r\n      <div class=\"modal-row\">\r\n        <span class=\"k\">\u4f4d\u7f6e\u7c7b\u522b Group<\/span>\r\n        <span class=\"v\">${p.group} \u00b7 ${groupZh[p.group]}<\/span>\r\n      <\/div>\r\n      <div class=\"modal-row\">\r\n        <span class=\"k\">\u4ff1\u4e50\u90e8 Club<\/span>\r\n        <span class=\"v\">${p.clubZh} \u00b7 ${p.club}<\/span>\r\n      <\/div>\r\n      <div class=\"modal-row\">\r\n        <span class=\"k\">\u5e74\u9f84 Age<\/span>\r\n        <span class=\"v\">${p.age} \u5c81<\/span>\r\n      <\/div>\r\n      ${p.captain?`<div class=\"modal-row\"><span class=\"k\">\u8eab\u4efd<\/span><span class=\"v\" style=\"color:var(--oro)\">\u2605 \u961f\u957f Captain<\/span><\/div>`:''}\r\n      ${p.star?`<div class=\"modal-row\"><span class=\"k\">\u5b9a\u4f4d<\/span><span class=\"v\" style=\"color:var(--rojo)\">\u2605 \u6838\u5fc3\u7403\u5458 Key Player<\/span><\/div>`:''}\r\n      <div class=\"bio\"><b>\u7403\u5458\u7b80\u4ecb\uff1a<\/b>${p.bio}<\/div>\r\n    <\/div>`;\r\n  mask.classList.add('show');\r\n}\r\nfunction closeModal(){mask.classList.remove('show')}\r\nmask.addEventListener('click',e=>{if(e.target===mask) closeModal()});\r\ndocument.addEventListener('keydown',e=>{if(e.key==='Escape') closeModal()});\r\n<\/script>\r\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u897f\u73ed\u7259\u56fd\u5bb6\u8db3\u7403\u961f\uff08Spain National Football Team\uff09\uff0c\u6635\u79f0&#8221;La Roja\uff08\u7ea2\u8272\uff09&#8221;\uff0c\u4e5f\u88ab\u79f0\u4f5c&#8221;La Furia Espa\u00f1ola\uff08\u897f\u73ed\u7259\u72c2\u6012\uff09<\/p>\n","protected":false},"author":1,"featured_media":1379,"comment_status":"closed","ping_status":"open","sticky":false,"template":"html-full-article","format":"standard","meta":{"_eb_attr":"","footnotes":""},"categories":[35,34],"tags":[16],"class_list":["post-1377","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-world-cup","category-34","tag-16"],"_links":{"self":[{"href":"https:\/\/qubitledge.com\/index.php\/wp-json\/wp\/v2\/posts\/1377","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/qubitledge.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/qubitledge.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/qubitledge.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/qubitledge.com\/index.php\/wp-json\/wp\/v2\/comments?post=1377"}],"version-history":[{"count":4,"href":"https:\/\/qubitledge.com\/index.php\/wp-json\/wp\/v2\/posts\/1377\/revisions"}],"predecessor-version":[{"id":1382,"href":"https:\/\/qubitledge.com\/index.php\/wp-json\/wp\/v2\/posts\/1377\/revisions\/1382"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/qubitledge.com\/index.php\/wp-json\/wp\/v2\/media\/1379"}],"wp:attachment":[{"href":"https:\/\/qubitledge.com\/index.php\/wp-json\/wp\/v2\/media?parent=1377"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qubitledge.com\/index.php\/wp-json\/wp\/v2\/categories?post=1377"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qubitledge.com\/index.php\/wp-json\/wp\/v2\/tags?post=1377"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}