/* Bruno Fernandes x Phil Foden — original official photographs, shared-ball choreography. */
.db-player-layer{display:none!important}.db-hero-text,.derby-event .db-hero .section-content,.derby-event .db-hero .db-row,.derby-event .db-hero .db-row>.col,.derby-event .db-hero .db-row>.col>.col-inner{position:static!important}.db-hero-text>:not(.db-real-duel-stage){position:relative;z-index:3}.derby-event .db-hero .db-button,.derby-event .db-hero .db-scroll{position:relative;z-index:4}.db-real-duel-stage{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden;isolation:isolate}.db-duel-player{position:absolute;bottom:108px;left:max(-24px,calc(50% - 740px));width:clamp(285px,28vw,390px);height:570px;margin:0;opacity:1;transform:translate3d(var(--dx,0px),var(--dy,0px),0) rotate(var(--dr,0deg));transform-origin:50% 82%;will-change:transform;animation:db-duel-enter-left 1.5s cubic-bezier(.16,.7,.3,1) both}.db-duel-foden{left:auto;right:max(-24px,calc(50% - 740px));animation-name:db-duel-enter-right}.db-duel-player:before{content:'';position:absolute;inset:8% -15% 3%;z-index:-1;background:radial-gradient(ellipse,#ed253a30,transparent 67%);filter:blur(18px)}.db-duel-foden:before{background:radial-gradient(ellipse,#69cfff38,transparent 67%)}.db-duel-portrait{width:100%;height:100%;position:relative;filter:drop-shadow(0 7px 20px #0008)}.db-duel-portrait img{width:100%;height:100%;display:block;object-fit:cover;object-position:center top;mask-image:linear-gradient(90deg,transparent,#000 12%,#000 84%,transparent),linear-gradient(180deg,transparent,#000 8%,#000 76%,transparent);mask-composite:intersect}.db-duel-foden .db-duel-portrait img{object-fit:contain;padding-top:18px;mask-image:linear-gradient(180deg,#000 65%,transparent 100%);mask-composite:add}.db-duel-tag{position:absolute;bottom:24px;left:16%;right:10%;padding:12px 13px 11px;border-left:2px solid #f86772;background:linear-gradient(90deg,#35151bd9,#08140cc2);backdrop-filter:blur(7px);text-align:left;box-shadow:0 6px 25px #0002;z-index:2}.db-duel-foden .db-duel-tag{left:10%;right:16%;border-left:0;border-right:2px solid #8ad7ff;text-align:right;background:linear-gradient(270deg,#12374bd9,#08140cc2)}.db-duel-tag>b{display:block;font-size:20px;line-height:1.4;font-weight:800;color:#fff;letter-spacing:-.4px}.db-duel-tag>small{display:block;font:750 9px/1.5 Arial;letter-spacing:1.4px;color:#eeb4b4;margin-top:4px}.db-duel-foden .db-duel-tag>small{color:#a9dbf8}.db-duel-tag>span{display:block;font-size:9px;color:#8da084;margin-top:4px}.db-duel-team-number{position:absolute;top:17%;left:7%;font:900 85px/1 Arial,sans-serif;-webkit-text-stroke:1px #f19b9b35;color:transparent;z-index:-1}.db-duel-foden .db-duel-team-number{left:auto;right:6%;-webkit-text-stroke-color:#9bdbff40}.db-duel-ball{position:absolute;left:0;top:0;width:37px;height:37px;z-index:5;filter:drop-shadow(0 3px 7px #001b06b3);transform:translate(-100px,-100px);will-change:transform;opacity:1}.db-duel-ball svg{width:100%;height:100%;display:block;animation:db-duel-ball-roll 1.1s linear infinite}.db-duel-trail{position:absolute;left:0;top:0;height:3px;width:0;transform-origin:left center;z-index:4;background:linear-gradient(90deg,transparent,#c5ff8b80);filter:blur(2px);opacity:0;pointer-events:none}.db-duel-impact{position:absolute;left:0;top:0;width:70px;height:70px;border:1px solid #c7ff9450;border-radius:50%;z-index:4;pointer-events:none;opacity:0;background:radial-gradient(circle,#edffc922,transparent 60%);box-shadow:0 0 24px #96f45125;will-change:transform,opacity}.db-duel-impact.db-duel-impact-blue{border-color:#9bdeff60;background:radial-gradient(circle,#bceeff20,transparent 60%)}.db-duel-phase{position:absolute;bottom:33px;left:50%;transform:translateX(-50%);color:#b9d9a0;font:700 9px/1.4 'Betway Sans SC',sans-serif;letter-spacing:2px;background:#091d13b3;border:1px solid #648b4140;border-radius:99px;padding:7px 14px;white-space:nowrap}.db-duel-energy{position:absolute;bottom:4px;left:3%;right:3%;height:180px;border:1px solid #acff4d0d;border-top:0;border-bottom:0;border-radius:50%;background:radial-gradient(ellipse at 50% 100%,#8cfb3520,transparent 67%);z-index:-1}.db-duel-versus-flare{position:absolute;left:50%;bottom:8%;height:1px;width:25%;transform:translateX(-50%);background:linear-gradient(90deg,transparent,#b8f56b55,transparent);box-shadow:0 0 20px #a4ff5330}.db-real-duel-stage.db-duel-idle .db-duel-ball{opacity:0}.derby-event.db-paused .db-duel-player{animation-play-state:paused!important}.db-hero .db-hero-clubs{backdrop-filter:blur(12px);box-shadow:0 12px 50px #0008}.db-hero .db-hero-text h1{text-shadow:0 4px 40px #000,0 0 70px #0008}.db-hero .db-hero-sub{text-shadow:0 2px 10px #000}.db-hero .db-hero-prize{text-shadow:0 2px 12px #000}.db-hero-player-note{font-size:9px!important;color:#819777!important}
@keyframes db-duel-enter-left{from{opacity:0;translate:-50px 18px;filter:blur(3px)}to{opacity:1;translate:0 0;filter:blur(0)}}@keyframes db-duel-enter-right{from{opacity:0;translate:50px 18px;filter:blur(3px)}to{opacity:1;translate:0 0;filter:blur(0)}}@keyframes db-duel-ball-roll{to{rotate:360deg}}
@media(min-width:1700px){.db-duel-player{width:420px;height:600px;bottom:103px}}
@media(max-width:1200px) and (min-width:850px){.db-duel-player{width:285px;height:470px;bottom:108px;left:-40px}.db-duel-foden{left:auto;right:-40px}.db-duel-tag>b{font-size:17px}.db-duel-tag>small{font-size:7px;letter-spacing:1px}.db-duel-tag{left:15%;right:7%;padding:10px}.db-duel-foden .db-duel-tag{left:7%;right:15%}.db-duel-team-number{font-size:66px}.db-duel-phase{bottom:18px}.db-duel-ball{width:31px;height:31px}}
@media(max-width:849px){.db-real-duel-stage{position:relative;inset:auto;z-index:3;height:300px;margin:25px -12px 0;overflow:visible;pointer-events:none}.db-duel-player{left:-4%;bottom:24px;width:54%;height:272px;animation-duration:1.1s}.db-duel-foden{left:auto;right:-4%}.db-duel-portrait img{object-fit:cover;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 89%,transparent),linear-gradient(180deg,transparent,#000 7%,#000 76%,transparent)}.db-duel-foden .db-duel-portrait img{object-fit:contain;padding-top:10px;mask-image:linear-gradient(180deg,#000 65%,transparent 100%)}.db-duel-tag{bottom:4px;left:11%;right:3%;padding:8px 6px;background:linear-gradient(90deg,#35151be8,#0a1c11c9)}.db-duel-foden .db-duel-tag{left:3%;right:11%;background:linear-gradient(270deg,#12374be8,#0a1c11c9)}.db-duel-tag>b{font-size:14px;letter-spacing:-.5px;white-space:nowrap}.db-duel-tag>small{font-size:6px;letter-spacing:.4px;white-space:nowrap}.db-duel-tag>span{font-size:8px;margin-top:2px}.db-duel-team-number{font-size:54px;top:14%;left:8%}.db-duel-foden .db-duel-team-number{right:8%}.db-duel-ball{width:23px;height:23px}.db-duel-impact{width:42px;height:42px}.db-duel-phase{bottom:0px;font-size:8px;padding:5px 9px;letter-spacing:1px}.db-duel-trail{height:2px}.db-duel-energy{height:80px;bottom:10px;left:0;right:0}.db-duel-versus-flare{bottom:13%}.bw-flatsome .derby-event .db-hero{min-height:0!important;padding-top:42px!important;padding-bottom:35px!important}.db-hero .db-hero-prize{margin-top:20px!important}.db-hero .db-scroll{margin-top:24px}.db-duel-player:before{inset:5% -12% 0;filter:blur(10px)}}
@media(max-width:380px){.db-real-duel-stage{height:270px}.db-duel-player{height:245px}.db-duel-tag>b{font-size:12px}.db-duel-tag>small{font-size:5.5px}.db-duel-tag>span{font-size:7px}}
@media(prefers-reduced-motion:reduce){.db-duel-player{animation:none!important;opacity:1!important;transform:none!important}.db-duel-ball,.db-duel-trail,.db-duel-impact{display:none!important}.db-duel-phase{display:none}.db-real-duel-stage{opacity:1!important}}
/* Six full-body cartoon poses per named player. Photo reference is not displayed. */
.db-duel-player{left:12px;width:clamp(280px,28vw,390px)}.db-duel-foden{left:auto;right:12px}.db-duel-portrait.db-duel-art{position:absolute;left:-12.5%;bottom:60px;width:125%;height:auto;aspect-ratio:1;background-size:300% 200%;background-repeat:no-repeat;background-position:0% 0%;background-image:url('bruno-art-2627.webp');filter:drop-shadow(0 10px 17px #0008);transition:none;mask-image:none;overflow:visible}.db-duel-foden .db-duel-portrait.db-duel-art{background-image:url('foden-art-2627.webp');transform:scaleX(-1)}.db-duel-player[data-pose='pass'] .db-duel-art{background-position:50% 0%}.db-duel-player[data-pose='receive'] .db-duel-art{background-position:100% 0%}.db-duel-player[data-pose='header'] .db-duel-art{background-position:0% 100%}.db-duel-bruno[data-pose='header'] .db-duel-art{background-position:0% 95%}.db-duel-player[data-pose='shoot'] .db-duel-art{background-position:50% 100%}.db-duel-player[data-pose='recover'] .db-duel-art{background-position:100% 100%}.db-duel-tag{bottom:13px;left:12%;right:5%}.db-duel-foden .db-duel-tag{left:5%;right:12%}.db-duel-team-number{top:26%;opacity:.75}.db-duel-energy{height:200px}.db-hero-awards{display:grid;grid-template-columns:1.2fr 1fr .72fr;gap:10px;max-width:650px;margin:22px auto 5px;position:relative;z-index:4}.db-hero-award{display:flex;align-items:center;gap:10px;min-width:0;padding:10px;background:linear-gradient(125deg,#243e24ed,#0a2116e8);border:1px solid #b7ed8e55;border-radius:13px;box-shadow:0 5px 22px #0004;backdrop-filter:blur(8px);text-align:left;transition:transform .25s,border-color .25s}.db-hero-award:hover{transform:translateY(-4px);border-color:#c9ff8f}.db-hero-award>img{width:92px;height:61px;object-fit:cover;display:block;border-radius:7px;background:#fff;flex:0 0 auto}.db-hero-award-phone>img{object-fit:contain}.db-hero-award>span{display:block;min-width:0}.db-hero-award small{display:block;color:#a1ce78;font-size:8px;letter-spacing:1px;margin-bottom:5px}.db-hero-award b{display:block;font-size:12px;line-height:1.4;color:#f0ffe1;white-space:nowrap;letter-spacing:0}.db-hero-award em{display:block;font:700 9px/1.4 Arial,'Betway Sans SC',sans-serif;color:#bfd7a8;font-style:normal;margin-top:4px}.db-hero-award-trip>img{width:62px;object-position:center}.db-hero-award-coin{display:flex!important;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:linear-gradient(145deg,#fff3b8,#c5a952 60%,#6c6726);border:3px double #f4e69c;color:#41601b;font:900 24px Arial;box-shadow:0 3px 9px #0004;flex:0 0 auto}.db-hero-award-phone{background:linear-gradient(125deg,#3a5426ef,#112a17ed);border-color:#dcffa57a}.bw-flatsome .derby-event .db-hero .db-hero-prize{margin-top:16px;margin-bottom:8px}.db-hero-award b{text-shadow:none}
@media(max-width:1200px) and (min-width:850px){.db-duel-player{left:0;width:270px}.db-duel-foden{left:auto;right:0}.db-hero-awards{max-width:590px;gap:8px}.db-hero-award{gap:7px;padding:9px}.db-hero-award>img{width:76px;height:55px}.db-hero-award-trip>img{width:50px}.db-hero-award b{font-size:11px}.db-hero-award-coin{width:31px;height:31px;font-size:20px}.db-duel-tag>b{font-size:16px}}
@media(max-width:849px){.db-real-duel-stage{height:310px;margin-top:18px}.db-duel-player{left:-3%;width:53%;height:290px;bottom:20px}.db-duel-foden{left:auto;right:-3%}.db-duel-portrait.db-duel-art{bottom:58px;width:135%;left:-17.5%}.db-duel-tag{bottom:4px;left:10%;right:0;padding:7px 5px}.db-duel-foden .db-duel-tag{left:0;right:10%}.db-duel-tag>b{font-size:13px}.db-duel-tag>small{font-size:5.5px}.db-duel-team-number{font-size:45px;top:22%}.db-hero-awards{grid-template-columns:1.08fr 1fr .86fr;gap:6px;margin-top:16px;max-width:100%;width:100%}.db-hero-award{padding:7px 5px;gap:6px;flex-direction:column;text-align:center;min-height:112px;border-radius:10px;justify-content:flex-start}.db-hero-award>img,.db-hero-award-trip>img{width:100%;height:42px;border-radius:5px;object-fit:cover;flex:0 0 42px}.db-hero-award-phone>img{object-fit:contain}.db-hero-award small{font-size:6px;letter-spacing:.5px;margin-bottom:3px}.db-hero-award b{font-size:10px;white-space:normal}.db-hero-award em{font-size:7px;margin-top:3px}.db-hero-award-coin{width:36px;height:36px;font-size:23px;margin:3px 0;flex:0 0 36px}.bw-flatsome .derby-event .db-hero{padding-top:32px!important}.db-hero .db-hero-sub{margin-bottom:17px!important}.db-hero .db-campaign-date{margin-bottom:14px!important}.db-hero-meta{margin-bottom:16px}.bw-flatsome .derby-event .db-hero h1{margin-bottom:18px}}
@media(max-width:380px){.db-real-duel-stage{height:285px}.db-duel-player{height:267px}.db-duel-tag>b{font-size:11px}.db-duel-tag>small{font-size:5px}.db-hero-award b{font-size:9px}.db-hero-award{min-height:109px}.db-hero-award em{font-size:6.5px}}
/* Keep all six poses inside the hero, including extended arms and shooting boots. */
@media(min-width:1201px){.db-duel-player{left:32px}.db-duel-foden{left:auto;right:32px}}
@media(max-width:849px){.db-duel-player{left:4%;width:46%}.db-duel-foden{left:auto;right:4%}.db-duel-portrait.db-duel-art{width:123%;left:-11.5%}.db-duel-tag{left:0;right:0}.db-duel-foden .db-duel-tag{left:0;right:0}}
.db-duel-foden[data-pose='receive'] .db-duel-art{transform:none}
.derby-event .db-hero h1 em{text-shadow:none!important}@media(min-width:850px){.db-duel-tag{bottom:-20px}}
/* The idle Bruno cell stops before the adjacent jump cell begins. Preserve both boots. */
.db-duel-bruno:not([data-pose]) .db-duel-art,.db-duel-bruno[data-pose='ready'] .db-duel-art{mask-image:linear-gradient(180deg,#000 0%,#000 94%,transparent 94.7%);mask-composite:add}

/* Keep name cards anchored while only the full-body artwork follows the ball. */
.db-real-duel-stage .db-duel-player{transform:none!important;animation:none!important;will-change:auto}
.db-duel-player .db-duel-portrait.db-duel-art{transform:translate3d(var(--dx,0px),var(--dy,0px),0) rotate(var(--dr,0deg));transform-origin:50% 82%;will-change:transform}
.db-duel-foden .db-duel-portrait.db-duel-art{transform:translate3d(var(--dx,0px),var(--dy,0px),0) rotate(var(--dr,0deg)) scaleX(-1)}
.db-duel-foden[data-pose='receive'] .db-duel-portrait.db-duel-art{transform:translate3d(var(--dx,0px),var(--dy,0px),0) rotate(var(--dr,0deg))}
@media(prefers-reduced-motion:reduce){.db-duel-player .db-duel-portrait.db-duel-art{transform:none!important}.db-duel-foden .db-duel-portrait.db-duel-art{transform:scaleX(-1)!important}.db-duel-foden[data-pose='receive'] .db-duel-portrait.db-duel-art{transform:none!important}}

/* The 2026/27 City artwork faces left natively: never mirror kit lettering. */
.db-duel-foden .db-duel-portrait.db-duel-art,.db-duel-foden[data-pose='receive'] .db-duel-portrait.db-duel-art{transform:translate3d(var(--dx,0px),var(--dy,0px),0) rotate(var(--dr,0deg))}
.db-duel-ball svg{animation-play-state:var(--db-ball-state,running);animation-direction:var(--db-ball-direction,normal)}
@media(prefers-reduced-motion:reduce){.db-duel-player .db-duel-portrait.db-duel-art,.db-duel-foden .db-duel-portrait.db-duel-art,.db-duel-foden[data-pose='receive'] .db-duel-portrait.db-duel-art{transform:none!important}}

/* Use the complete recovery stance for idle. Expand only the header cell to preserve the trailing boot. */
.db-duel-foden:not([data-pose]) .db-duel-art,.db-duel-foden[data-pose='ready'] .db-duel-art{background-position:100% 100%}
.db-duel-foden[data-pose='header'] .db-duel-art{background-size:280% 200%;background-position:0% 100%;clip-path:polygon(0 0,93.33% 0,93.33% 60%,100% 60%,100% 100%,0 100%)}

/* Let the shared ball pass over hero panels while player name cards stay behind them. */
.db-real-duel-stage{z-index:auto;isolation:auto}.db-duel-player{z-index:1}
.db-duel-foden:not([data-pose]) .db-duel-art,.db-duel-foden[data-pose='ready'] .db-duel-art,.db-duel-foden[data-pose='recover'] .db-duel-art{clip-path:inset(0 0 0 10%)}
/* Keep contact boots visible above center panels and exclude neighboring sprite cells. */
.db-duel-player[data-pose='pass'],.db-duel-player[data-pose='shoot']{z-index:4}
.db-duel-ball{z-index:6}.db-duel-trail,.db-duel-impact{z-index:5}
.db-duel-foden[data-pose='shoot'] .db-duel-art{clip-path:polygon(0 0,100% 0,100% 100%,6% 100%,6% 62%,0 62%)}
.db-duel-foden[data-pose='pass'] .db-duel-art{clip-path:polygon(0 0,100% 0,100% 100%,6% 100%,6% 82%,0 82%)}
