 *{box-sizing:border-box}:root{--bg:#050907;--panel:#0c1c14;--text:#fff;--muted:#a9c3b3;--green:#42ef91;--red:#ff3d36;--gold:#ffc94d}
/* Final layout: simple stadium squad screen; result uses a background, live ball, then supporter cut-out. */
.squad-screen .pinball-art{display:none!important}.squad-plaque-copy{top:54%!important}.squad-plaque-copy h1{color:#fff5b9!important;background:none!important;-webkit-background-clip:initial!important;text-shadow:0 2px 2px #3a1700,0 0 9px rgba(255,190,44,.55)!important}.squad-screen .bottom{left:50%!important;transform:translateX(-50%)!important;display:block!important;padding:0 13% max(18px,env(safe-area-inset-bottom))!important;background:transparent!important;text-align:center}.squad-screen .bottom span{display:none!important}.squad-screen .bottom .btn{width:100%!important;min-height:54px!important;border-color:#ff9a8b!important;background:linear-gradient(to bottom,#ff766d 0%,#ff2e2e 28%,#db0505 70%,#900000 100%)!important;box-shadow:inset 0 2px 2px rgba(255,255,255,.38),inset 0 -6px 7px rgba(80,0,0,.75),0 5px 0 #5d0000,0 9px 15px rgba(0,0,0,.45)!important}.result-card{height:100dvh!important;max-height:none!important;overflow:hidden!important;background:#000!important}.result-arena{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;z-index:0!important}.result-card .result-scene{position:absolute!important;inset:0!important;margin:0!important;padding:0!important;min-height:0!important;z-index:2!important}.result-card .card-in-hand{position:static!important}.result-card .mini-label{position:absolute!important;left:0;right:0;text-align:center!important;font-size:.72rem!important;font-weight:1000!important;color:#fff!important;text-shadow:0 2px 4px #000!important;z-index:3!important}.result-card .mini-label:nth-of-type(1){top:17%!important}.result-card .mini-label:nth-of-type(2){top:54%!important}.result-card #winningBall{position:absolute!important;top:22%!important;left:50%!important;transform:translateX(-50%);width:min(34vw,165px)!important;z-index:3!important}.result-card #yourResultBall{position:absolute!important;top:61%!important;left:50%!important;transform:translateX(-50%);width:min(48vw,220px)!important;z-index:3!important}.result-supporter{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;z-index:4!important;pointer-events:none}.result-card .score{position:absolute!important;left:0;right:0;top:79%!important;z-index:5!important;text-shadow:0 2px 5px #000!important}.result-card .score-text{position:absolute!important;left:8%;right:8%;top:84%!important;z-index:5!important;text-shadow:0 2px 4px #000!important}.result-card .result-actions{position:absolute!important;left:12%;right:12%;bottom:3%!important;z-index:6!important}.modal{padding:0!important;background:#000!important}
/* Correct the full-canvas asset placement without stretching its 1440 × 2560 artwork. */
.game-header,.squad-header{overflow:hidden!important}.plaque-art,.squad-plaque-art{height:auto!important;min-height:0!important;bottom:auto!important;object-fit:contain!important}.plaque-copy,.squad-plaque-copy{top:44%!important}.plaque-copy p,.squad-plaque-copy p{margin:0!important;line-height:1.05!important}.action-dock{bottom:max(18px,env(safe-area-inset-bottom))!important;padding:0 13%!important;background:transparent!important}.action-button{min-height:54px!important;border-color:#ff9a8b!important;background:linear-gradient(to bottom,#ff766d 0%,#ff2e2e 28%,#db0505 70%,#900000 100%)!important;box-shadow:inset 0 2px 2px rgba(255,255,255,.38),inset 0 -6px 7px rgba(80,0,0,.75),0 5px 0 #5d0000,0 9px 15px rgba(0,0,0,.45)!important}.result-card{height:100dvh!important;max-height:none!important;overflow:hidden!important;background:#000!important}.result-arena{object-fit:cover!important}.result-card .result-scene{position:absolute!important;inset:0!important;margin:0!important;padding:0!important;min-height:0!important}.result-card .card-in-hand{position:static!important}.result-card .mini-label{position:absolute!important;left:0;right:0;text-align:center!important;font-size:.72rem!important;font-weight:1000!important;color:#fff!important;text-shadow:0 2px 4px #000!important;z-index:3}.result-card .mini-label:nth-of-type(1){top:17%!important}.result-card .mini-label:nth-of-type(2){top:57%!important}.result-card #winningBall{position:absolute!important;top:22%!important;left:50%!important;transform:translateX(-50%);width:min(34vw,165px)!important;z-index:3}.result-card #yourResultBall{position:absolute!important;top:63%!important;left:50%!important;transform:translateX(-50%);width:min(48vw,220px)!important;z-index:3}.result-card .score{position:absolute!important;left:0;right:0;top:80%!important;z-index:3;text-shadow:0 2px 5px #000!important}.result-card .score-text{position:absolute!important;left:8%;right:8%;top:85%!important;z-index:3;text-shadow:0 2px 4px #000!important}.result-card .result-actions{position:absolute!important;left:12%;right:12%;bottom:3%!important;z-index:5}.modal{padding:0!important;background:#000!important}
/* Visual revision: retain full-canvas asset proportions; crop them rather than vertically squashing them. */
.game-header,.squad-header{overflow:hidden}.plaque-art,.squad-plaque-art{height:auto!important;min-height:0!important;bottom:auto!important;object-fit:contain!important}.game-header .plaque-art{top:0}.squad-plaque-art{top:0}.plaque-copy,.squad-plaque-copy{top:49%!important}.action-dock{bottom:max(18px,env(safe-area-inset-bottom))!important;padding:0 13%!important;background:transparent!important}.action-button{min-height:54px!important;border-color:#ff6565!important;box-shadow:inset 0 2px 3px rgba(255,255,255,.62),inset 0 -6px 7px rgba(80,0,0,.75),0 5px 0 #5d0000,0 9px 15px rgba(0,0,0,.45)!important}.flyer{filter:drop-shadow(0 0 12px #ffd34e) drop-shadow(0 0 25px #ff6c17)}.flyer.animate{animation:power-flight 1.25s cubic-bezier(.16,.84,.18,1) forwards!important}@keyframes power-flight{0%{opacity:0;left:50%;top:90%;transform:translate(-50%,-50%) scale(.22) rotate(0)}10%{opacity:1;left:48%;top:86%;transform:translate(-50%,-50%) scale(.45) rotate(80deg)}30%{left:23%;top:57%;transform:translate(-50%,-50%) scale(.78) rotate(250deg)}52%{left:30%;top:19%;transform:translate(-50%,-50%) scale(.92) rotate(480deg)}72%{left:74%;top:13%;transform:translate(-50%,-50%) scale(.85) rotate(660deg)}88%{left:var(--target-x);top:calc(var(--target-y) - 7%);transform:translate(-50%,-50%) scale(.64) rotate(810deg)}100%{opacity:1;left:var(--target-x);top:var(--target-y);transform:translate(-50%,-50%) scale(.32) rotate(900deg)}}.ball-slot.impact{animation:impact .52s ease-out}@keyframes impact{0%{transform:scale(.45);filter:brightness(2.6);text-shadow:0 0 18px #fff}55%{transform:scale(1.3);filter:brightness(1.7)}100%{transform:scale(1);filter:none}}
.result-card{padding:0!important;width:min(100%,760px)!important;max-height:98dvh!important;border:0!important;border-radius:0!important;background:#02080d!important}.result-arena{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.result-card>*:not(.result-arena){position:relative;z-index:1}.result-card .logo,.result-card .result-title,.result-card .result-sub{display:none}.result-scene{margin:15% 13% 0;border:0!important;background:transparent!important;padding:0!important;min-height:0!important}.card-in-hand{width:100%!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;transform:none!important;color:#fff!important}.mini-label{font-size:.72rem!important;letter-spacing:.12em;color:#fff!important;text-shadow:0 2px 4px #000}.result-ball{width:min(31vw,170px)!important;margin:0 1%!important;filter:drop-shadow(0 5px 8px rgba(0,0,0,.7))!important}.score{margin:5px 0 0!important;text-shadow:0 2px 5px #000}.score-text{padding:0 15%;text-shadow:0 2px 4px #000}.result-actions{position:absolute!important;left:12%;right:12%;bottom:4%;gap:8px}.result-actions .btn{border-radius:999px;min-height:46px}.modal{padding:0!important;background:#000!important}
/* First screen uses the same layered visual language while keeping the list native and scrollable. */
.squad-screen{position:relative;isolation:isolate;min-height:100dvh;overflow:hidden;padding:0 10px 95px;background:#03110e}.squad-screen .art-layer{z-index:-3}.squad-screen .pinball-art{z-index:-2}.squad-plaque-art{position:absolute;left:0;right:0;top:0;width:100%;height:23dvh;min-height:170px;object-fit:fill;pointer-events:none;z-index:1}.squad-header{height:22.5dvh;min-height:174px;position:relative;z-index:3}.squad-plaque-copy{position:absolute;top:43%;left:14%;right:14%;transform:translateY(-50%);text-align:center}.squad-plaque-copy h1{margin:0;font-size:clamp(1.05rem,5.8vw,2.05rem);font-weight:1000;letter-spacing:.045em;background:linear-gradient(#fff9c4,#ffd75c 45%,#ff9d1f);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 2px 1px #4e2200,0 0 13px rgba(255,190,44,.55)}.squad-plaque-copy p{margin:.3rem 0 0;font-size:clamp(.48rem,2.3vw,.78rem);font-weight:900;letter-spacing:.08em;color:#fff;text-shadow:0 1px 3px #000}.squad-header .counter{position:absolute;right:4.5%;top:8%;z-index:4}.squad-panel{position:relative;z-index:2;background:rgba(4,18,15,.8);border-color:rgba(255,201,77,.45);backdrop-filter:blur(2px)}.squad-screen .player-list{max-height:calc(100dvh - 315px)}.squad-screen .bottom{background:linear-gradient(transparent,rgba(0,0,0,.85) 32%);border:0}.squad-screen .bottom .btn{border-radius:999px;background:linear-gradient(to bottom,rgba(255,255,255,.86) 0 7%,rgba(255,255,255,.3) 8% 20%,#ff3030 21%,#d90000 72%,#980000 100%);box-shadow:inset 0 2px 3px rgba(255,255,255,.75),inset 0 -6px 7px rgba(80,0,0,.75),0 6px 0 #5d0000}
html,body{margin:0;min-height:100%;background:radial-gradient(circle at 50% -10%,#16452b,#050907 45%);color:var(--text);font-family:Arial,Helvetica,sans-serif}body{min-height:100vh}button{font:inherit}
.app{width:min(100%,760px);margin:auto;min-height:100vh;padding:12px 10px 95px}.topbar{display:flex;justify-content:space-between;align-items:center;padding:4px 5px 12px}.logo{font-size:1.15rem;font-weight:1000}.logo span{color:var(--green)}.logo.small{font-size:.9rem}.tagline{font-size:.56rem;letter-spacing:.23em;color:var(--gold);font-weight:900}.counter{border:2px solid #3e7255;border-radius:13px;background:#0a1710;padding:8px 12px}.counter b{font-size:1.15rem}.counter small{color:var(--muted);font-weight:900}
.panel{background:linear-gradient(180deg,rgba(16,42,29,.97),rgba(7,16,11,.99));border:1px solid #315641;border-radius:20px;box-shadow:0 18px 60px rgba(0,0,0,.35);overflow:hidden}.panel-title{display:flex;gap:10px;padding:15px 14px 10px}.panel-title h1{margin:0;font-size:1.35rem}.panel-title p{margin:5px 0 0;color:var(--muted);font-size:.78rem}.lamp{width:9px;height:9px;border-radius:50%;background:var(--red);box-shadow:0 0 13px var(--red);margin-top:5px;flex:none}.lamp.green{background:var(--green);box-shadow:0 0 13px var(--green)}
.player-list{padding:5px 9px 14px;max-height:calc(100vh - 160px);overflow:auto}.player{display:flex;align-items:center;gap:8px;width:100%;min-height:57px;margin-bottom:6px;padding:5px 8px;border:1px solid #274434;border-radius:12px;background:#f4f7f5;color:#131815;text-align:left;cursor:pointer}.player.selected{background:#d8f8e5;border-color:var(--green)}.player:disabled{opacity:.5}.order{width:23px;height:23px;border-radius:50%;background:#dfe7e2;display:grid;place-items:center;font-size:.7rem;font-weight:1000;flex:none}.selected .order{background:var(--green)}.name{font-size:.8rem;font-weight:900;flex:1}.position,.number{font-size:.7rem;color:#5d6c63}.number{font-weight:1000;color:#1c261f}
.bottom{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,760px);z-index:30;background:rgba(4,10,7,.96);border-top:1px solid #294334;padding:10px 12px max(10px,env(safe-area-inset-bottom));display:flex;gap:10px;align-items:center}.bottom span{flex:1;color:var(--muted);font-size:.75rem}.btn{border:0;border-radius:12px;min-height:45px;padding:0 17px;font-weight:1000;cursor:pointer}.btn:disabled{opacity:.3;cursor:not-allowed}.btn.red{background:linear-gradient(#ff5b52,#d9231f);color:#fff;border:1px solid #ff9b96;box-shadow:0 5px 0 #78120f}.btn.green{background:linear-gradient(#65f4a2,#27c875);color:#062313;border:1px solid #9cffc2;box-shadow:0 5px 0 #0d6939}.btn.dark{background:#14241c;color:#fff;border:1px solid #3b5347}
.ball-stage{position:relative;min-height:350px;display:grid;place-items:center;overflow:hidden}
.ball{width:min(70vw,330px);aspect-ratio:1;background:url("../assets/TeamBall.webp") center/contain no-repeat;position:relative;z-index:4;filter:drop-shadow(0 14px 13px rgba(0,0,0,.45))}.ball-slot{position:absolute;width:22%;height:19%;display:grid;place-items:center;border-radius:50%;font-size:clamp(1.25rem,7vw,2.1rem);font-weight:1000;color:#222;text-shadow:0 1px #fff}.ball-slot.filled{background:rgba(255,255,255,.73)}.slot-top{left:39%;top:18%}.slot-left{left:22%;top:37%}.slot-right{left:56%;top:37%}.slot-centre{left:39%;top:49%;color:#fff;text-shadow:0 2px 3px #222}.slot-lower-left{left:30%;top:64%}.slot-lower-right{left:50%;top:64%}
.message-board{margin:0 14px 12px;padding:10px 12px;text-align:center;border:1px solid #596d42;border-radius:9px;background:linear-gradient(#17281a,#0b150d);font-weight:1000;font-size:.78rem;letter-spacing:.04em}.shirt-grid{display:grid;gap:7px;padding:0 13px}.shirt-grid.eleven{grid-template-columns:repeat(4,1fr)}.shirt-grid.six{grid-template-columns:repeat(6,1fr)}
.shirt-button{position:relative;border:0;background:transparent;min-width:0;padding:0;cursor:pointer;filter:drop-shadow(0 5px 4px rgba(0,0,0,.5))}.shirt-button img{display:block;width:100%;height:70px;object-fit:contain}.shirt-number{position:absolute;inset:0;display:grid;place-items:center;padding-top:4px;color:#fff;font-weight:1000;font-size:clamp(1.1rem,5vw,1.7rem);text-shadow:0 2px 2px #333}.shirt-button.selected{filter:drop-shadow(0 0 7px var(--green))}.shirt-button.used{opacity:.22;pointer-events:none}.reveal{display:block;margin:14px auto 0;min-width:220px}
.flyer{position:absolute;left:50%;top:88%;width:54px;height:54px;z-index:10;opacity:0;pointer-events:none}.flyer img{width:100%;height:100%;object-fit:contain}.flyer.animate{animation:flight .95s cubic-bezier(.2,.85,.25,1) forwards}@keyframes flight{0%{opacity:0;left:48%;top:88%;transform:translate(-50%,-50%) scale(.28) rotate(0)}12%{opacity:1}45%{left:30%;top:28%;transform:translate(-50%,-50%) scale(.65) rotate(150deg)}72%{left:68%;top:13%;transform:translate(-50%,-50%) scale(.8) rotate(280deg)}100%{opacity:1;left:var(--target-x);top:var(--target-y);transform:translate(-50%,-50%) scale(.34) rotate(420deg)}}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.84);z-index:100;display:grid;place-items:center;padding:10px;backdrop-filter:blur(6px)}.hidden{display:none}.result-card{width:min(100%,720px);max-height:94vh;overflow:auto;border:1px solid #6c8650;border-radius:20px;background:radial-gradient(circle at 50% 0,#173c27,#08130d 58%);padding:17px 13px 14px;position:relative}.close{position:absolute;right:7px;top:4px;background:transparent;border:0;color:#fff;font-size:2rem}.result-title{text-align:center;font-size:1.6rem;font-weight:1000;margin-top:5px}.result-sub{text-align:center;color:var(--muted);font-size:.7rem;margin:4px 0 12px}.result-scene{border:1px solid #314c3a;border-radius:16px;background:linear-gradient(135deg,#101e16,#07100b);padding:13px;min-height:300px;position:relative;overflow:hidden}.card-in-hand{position:relative;z-index:3;width:min(94%,480px);margin:auto;padding:13px;border:5px solid #e1b74e;border-radius:10px;background:#eee9dc;color:#172018;box-shadow:0 15px 25px rgba(0,0,0,.5);transform:rotate(-1deg);text-align:center}.mini-label{text-align:center;font-weight:1000;font-size:.66rem;margin:3px 0 4px}.result-ball{width:min(42vw,190px);display:inline-block;vertical-align:middle;margin:0 2%;filter:none}.result-ball .ball-slot{font-size:clamp(.7rem,3vw,1.05rem)}.score{text-align:center;font-size:2.1rem;font-weight:1000;color:var(--gold);margin:12px 0 2px}.score-text{text-align:center;font-weight:900;font-size:.85rem;margin:0 0 10px}.result-actions{display:flex;gap:9px}.result-actions>*{flex:1}.correct{background:rgba(66,239,145,.82)!important;color:#06301a!important}.wrong{background:rgba(255,61,54,.82)!important;color:#fff!important}
@media(max-width:480px){.app{padding-left:8px;padding-right:8px}.player-list{max-height:calc(100vh - 145px)}.ball-stage{min-height:330px}.shirt-grid.eleven{grid-template-columns:repeat(3,1fr)}.shirt-grid.six{gap:4px;padding:0 8px}.shirt-button img{height:67px}.shirt-number{font-size:1.1rem}.result-ball{width:43vw}}
@media(prefers-reduced-motion:reduce){.flyer.animate{animation:none;opacity:1;left:50%;top:50%}}
.js-warning{padding:14px;color:#ffc94d;font-size:.8rem}.player-list{min-height:200px}

/* v5 supplied full-canvas artwork: display it at its natural aspect ratio and crop the unused lower canvas. */
.squad-plaque-copy,.plaque-copy{display:none!important}.squad-header,.game-header{height:156px!important;min-height:156px!important;overflow:hidden!important}.squad-plaque-art,.plaque-art{position:absolute!important;top:0!important;left:0!important;width:100%!important;height:auto!important;min-height:0!important;object-fit:contain!important;transform:none!important}.squad-header .counter,.game-header .counter{top:14px!important;right:4%!important;z-index:8!important}.squad-screen{padding-bottom:86px!important}.squad-screen .squad-panel{max-height:calc(100dvh - 232px)!important;overflow:hidden!important}.squad-screen .player-list{max-height:calc(100dvh - 326px)!important;padding-bottom:10px!important}.squad-screen .bottom{height:76px!important;bottom:0!important;padding:7px 13% max(13px,env(safe-area-inset-bottom))!important;z-index:40!important}.squad-screen .bottom .btn{min-height:52px!important}

/* A single clean launch: rise, crest, then drop onto its football panel. */
.flyer.animate{animation:flip-flight 1.1s cubic-bezier(.22,.82,.2,1) forwards!important}@keyframes flip-flight{0%{opacity:0;left:50%;top:89%;transform:translate(-50%,-50%) scale(.22) rotate(0)}14%{opacity:1;left:50%;top:78%;transform:translate(-50%,-50%) scale(.46) rotate(72deg)}48%{left:42%;top:25%;transform:translate(-50%,-50%) scale(.88) rotate(235deg)}75%{left:var(--target-x);top:calc(var(--target-y) - 9%);transform:translate(-50%,-50%) scale(.67) rotate(340deg)}100%{opacity:1;left:var(--target-x);top:var(--target-y);transform:translate(-50%,-50%) scale(.33) rotate(430deg)}}

/* Result: background, winner plaque, user ball and supporter are independent layers at their shared 1440 × 2560 art coordinates. */
.modal{padding:0!important;background:#000!important}.result-card{width:min(100%,760px)!important;height:100dvh!important;max-height:none!important;overflow:hidden!important;border:0!important;border-radius:0!important;padding:0!important;background:#000!important}.result-arena{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;z-index:0!important}.winner-plaque{position:absolute!important;top:0!important;left:0!important;width:100%!important;height:auto!important;z-index:1!important;pointer-events:none}.result-card .result-scene{position:absolute!important;inset:0!important;margin:0!important;padding:0!important;min-height:0!important;background:transparent!important;border:0!important;overflow:visible!important;z-index:3!important}.result-card .card-in-hand{position:static!important;width:auto!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;transform:none!important}.result-card .mini-label{position:absolute!important;left:5%!important;right:auto!important;margin:0!important;color:#fff!important;font-size:clamp(.58rem,2.5vw,.85rem)!important;font-weight:1000!important;letter-spacing:.08em!important;text-align:left!important;text-shadow:0 2px 4px #000!important;z-index:6!important}.result-card .mini-label:nth-of-type(1){top:6.9%!important}.result-card .mini-label:nth-of-type(2){top:58.5%!important;left:50%!important;right:auto!important;transform:translateX(-50%)!important;text-align:center!important}.result-card #winningBall{position:absolute!important;top:4.2%!important;left:72.5%!important;width:min(24vw,140px)!important;margin:0!important;transform:translateX(-50%)!important;z-index:5!important}.result-card #yourResultBall{position:absolute!important;top:64%!important;left:50%!important;width:min(49vw,265px)!important;margin:0!important;transform:translateX(-50%)!important;z-index:5!important}.result-supporter{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;z-index:4!important;pointer-events:none!important}.result-card .score{position:absolute!important;top:86%!important;left:0!important;right:0!important;margin:0!important;z-index:7!important;text-shadow:0 2px 5px #000!important}.result-card .score-text{position:absolute!important;top:90.5%!important;left:8%!important;right:8%!important;margin:0!important;padding:0!important;z-index:7!important;text-shadow:0 2px 4px #000!important}.result-card .result-actions{position:absolute!important;left:12%!important;right:12%!important;bottom:max(18px,env(safe-area-inset-bottom))!important;margin:0!important;z-index:8!important}.result-card .close{z-index:9!important}

/* v6 positioning refinements from the supplied screen guides. */
.squad-panel{padding-top:6px!important}.squad-panel .player-list{padding-top:3px!important}.game-content{top:26px!important}.result-card{isolation:isolate!important}.result-card .mini-label:nth-of-type(1){top:8.4%!important;left:15%!important;width:43%!important;text-align:center!important;font-size:clamp(.58rem,2.8vw,.9rem)!important}.result-card .mini-label:nth-of-type(2){display:none!important}.result-card #winningBall{top:4.1%!important;left:75%!important;width:min(25vw,148px)!important;z-index:8!important}.result-card #yourResultBall{top:64%!important;left:50%!important;width:min(49vw,265px)!important;display:block!important;z-index:10!important}.result-supporter{z-index:4!important}.result-card .score{top:20%!important;z-index:11!important;font-size:clamp(1.65rem,8vw,2.45rem)!important}.result-card .score-text{top:25.2%!important;left:10%!important;right:10%!important;z-index:11!important;font-size:clamp(.72rem,3.2vw,.96rem)!important}.result-card .result-actions{bottom:max(17px,env(safe-area-inset-bottom))!important;z-index:12!important}

/* v7: use the vacant lower playfield, keep the supplied subtitles clear, and put the player's live ball above the fan. */
.squad-screen .squad-panel{margin-top:42px!important}.game-content{top:52px!important}.result-card .result-scene{z-index:6!important}.result-card .winning-label{top:8.4%!important;left:15%!important;width:43%!important;text-align:center!important}.result-card .your-label{display:none!important}.result-card #yourResultBall{z-index:12!important}.result-supporter{z-index:4!important}

/* v8: reveal the complete two-line Top 6 instruction while preserving the playfield position. */
.game-header{height:190px!important;min-height:190px!important}.game-content{top:18px!important}.result-card .winning-label{top:7.4%!important;left:12%!important;width:44%!important;font-size:clamp(.78rem,3.7vw,1.12rem)!important}.matched-summary{position:absolute!important;top:11.2%!important;left:12%!important;width:44%!important;text-align:center!important;color:#ffd75c!important;font-size:clamp(.58rem,2.6vw,.82rem)!important;font-weight:1000!important;letter-spacing:.08em!important;text-shadow:0 2px 4px #000!important;z-index:14!important}.result-card #winningBall{left:62%!important}.result-card #yourResultBall{top:60.5%!important;width:min(62vw,310px)!important}.result-card #yourResultBall .ball-slot{font-size:clamp(1rem,5.5vw,1.7rem)!important}

/* v9 result typography and spacing. */
.result-card #winningBall{left:67%!important}.result-card .winning-label{font-size:clamp(.9rem,4.1vw,1.25rem)!important}.matched-summary{font-size:clamp(.68rem,3.1vw,.98rem)!important}.result-card .score-text{font-size:clamp(.86rem,3.8vw,1.12rem)!important;line-height:1.2!important}

/* v10: compact two-line winner label, sized for the left half of the plaque. */
.result-card .winning-label{font-size:clamp(1rem,4.7vw,1.4rem)!important;line-height:1.08!important;letter-spacing:.06em!important}

/* v11: fixed presentation size for the two user-requested result labels. */
.result-card .winning-label{font-size:1rem!important}.matched-summary{top:13.8%!important;font-size:1rem!important}.result-card .score-text{font-size:1rem!important}

/* v12: match the user-tuned winner plaque typography and spacing exactly. */
.result-card .winning-label{top:6.4%!important;font-size:1rem!important}.matched-summary{top:11.8%!important;font-size:.8rem!important}.result-card .score-text{font-size:1rem!important}

/* Result spacing: give the score explanation its own clear line beneath the score. */
.result-card .score-text{top:28%!important;font-size:1.12rem!important;line-height:1.24!important}

/* v28: keep the score clear of the winning-ball plaque and make the shop sign actionable. */
.result-card .score{top:23.5%!important}
.result-card .score-text{top:29.5%!important}
.stadium-shop-link{position:absolute;z-index:13;left:72%;top:33%;width:28%;height:9%;display:block;border-radius:8px}

/* Splash screen: the provided artwork remains untouched; all club-facing wording is live, editable HTML. */
.splash-screen{margin:0;min-height:100dvh;background:#02060a;font-family:Arial,Helvetica,sans-serif;overflow:hidden}.splash-app{position:relative;isolation:isolate;width:min(100%,760px);height:100dvh;margin:auto;overflow:hidden;background:#02060a}.splash-background,.splash-copy-panel{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.splash-background{z-index:0}.splash-copy-panel{z-index:1}.splash-plaque-copy{position:absolute;z-index:2;top:9.7%;left:46%;right:7%;color:#fff;text-align:center;font-size:clamp(1.05rem,5.8vw,2.25rem);font-weight:1000;line-height:1.13;letter-spacing:.09em;text-shadow:0 3px 5px #000}.splash-message{position:absolute;z-index:2;top:43%;left:9%;right:9%;margin:0;text-align:center;color:#fff;text-shadow:0 3px 5px #000}.splash-message h1{margin:0;font-size:clamp(1.5rem,8.8vw,3rem);line-height:1.07;letter-spacing:.06em;font-weight:1000}.splash-message p{margin:.7rem 0 0;font-size:clamp(.85rem,4.3vw,1.35rem);line-height:1.18;font-weight:800}.splash-play{position:absolute;z-index:3;left:18%;right:18%;top:86.5%;min-height:58px;border:0;border-radius:14px;background:transparent;color:#2c1600;font-size:clamp(1rem,5vw,1.45rem);font-weight:1000;letter-spacing:.09em;cursor:pointer;text-shadow:0 1px rgba(255,255,255,.62);filter:drop-shadow(0 3px 5px rgba(0,0,0,.45));transition:transform .16s ease,filter .16s ease}.splash-play:hover,.splash-play:focus-visible{filter:drop-shadow(0 0 12px #ffd45c) drop-shadow(0 3px 5px rgba(0,0,0,.45));outline:0}.splash-play:active{transform:translateY(3px)}

/* v14: full-width splash artwork and selector-safe result typography. */
.result-card .mini-label.winning-label{top:6.4%!important;font-size:1rem!important;line-height:1.08!important}.splash-background,.splash-copy-panel{object-fit:fill!important}.splash-plaque-copy{top:10.1%!important;left:47%!important;right:5%!important;font-size:clamp(1rem,4.6vw,1.8rem)!important;line-height:1.16!important;letter-spacing:.035em!important}.splash-message{top:45%!important}.splash-play{top:84%!important;left:8%!important;right:8%!important;min-height:78px!important;font-size:clamp(1.35rem,7.5vw,2rem)!important;letter-spacing:.07em!important}

/* v15 arcade effects: restrained light movement, impact energy and result confetti. */
.splash-copy-panel,.splash-plaque-copy,.splash-message{display:none!important}.splash-sparkles{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(circle at 50% 42%,rgba(255,212,75,.28),transparent 16%),radial-gradient(circle at 25% 55%,rgba(64,170,255,.18),transparent 2%),radial-gradient(circle at 74% 34%,rgba(255,220,102,.2),transparent 2%);mix-blend-mode:screen;animation:splash-shimmer 3.8s ease-in-out infinite}@keyframes splash-shimmer{0%,100%{opacity:.3;transform:scale(1)}50%{opacity:.76;transform:scale(1.025)}}.splash-play{background:rgba(255,217,82,.035)!important;border:2px solid rgba(255,235,145,.23)!important;box-shadow:0 0 16px rgba(255,194,35,.4),inset 0 0 16px rgba(255,255,255,.14)!important;animation:play-pulse 1.9s ease-in-out infinite}.splash-play:hover,.splash-play:focus-visible{box-shadow:0 0 28px rgba(255,216,68,.9),inset 0 0 22px rgba(255,255,255,.25)!important}@keyframes play-pulse{0%,100%{filter:drop-shadow(0 2px 4px rgba(0,0,0,.45));transform:scale(1)}50%{filter:drop-shadow(0 0 17px #ffc73b);transform:scale(1.025)}}.sound-toggle{position:fixed;z-index:300;right:13px;top:max(13px,env(safe-area-inset-top));width:38px;height:38px;border:1px solid rgba(255,215,94,.72);border-radius:50%;background:rgba(1,9,13,.72);color:#fff;font-size:1rem;box-shadow:0 0 12px rgba(43,182,255,.42);cursor:pointer}.pinball-art{animation:arcade-lights 2.6s ease-in-out infinite}@keyframes arcade-lights{0%,100%{filter:brightness(1) saturate(1)}50%{filter:brightness(1.18) saturate(1.18)}}.action-button:not(:disabled){animation:button-charge 1.8s ease-in-out infinite}@keyframes button-charge{0%,100%{filter:brightness(1) drop-shadow(0 0 0 transparent)}50%{filter:brightness(1.16) drop-shadow(0 0 10px rgba(255,191,50,.8))}}.ball-slot.impact{box-shadow:0 0 22px 8px rgba(255,214,81,.76);border-radius:50%;animation:impact .52s ease-out,landing-glow .52s ease-out}@keyframes landing-glow{0%{box-shadow:0 0 0 0 rgba(255,250,185,1)}100%{box-shadow:0 0 22px 8px rgba(255,214,81,0)}}.celebration{position:absolute!important;inset:0!important;z-index:20!important;pointer-events:none;overflow:hidden}.celebration i{position:absolute;top:-7%;left:var(--x);width:7px;height:13px;border-radius:1px;background:#ffd351;opacity:0;transform:rotate(0)}.celebration i:nth-child(3n){background:#39e891}.celebration i:nth-child(3n+1){background:#ff4a42}.celebration.burst i{animation:confetti-fall 1.8s cubic-bezier(.18,.72,.35,1) var(--delay) forwards}@keyframes confetti-fall{0%{opacity:0;transform:translateY(0) rotate(0)}10%{opacity:1}100%{opacity:0;transform:translateY(108dvh) rotate(var(--spin))}}
@media(prefers-reduced-motion:reduce){.splash-sparkles,.splash-play,.pinball-art,.action-button:not(:disabled),.celebration.burst i{animation:none!important}}

/* Football boots become the physical pinball flippers. Their legs deliberately
   disappear below the machine so they feel like part of the playing field. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.sound-toggle{left:13px!important;right:auto!important}
.launch-label{position:absolute;z-index:3;left:28%;right:28%;top:37%;min-height:34px;padding:7px 5px;border:3px solid #1a1010;background:#fff;color:#111;text-align:center;font-size:clamp(.72rem,3.6vw,1rem);font-weight:1000;letter-spacing:.04em;box-shadow:0 3px 0 #9d1717,0 4px 12px #000;opacity:.7;transition:opacity .18s ease,transform .18s ease}

/* Top 6: the shirt grid remains clear; boots are visual flippers behind the
   red launch button and never take part in touch hit-testing. */
.game-content .message-board{display:none!important}.game-content .shirt-grid{margin-top:0!important}.action-button:disabled{opacity:1!important;filter:none!important;color:#fff!important;background:linear-gradient(to bottom,#ff978d 0%,#ff4b43 20%,#ef1515 48%,#c60000 76%,#8d0000 100%)!important}
@media(max-width:480px){.game-content .shirt-button img{height:56px!important}}

/* Desktop presentation: retain the artwork's 9:16 arcade cabinet rather than stretching a phone-first design across a wide browser. */
@media (min-width:900px){
  html,body{height:100%;overflow:hidden;background:#02060a}
  body.game-screen,body.squad-screen,body.splash-screen{display:grid;place-items:center}
  .game-app,.squad-screen,.splash-app{width:min(100vw,calc(100dvh * 9 / 16))!important;height:min(100dvh,calc(100vw * 16 / 9))!important;min-height:0!important;margin:0!important}
  .game-app,.splash-app,.squad-screen{aspect-ratio:9 / 16}
  .game-app .action-dock,.squad-screen .bottom{position:absolute!important;width:100%!important}
  .game-app .boot-decor{position:absolute!important;width:100%!important}
  .sound-toggle{position:absolute!important}
  .modal{display:grid!important;place-items:center!important}
  .modal.hidden{display:none!important}
  .modal .result-card{width:min(100vw,calc(100dvh * 9 / 16))!important;height:min(100dvh,calc(100vw * 16 / 9))!important}
}

/* Never allow a layout rule to reveal the results card before Reveal Result. */
.modal.hidden{display:none!important}

/* Make the interactive machine lights unmistakable in the prototype. */
.splash-play{box-shadow:0 0 24px 6px rgba(255,198,42,.62),inset 0 0 22px rgba(255,255,205,.26)!important}.action-button:not(:disabled){box-shadow:0 0 20px 4px rgba(255,183,39,.62),inset 0 2px 3px rgba(255,255,255,.64),inset 0 -6px 7px rgba(80,0,0,.75),0 5px 0 #5d0000!important}.pinball-art{filter:drop-shadow(0 0 8px rgba(40,180,255,.45))!important}

/* The supplied artwork provides the exact Play over-state, so no generic halo is required. */
.splash-over{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:1;pointer-events:none;opacity:0;transition:opacity .14s ease}.splash-app.play-hover .splash-over{opacity:1}.splash-play{z-index:3!important;background:transparent!important;border:0!important;box-shadow:none!important;animation:none!important;filter:none!important}.splash-play:hover,.splash-play:focus-visible{box-shadow:none!important;filter:none!important}.splash-sparkles{display:none!important}

.flyer{display:grid;place-items:center}
.flyer img{grid-area:1/1}
.flyer span{grid-area:1/1;z-index:2;color:#fff;font-weight:1000;font-size:20px;text-shadow:0 2px 2px #222;margin-top:3px}

/* Exact panel centres on TeamBall.webp: top, left, right, centre, bottom-left, bottom-right. */
.ball-slot{border-radius:0;background:transparent!important}
.slot-top{left:39%;top:8.5%}.slot-left{left:11%;top:32.5%}.slot-right{left:68%;top:30.5%}.slot-centre{left:40%;top:41.5%}.slot-lower-left{left:22%;top:66.5%}.slot-lower-right{left:59%;top:67.5%}
.correct{color:#16b962!important;text-shadow:0 1px #fff,0 0 8px rgba(22,185,98,.55)!important}.wrong{color:#e73530!important;text-shadow:0 1px #fff,0 0 8px rgba(231,53,48,.45)!important}

/* Full-screen artwork stage. All supplied assets share a 1440 × 2560 canvas. */
.game-screen{background:#02070a}.game-app{position:relative;isolation:isolate;min-height:100dvh;width:min(100%,760px);margin:auto;overflow:hidden;padding:0 0 104px;background:#03110e}.art-layer{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}.stadium-art{z-index:-3}.pinball-art{z-index:-2}.game-header{position:relative;height:22.5dvh;min-height:174px;z-index:3}.plaque-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}.plaque-copy{position:absolute;top:43%;left:14%;right:14%;transform:translateY(-50%);text-align:center}.plaque-copy h1{margin:0;font-size:clamp(1.05rem,5.8vw,2.05rem);font-weight:1000;letter-spacing:.045em;background:linear-gradient(#fff9c4,#ffd75c 45%,#ff9d1f);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 2px 1px #4e2200,0 0 13px rgba(255,190,44,.55)}.plaque-copy p{margin:.3rem 0 0;font-size:clamp(.48rem,2.3vw,.78rem);font-weight:900;letter-spacing:.08em;color:#fff;text-shadow:0 1px 3px #000}.game-header .counter{position:absolute;right:4.5%;top:8%;z-index:4}.game-content{position:relative;z-index:2;padding:0 8%}.game-content .ball-stage{min-height:clamp(270px,37dvh,390px)}.game-content .ball{width:min(64vw,320px)}.game-content .message-board{margin:0 0 10px;background:rgba(2,11,9,.78);border-color:rgba(255,201,77,.6);box-shadow:0 0 12px rgba(255,180,30,.18)}.game-content .shirt-grid{padding:0;grid-template-columns:repeat(4,1fr);gap:5px}.shirt-button.ready{filter:drop-shadow(0 0 11px #ffd34e) brightness(1.15);transform:translateY(-3px)}.action-dock{position:fixed;z-index:20;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,760px);padding:12px 15% max(13px,env(safe-area-inset-bottom));background:linear-gradient(transparent,rgba(0,0,0,.72) 30%)}.action-button{width:100%;min-height:58px;border:3px solid #ffb0a8;border-radius:999px;color:white;font-size:clamp(.85rem,4.4vw,1.2rem);font-weight:1000;letter-spacing:.04em;text-shadow:0 2px 1px #720000;background:linear-gradient(to bottom,rgba(255,255,255,.86) 0 7%,rgba(255,255,255,.3) 8% 20%,#ff3030 21%,#d90000 72%,#980000 100%);box-shadow:inset 0 2px 3px rgba(255,255,255,.75),inset 0 -6px 7px rgba(80,0,0,.75),0 6px 0 #5d0000,0 11px 20px rgba(0,0,0,.5);cursor:pointer}.action-button:disabled{filter:grayscale(.75) brightness(.5);cursor:not-allowed;box-shadow:inset 0 2px 3px rgba(255,255,255,.2),0 4px 0 #310000}.action-button:not(:disabled):active{transform:translateY(4px);box-shadow:inset 0 2px 5px rgba(0,0,0,.55),0 2px 0 #5d0000}.game-screen .flyer{z-index:10}@media(max-width:480px){.game-header{height:21.5dvh;min-height:158px}.game-content{padding:0 7%}.game-content .ball-stage{min-height:33dvh}.game-content .shirt-button img{height:58px}.action-dock{padding-left:12%;padding-right:12%}}

/* Login and saved-points layer. These sit above the artwork without changing the game board. */
.auth-screen{margin:0;background:#02070a;color:#fff;font-family:Arial,sans-serif}.auth-app{position:relative;isolation:isolate;width:min(100%,560px);min-height:100dvh;margin:auto;overflow:hidden;background:#06101d}.auth-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.auth-app:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.72));z-index:-1}.auth-card{position:absolute;left:8%;right:8%;top:17%;padding:24px 20px;border:1px solid rgba(255,205,82,.8);border-radius:20px;background:rgba(1,14,17,.91);box-shadow:0 0 30px rgba(255,181,30,.3),inset 0 0 24px rgba(42,151,255,.16);text-align:center}.auth-back{display:block;margin-bottom:12px;color:#a9e7ff;text-align:left;font-size:.82rem;text-decoration:none}.auth-card h1{margin:0;color:#ffe37a;font-size:clamp(1.55rem,8vw,2.4rem);line-height:.94;text-shadow:0 2px 1px #5a2100,0 0 12px rgba(255,204,52,.55)}.auth-intro{margin:13px 0 16px;font-weight:700;line-height:1.35}.auth-error{margin:0 0 12px;padding:9px;border-radius:8px;background:#811d20;color:#fff;font-size:.85rem;font-weight:700}.auth-tabs{display:flex;gap:7px;margin:0 0 14px}.auth-tab{flex:1;padding:10px 4px;border:1px solid #8d9e87;border-radius:9px;background:#17241e;color:#d4ddd2;font-weight:900;font-size:.72rem}.auth-tab.active{background:linear-gradient(#56eea3,#1db66c);color:#062415;border-color:#c8ffe2}.auth-form{display:grid;gap:11px;text-align:left}.auth-form.hidden{display:none}.auth-form label{display:grid;gap:5px;font-size:.8rem;font-weight:900;letter-spacing:.03em}.auth-form input{box-sizing:border-box;width:100%;padding:12px;border:1px solid #8aa397;border-radius:8px;background:#f6fff9;color:#122117;font-size:1rem}.auth-form small{color:#b8c7bc;font-size:.67rem;font-weight:600;letter-spacing:0}.auth-submit{margin-top:5px;min-height:51px;border:2px solid #ffb9ad;border-radius:999px;background:linear-gradient(#ff7067,#ed1717 48%,#970000);box-shadow:inset 0 2px 2px rgba(255,255,255,.5),0 4px #560000;color:#fff;font-size:.9rem;font-weight:1000;letter-spacing:.04em}.account-chip{position:absolute;right:9px;bottom:10px;z-index:30;max-width:70%;padding:6px 9px;border:1px solid #7ef5bd;border-radius:999px;background:rgba(2,29,20,.91);color:#d8ffec;font-size:.62rem;font-weight:900;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-account{top:10px;bottom:auto;right:57px;max-width:37%;font-size:.53rem}.points-panel{position:absolute;z-index:12;top:44%;left:2%;right:2%;display:flex;justify-content:space-between;gap:0;transform:none;width:auto;background:none;box-shadow:none;border:0;text-align:center}.points-card{width:24%;min-width:92px;padding:8px 4px;border:1px solid #ffe470;border-radius:10px;background:linear-gradient(120deg,rgba(4,38,32,.96),rgba(12,15,42,.96));box-shadow:0 0 15px rgba(255,213,56,.54),inset 0 0 12px rgba(78,240,173,.2)}.points-card span{display:block;font-size:.48rem;font-weight:1000;letter-spacing:.055em;color:#b7eed6;white-space:nowrap}.points-card b,.points-card strong{display:block;margin-top:3px;font-size:.94rem;white-space:nowrap}.points-card b{color:#ffdf5c;text-shadow:0 0 8px #ff9800}.points-card strong{color:#5affad;text-shadow:0 0 8px #14c875}@media(max-width:380px){.points-card{min-width:76px}.points-card span{font-size:.42rem}.points-card b,.points-card strong{font-size:.8rem}}
.points-panel{left:3.5%;right:3.5%}.points-card{width:22%;min-width:0}

/* Golden Shirt bonus and the simplified result screen. */
.ball{background-image:url("../assets/TeamBall.webp")!important}
.golden-modal{position:fixed;inset:0;z-index:250;display:grid;place-items:center;padding:14px;background:rgba(0,0,0,.8);backdrop-filter:blur(5px)}.golden-card{position:relative;width:min(94vw,440px);filter:drop-shadow(0 0 24px rgba(255,211,49,.8))}.golden-card>img{display:block;width:100%;height:auto}.golden-options{position:absolute;top:65%;left:18%;right:18%;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.golden-option{aspect-ratio:1;min-height:34px;border:2px solid #fff5a0;border-radius:50%;background:radial-gradient(circle,#fff8bd 0 8%,#f7bd25 42%,#9b5600 100%);box-shadow:0 0 9px rgba(255,231,83,.95),inset 0 1px 3px rgba(255,255,255,.85);color:#3a1900;font-size:clamp(.75rem,4vw,1.1rem);font-weight:1000;text-shadow:0 1px #fff;cursor:pointer}.golden-option:active{transform:scale(.91)}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.result-card .result-ball-placement{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:fill!important;z-index:5!important;pointer-events:none!important}.result-card #yourResultBall{background:none!important;filter:none!important;z-index:12!important}.result-card .total-score-panel{position:absolute!important;top:6.5%!important;left:11%!important;width:45%!important;z-index:16!important;text-align:center!important;animation:total-pulse 1.25s ease-in-out infinite}.total-score-panel span{display:block;color:#ffe796;font-size:clamp(.55rem,2.7vw,.88rem);font-weight:1000;letter-spacing:.1em;text-shadow:0 2px 4px #000}.total-score-panel strong{display:block;margin-top:3px;color:#fff05b;font-size:clamp(1.25rem,6.3vw,2.2rem);font-weight:1000;line-height:1;text-shadow:0 2px 4px #5d2600,0 0 14px #ffbd26}@keyframes total-pulse{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.08);filter:brightness(1.35)}}
.golden-modal.hidden{display:none!important}
.golden-options{top:59%;left:25%;right:25%;gap:4px}.golden-option{width:42px;min-height:0;font-size:.8rem;justify-self:center}
/* Keep the score labels centred on the supplied end-screen ball. */
.result-card #yourResultBall{top:58.8%!important}
.result-card .winning-gold-ball{background-image:url("../assets/TeamBallGold.png")!important}.golden-win-message{margin:7px -14% 0!important;color:#fff8a7!important;font-size:clamp(.5rem,2.6vw,.78rem)!important;font-weight:1000!important;line-height:1.13!important;letter-spacing:.055em!important;text-shadow:0 2px 4px #5b2800,0 0 10px #ffbd26!important;animation:golden-message-pulse .8s ease-in-out infinite alternate}@keyframes golden-message-pulse{from{transform:scale(.96);filter:brightness(1)}to{transform:scale(1.05);filter:brightness(1.4)}}
.result-reveal{position:absolute!important;inset:0!important;z-index:40!important;display:grid!important;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);place-items:center;gap:0;padding:0 4%;pointer-events:none;opacity:0;background:radial-gradient(circle,rgba(255,220,88,.32),rgba(2,9,18,.93) 75%)}.result-reveal i{width:130%;aspect-ratio:1;background:url("../assets/TeamBallGold.png") center/contain no-repeat;opacity:0;transform:scale(.18)}.result-reveal.play{animation:reveal-overlay .88s ease-out forwards}.result-reveal.play i{animation:football-burst .72s cubic-bezier(.18,.75,.25,1) forwards}.result-reveal.play i:nth-child(2){animation-delay:.04s}.result-reveal.play i:nth-child(3){animation-delay:.09s}.result-reveal.play i:nth-child(4){animation-delay:.03s}.result-reveal.play i:nth-child(5){animation-delay:.12s}.result-reveal.play i:nth-child(6){animation-delay:.07s}.result-reveal.play i:nth-child(7){animation-delay:.1s}.result-reveal.play i:nth-child(8){animation-delay:.05s}.result-reveal.play i:nth-child(9){animation-delay:.14s}@keyframes football-burst{0%{opacity:0;transform:scale(.18) rotate(-25deg)}25%{opacity:1;transform:scale(1.03) rotate(0)}100%{opacity:0;transform:scale(1.55) rotate(25deg)}}@keyframes reveal-overlay{0%,26%{opacity:1}100%{opacity:0;visibility:hidden}}
.golden-options{top:64.5%;gap:3px}.golden-option{width:36px;font-size:.72rem}
.result-reveal.play{animation:reveal-overlay 1.45s ease-out forwards}.result-reveal.play i{animation:football-burst 1.12s cubic-bezier(.18,.75,.25,1) forwards}@keyframes football-burst{0%{opacity:0;transform:scale(.1) rotate(-45deg)}18%{opacity:1;transform:scale(.86) rotate(0)}64%{opacity:1;transform:scale(1.18) rotate(18deg)}100%{opacity:0;transform:scale(1.82) rotate(42deg)}}@keyframes reveal-overlay{0%,38%{opacity:1}100%{opacity:0;visibility:hidden}}

/* A child goal is a single, clear moment between the score screen and album. */
.token-goal-modal{position:fixed;inset:0;z-index:400;display:grid;place-items:center;padding:20px;background:rgba(1,12,20,.78);backdrop-filter:blur(5px)}.token-goal-modal.hidden{display:none!important}.token-goal-card{width:min(88vw,390px);padding:30px 22px 25px;border:2px solid #ffe166;border-radius:27px;background:linear-gradient(145deg,#113d4c,#07160f 56%,#5e2300);box-shadow:0 0 30px #ffcb38,inset 0 0 26px rgba(67,237,167,.22);color:#fff;text-align:center}.token-goal-star{display:grid;place-items:center;width:68px;height:68px;margin:-56px auto 10px;border-radius:50%;background:radial-gradient(circle,#fff6aa,#ffc31e 52%,#a65b00);color:#fff;font-size:2.8rem;text-shadow:0 2px #7d3e00;box-shadow:0 0 19px #ffdb50}.token-goal-card h2{margin:0;color:#fff3a5;font-size:clamp(1.65rem,8vw,2.25rem);line-height:.93;text-shadow:0 2px #6b2900,0 0 11px #ffbf28}.token-goal-card p{margin:18px 0 20px;font-size:1.05rem;font-weight:1000;line-height:1.15}.token-goal-card strong{color:#57f5a6;font-size:1.35em;text-shadow:0 0 8px #18c878}.token-goal-card button,.collector-back{border:2px solid #ffefae;border-radius:999px;background:linear-gradient(#ffdd71,#ff8b1b 42%,#b91d00);box-shadow:inset 0 2px 2px #fff9c2,0 5px #5b1500;color:#fff;font-weight:1000;letter-spacing:.04em;text-shadow:0 2px #6b1c00;cursor:pointer}.token-goal-card button{width:100%;min-height:53px;font-size:.95rem}

/* Mobile-first collectors album. The supplied artwork remains the visual guide;
   interactive slots sit over its 4 × 6 grid so player art can be swapped later. */
.collectors-screen{margin:0;background:#071510;font-family:Arial,sans-serif;color:#111}.collectors-app{position:relative;width:min(100%,620px);min-height:100dvh;margin:auto;overflow:hidden;background:#102f27;aspect-ratio:9/16}.collectors-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}.collector-user{position:absolute;z-index:2;top:6.2%;left:20%;right:43%;overflow:hidden;color:#e20b12;font-size:clamp(.8rem,4.7vw,1.45rem);font-weight:1000;line-height:1.25;text-align:center;text-overflow:ellipsis;white-space:nowrap}.collector-heading{position:absolute;z-index:3;top:15%;left:4%;right:4%;margin:0;padding:4px;color:#ffea93;font-size:clamp(1rem,5.2vw,1.85rem);line-height:.93;text-align:center;text-shadow:0 2px 1px #5c2500,0 0 8px rgba(255,204,57,.8);pointer-events:none}.earned-token-area{position:absolute;z-index:5;top:2%;right:4%;width:31%;height:15%;display:grid;place-items:center}.token-disc{display:grid;place-items:center;align-content:center;width:74%;aspect-ratio:1;border:3px solid #fff4bd;border-radius:50%;background:radial-gradient(circle at 33% 25%,#fff8bd,#ffc536 39%,#d41518 72%,#720309);box-shadow:0 0 11px rgba(255,223,74,.9),inset 0 0 9px rgba(255,255,255,.7);color:#fff;text-align:center;text-shadow:0 2px #5b0808}.token-disc b{font-size:clamp(1rem,5vw,1.65rem);line-height:1}.token-disc small{max-width:92%;margin-top:3px;font-size:clamp(.43rem,2.1vw,.67rem);font-weight:1000;line-height:1.05;overflow-wrap:anywhere}.earned-token{cursor:pointer;animation:token-float 1.1s ease-in-out infinite alternate}.earned-token.selected{outline:4px solid #67f9ba;outline-offset:3px}@keyframes token-float{to{transform:translateY(-7px) rotate(3deg)}}.no-token{margin:0;color:#fff;font-size:clamp(.48rem,2.4vw,.7rem);font-weight:900;text-align:center;text-shadow:0 1px #000}.album-grid{position:absolute;z-index:4;top:21%;left:8%;right:8%;bottom:11%;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(6,1fr);gap:0}.album-slot{display:grid;place-items:start center;padding:0;border:0;background:transparent;cursor:default}.album-slot.target{cursor:pointer;filter:drop-shadow(0 0 13px #ffe860);animation:slot-pulse .78s ease-in-out infinite alternate}.album-slot.target:before{content:"";width:77%;aspect-ratio:1;border:3px dashed #fff1a4;border-radius:50%;background:rgba(255,207,42,.23)}@keyframes slot-pulse{to{filter:drop-shadow(0 0 22px #fff5a0);transform:scale(1.04)}}.placed-token{width:76%;margin-top:0;animation:token-place .42s ease-out}.album-slot .placed-token{pointer-events:none}@keyframes token-place{from{opacity:0;transform:scale(.25) rotate(-30deg)}to{opacity:1;transform:scale(1) rotate(0)}}.collector-hint{position:absolute;z-index:6;bottom:8.3%;left:4%;right:4%;margin:0;color:#fff;font-size:clamp(.55rem,2.8vw,.9rem);font-weight:1000;line-height:1.12;text-align:center;text-shadow:0 2px #99000a}.collector-back{position:absolute;z-index:7;right:6%;bottom:2.4%;width:29%;min-height:7%;font-size:clamp(.65rem,3.6vw,1.05rem);line-height:.86}.collector-back.disabled{filter:grayscale(.75) brightness(.65);cursor:not-allowed}@media(min-width:900px){.collectors-screen{display:grid;place-items:center;min-height:100vh;background:#02070a}.collectors-app{height:min(100dvh,calc(100vw * 16 / 9));min-height:0}}

/* Latest collectors artwork: a clean name plate, token dock and album grid. */
.collector-user{top:5.7%!important;left:25%!important;right:44%!important;color:#ba070d!important;font-size:clamp(.75rem,4vw,1.25rem)!important}.collector-heading{top:15.2%!important;left:8%!important;right:8%!important;color:#fff!important;font-size:clamp(.8rem,4.1vw,1.45rem)!important;text-shadow:0 2px 4px #101820,0 0 7px #f4bd3e!important}.earned-token-area{top:2.4%!important;right:5.4%!important;width:29%!important;height:12.5%!important}.earned-token-area .token-disc{width:68%!important}.album-grid{top:20.8%!important;bottom:8.4%!important;left:7%!important;right:7%!important}.collector-hint{bottom:4.7%!important;font-size:clamp(.46rem,2.3vw,.72rem)!important}.collector-back{right:4%!important;bottom:1.3%!important;width:34%!important;min-height:4.6%!important;font-size:clamp(.48rem,2.7vw,.8rem)!important}

/* Final player artwork: show the supplied collectible token art, not a CSS stand-in. */
.token-disc{border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;overflow:visible!important}
.token-disc img{display:block;width:100%;height:100%;object-fit:contain}
.earned-token.selected{outline-color:#ffe46a!important;filter:drop-shadow(0 0 12px rgba(255,209,49,.95))}

/* Collectors album refinement: the supplied artwork is a transparent frame over
   the new stadium scene, with room for the helper copy beside the return button. */
.collectors-background{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:0;pointer-events:none}
.collectors-art{z-index:1}
.collector-user,.collector-heading,.earned-token-area,.album-grid,.collector-hint,.collector-back{z-index:2}
.collector-user{transform:translate(-30px,6px)}
.collector-hint{left:6%!important;right:42%!important;bottom:3.35%!important;text-align:left!important}
.collector-back{bottom:calc(1.3% + 5px)!important}
.album-slot.placed{position:relative;z-index:3;overflow:visible;cursor:pointer;touch-action:manipulation}
.album-slot.placed .placed-token{transition:transform .18s ease,filter .18s ease;transform-origin:center top}
.album-slot.placed:hover,.album-slot.placed:focus-visible,.album-slot.placed.token-preview{z-index:20}
.album-slot.placed:hover .placed-token,.album-slot.placed:focus-visible .placed-token,.album-slot.placed.token-preview .placed-token{transform:scale(2.05);filter:drop-shadow(0 7px 12px rgba(0,0,0,.75))}

/* Prototype sign-up: two pieces of information are enough for the test. */
.auth-card{top:14%!important;padding:22px 20px!important}
.auth-intro{font-size:.9rem!important}

/* Trophy room: the transparent collector overlay sits over the stadium and
   the token itself becomes the reward moment. */
.collector-user{top:5.45%!important;left:28%!important;right:37%!important;transform:none!important;color:#111!important;font-size:clamp(.8rem,4.4vw,1.35rem)!important;text-shadow:0 1px rgba(255,255,255,.35)!important}
.collector-heading{top:10.5%!important;left:8%!important;right:8%!important;padding:8px 10px!important;border:1px solid rgba(255,227,115,.85)!important;border-radius:14px!important;background:linear-gradient(135deg,rgba(6,16,36,.93),rgba(83,12,22,.88))!important;color:#ffed9d!important;font-size:clamp(.8rem,3.8vw,1.32rem)!important;line-height:1.02!important;letter-spacing:.035em!important;text-shadow:0 2px #572100,0 0 12px #ffc62c!important;box-shadow:0 0 16px rgba(255,191,46,.48),inset 0 0 13px rgba(255,255,255,.12)!important}
.collector-heading span{color:#fff6c7!important}
.album-grid{top:20.8%!important;bottom:8.4%!important}
.placed-token{width:86%!important}
.album-slot.placed:hover .placed-token,.album-slot.placed:focus-visible .placed-token,.album-slot.placed.token-preview .placed-token{transform:scale(1.08)!important;filter:drop-shadow(0 5px 8px rgba(0,0,0,.65))!important}
.collector-hint{left:6%!important;right:42%!important;bottom:3.35%!important;text-align:left!important;font-size:clamp(.48rem,2.35vw,.72rem)!important}
.collector-back{bottom:calc(1.3% + 5px)!important}
.token-modal{position:absolute;inset:0;z-index:30;display:grid;justify-items:center;align-content:center;gap:14px;padding:26px 7%;background:radial-gradient(circle at 50% 40%,rgba(192,23,30,.37),rgba(2,7,20,.94) 67%);backdrop-filter:blur(4px);text-align:center}
.token-modal.hidden{display:none!important}
.token-celebration-token{display:block;width:min(84vw,500px);aspect-ratio:1;animation:token-celebration 1.25s ease-in-out infinite alternate;filter:drop-shadow(0 0 13px #ffe36a) drop-shadow(0 12px 13px rgba(0,0,0,.72))}
.token-celebration-token img,.token-preview-modal img{display:block;width:100%;height:100%;object-fit:contain}
.token-win-modal p,.token-preview-modal p{margin:0;color:#fff1a1;font-size:clamp(1rem,5vw,1.55rem);font-weight:1000;line-height:1.05;letter-spacing:.035em;text-shadow:0 2px #651d00,0 0 11px #ffbd2a}
.token-win-modal p strong{display:block;margin-top:5px;color:#fff9d6;font-size:1.22em}
.token-win-modal button,.token-preview-modal button{width:min(86%,380px);min-height:54px;border:2px solid #fff0a2;border-radius:999px;background:linear-gradient(#ffe17b,#ff9424 46%,#bd1800);box-shadow:inset 0 2px 2px #fff9c7,0 5px #641900,0 0 17px rgba(255,195,44,.7);color:#fff;font-size:clamp(.75rem,3.8vw,1rem);font-weight:1000;letter-spacing:.045em;text-shadow:0 2px #701b00;cursor:pointer}
.token-preview-modal img{width:min(84vw,500px);aspect-ratio:1;filter:drop-shadow(0 0 13px #ffe36a) drop-shadow(0 12px 13px rgba(0,0,0,.72))}
@keyframes token-celebration{from{transform:translateY(0) rotate(-1.5deg) scale(.98);filter:drop-shadow(0 0 9px #ffcf35) drop-shadow(0 10px 12px rgba(0,0,0,.65))}to{transform:translateY(-8px) rotate(1.5deg) scale(1.03);filter:drop-shadow(0 0 23px #fff18a) drop-shadow(0 13px 14px rgba(0,0,0,.75))}}

/* Final alignment for the latest overlay, whose name bar now sits lower. */
.collector-user{transform:translate(17px,-12px)!important}
.collector-heading{transform:translateY(30px)}
.token-preview-modal{background:rgba(1,6,16,.88)!important}
.token-preview-modal img{width:min(88vw,530px)!important;max-height:68dvh!important}
.token-preview-modal button{min-height:58px!important;background:linear-gradient(#fffdf0,#ffd86f 48%,#c58a2b)!important;border-color:#fff6b4!important;color:#050505!important;font-size:clamp(1rem,5vw,1.45rem)!important;text-shadow:none!important;box-shadow:inset 0 2px 3px #fff,0 5px #684000,0 0 18px rgba(255,209,78,.82)!important}
.token-preview-modal{align-content:start!important;overflow-y:auto!important;padding-block:3.5vh!important;gap:9px!important}.token-preview-modal img{width:min(62vw,380px)!important;max-height:38dvh!important}.token-preview-details{width:min(88%,500px);padding:13px 16px;border:1px solid rgba(255,230,137,.82);border-radius:22px;background:rgba(255,255,255,.97);box-shadow:0 4px 18px rgba(0,0,0,.48);color:#17202a;text-align:left}.token-preview-details h2{margin:0 0 6px;color:#111;font-size:clamp(.9rem,4vw,1.18rem);line-height:1.05}.token-preview-details p{margin:0!important;color:#17202a!important;text-align:left!important;text-shadow:none!important;letter-spacing:normal!important}.token-preview-meta{font-size:clamp(.72rem,3.3vw,.95rem)!important;font-weight:1000!important;color:#222!important}.token-preview-bio{margin-top:8px!important;font-size:clamp(.73rem,3.3vw,.98rem)!important;font-weight:700!important;line-height:1.2!important}.token-preview-fact{margin-top:8px!important;padding-top:8px!important;border-top:1px solid #d6b34f!important;color:#6e3700!important;font-size:clamp(.68rem,3vw,.88rem)!important;font-weight:900!important;line-height:1.18!important}.token-preview-fact:before{content:"QUICK FACT: ";color:#a8050d}

/* The final placed token earns a deliberately different, gold completion coin. */
.album-complete-modal{gap:11px!important;background:radial-gradient(circle at 50% 42%,rgba(206,36,24,.55),rgba(3,10,27,.96) 68%)!important}.completion-trophy{display:block;width:min(58vw,330px);max-height:43dvh;object-fit:contain;filter:drop-shadow(0 0 17px #ffe168) drop-shadow(0 13px 16px rgba(0,0,0,.72));animation:completion-glow 1.15s ease-in-out infinite alternate}.album-complete-modal h2{margin:0;color:#fff4ae;font-size:clamp(1.5rem,6.6vw,2.2rem);line-height:.9;text-shadow:0 3px #6c2100,0 0 14px #ffbf28}.album-complete-modal p{margin:0;color:#fff;font-size:clamp(.8rem,3.7vw,1.18rem);font-weight:1000;line-height:1.06;text-align:center;text-shadow:0 2px #571500}.album-complete-modal a{display:grid;place-items:center;width:min(85%,360px);min-height:58px;border:2px solid #fff3a4;border-radius:999px;background:linear-gradient(#fff4b0,#ffca39 45%,#bd6500);box-shadow:inset 0 2px 3px #fff,0 5px #6c3100,0 0 18px #ffc940;color:#1b0b00;font-size:clamp(.75rem,3.7vw,1rem);font-weight:1000;letter-spacing:.03em;line-height:.9;text-align:center;text-decoration:none}@keyframes completion-glow{to{transform:translateY(-7px) rotate(3deg) scale(1.04);filter:brightness(1.12)}}

/* Five taps on the children’s crest opens this protected demo launcher. */
.demo-crest{position:absolute;z-index:3;top:1%;left:3%;width:35%;height:14%;border:0;background:transparent;cursor:default}.demo-panel{position:absolute;z-index:10;top:31%;left:8%;right:8%;display:grid;gap:10px;padding:22px;border:2px solid #ffdf72;border-radius:23px;background:linear-gradient(145deg,rgba(4,18,38,.98),rgba(102,8,24,.97));box-shadow:0 0 28px #ffc844;color:#fff;text-align:center}.demo-panel.hidden{display:none}.demo-panel p{margin:0;color:#ffea95;font-size:1.1rem;font-weight:1000;letter-spacing:.12em}.demo-panel strong{font-size:1.2rem}.demo-panel button{min-height:48px;border:2px solid #fff0a2;border-radius:999px;background:linear-gradient(#ffdf77,#ff9223 45%,#b61700);box-shadow:inset 0 2px 2px #fff9c7,0 4px #641900;color:#fff;font-weight:1000;text-shadow:0 2px #701b00}.demo-panel .demo-exit{background:rgba(255,255,255,.14);border-color:#fff;color:#fff;box-shadow:none}

/* Completed albums unlock a lightweight, replayable five-question challenge. */
.collector-challenge,.challenge-back,.challenge-next{border:2px solid #fff0a2;border-radius:999px;background:linear-gradient(#ffdf77,#ff9223 45%,#b61700);box-shadow:inset 0 2px 2px #fff9c7,0 5px #641900,0 0 17px rgba(255,195,44,.7);color:#fff;font-weight:1000;letter-spacing:.04em;text-align:center;text-decoration:none;text-shadow:0 2px #701b00}.collector-challenge{position:absolute;z-index:8;left:4%;bottom:calc(1.3% + 5px);display:grid;place-items:center;width:30%;min-height:4.6%;font-size:clamp(.42rem,2.35vw,.7rem);line-height:.92}.challenge-screen{margin:0;background:#02070a;font-family:Arial,sans-serif}.challenge-app{position:relative;width:min(100%,620px);min-height:100dvh;margin:auto;overflow:hidden;background:#07111f;color:#fff}.challenge-background{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;filter:brightness(.65)}.challenge-card{position:relative;z-index:1;width:min(86%,480px);margin:8dvh auto 0;padding:22px 18px 25px;border:2px solid rgba(255,222,100,.94);border-radius:25px;background:linear-gradient(145deg,rgba(5,21,43,.94),rgba(91,11,24,.9));box-shadow:0 0 25px rgba(255,194,42,.63),inset 0 0 22px rgba(255,255,255,.12);text-align:center}.challenge-kicker,.challenge-progress{margin:0;color:#ffe899;font-size:clamp(.65rem,3vw,.9rem);font-weight:1000;letter-spacing:.11em}.challenge-card h1{margin:5px 0 8px;color:#fff1ae;font-size:clamp(1.8rem,9vw,3rem);line-height:.88;text-shadow:0 3px #6b2100,0 0 15px #ffbd28}.challenge-token{display:block;width:min(50vw,250px);height:min(50vw,250px);margin:10px auto;object-fit:contain;filter:drop-shadow(0 0 10px #ffe66a)}.challenge-card h2{min-height:2.6em;margin:8px 0 14px;font-size:clamp(1rem,4.5vw,1.35rem);line-height:1.12}.challenge-options{display:grid;gap:9px}.challenge-options button{min-height:44px;padding:8px;border:1px solid #ffd766;border-radius:13px;background:rgba(255,255,255,.95);color:#132130;font-size:clamp(.78rem,3.5vw,1rem);font-weight:1000}.challenge-options button:disabled{opacity:1}.challenge-options .correct{background:#63eb9b;color:#062616}.challenge-options .wrong{background:#ff7272;color:#350000}.challenge-feedback{min-height:1.25em;margin:12px 0 8px;font-weight:1000;line-height:1.15}.correct-feedback{color:#a8ffbd;text-shadow:0 0 8px #126f32}.wrong-feedback{color:#ffe4b0}.challenge-actions{display:flex;gap:8px;align-items:stretch;justify-content:center}.challenge-actions>*{flex:1}.challenge-next{min-height:50px;font-size:clamp(.64rem,3.1vw,.9rem);cursor:pointer}.challenge-back{display:grid;place-items:center;min-height:50px;font-size:clamp(.54rem,2.65vw,.78rem);line-height:.9}@media(min-width:900px){.challenge-screen{display:grid;place-items:center;min-height:100vh}.challenge-app{height:min(100dvh,calc(100vw * 16 / 9));min-height:0}.challenge-card{margin-top:5vh}}

/* New general login, then the age-appropriate Adults or Children’s splash. */
.login-splash-screen,.mode-splash-screen{margin:0;background:#020609}.login-splash-app,.mode-splash-app{position:relative;width:min(100%,620px);min-height:100dvh;margin:auto;overflow:hidden;background:#06101d}.login-splash-art,.mode-splash-art,.mode-splash-over{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}.mode-splash-over{pointer-events:none;opacity:0;transition:opacity .14s ease}.mode-splash-app.play-hover .mode-splash-over{opacity:1}.login-splash-play{position:absolute;z-index:2;left:16%;right:16%;bottom:6%;min-height:56px;border:3px solid #ffcc54;border-radius:999px;background:linear-gradient(#ff796e,#e31313 55%,#940000);box-shadow:inset 0 2px 2px rgba(255,255,255,.58),0 5px #580000,0 0 18px rgba(255,199,51,.58);color:#fff;font-size:clamp(.9rem,4vw,1.2rem);font-weight:1000;letter-spacing:.08em;text-shadow:0 2px #6d0000}.mode-splash-play{position:absolute;z-index:2;left:17%;right:17%;bottom:3.2%;height:10%;border:0;border-radius:18px;background:transparent;cursor:pointer}.mode-account,.login-account{top:10px;bottom:auto;right:12px;max-width:52%}@media(min-width:900px){.login-splash-screen,.mode-splash-screen{display:grid;place-items:center;min-height:100vh}.login-splash-app,.mode-splash-app{height:min(100dvh,calc(100vw * 16 / 9));min-height:0}}

/* A concise rules panel appears between the chosen game route and squad selection. */
.how-to-play{position:absolute;z-index:50;inset:0;display:grid;place-items:center;padding:7%;background:rgba(1,8,18,.78);backdrop-filter:blur(5px)}.how-to-play.hidden{display:none}.how-to-card{width:min(100%,440px);padding:clamp(22px,6vw,36px) clamp(18px,6vw,32px);border:2px solid #ffe174;border-radius:27px;background:linear-gradient(145deg,rgba(8,29,53,.98),rgba(103,10,28,.96));box-shadow:0 0 28px rgba(255,193,53,.82),inset 0 0 23px rgba(255,255,255,.13);color:#fff;text-align:center}.how-to-kicker{margin:0;color:#ffeb9d;font-size:clamp(.65rem,2.9vw,.88rem);font-weight:1000;letter-spacing:.16em}.how-to-card h1{margin:.25rem 0 .9rem;color:#fff1ac;font-size:clamp(1.65rem,8vw,2.55rem);line-height:.9;text-shadow:0 3px #6b2100,0 0 14px #ffbd28}.how-to-card p{margin:.6rem 0;color:#fff;font-size:clamp(.76rem,3.55vw,1.05rem);font-weight:800;line-height:1.16;text-shadow:0 2px #07111c}.how-to-card p strong{color:#ffef94}.how-to-card .how-to-golden{margin-top:.9rem;color:#fff5b6;font-weight:1000;text-shadow:0 2px #662100,0 0 9px #ffbd2a}.how-to-card button{width:100%;min-height:55px;margin-top:1rem;border:2px solid #fff3aa;border-radius:999px;background:linear-gradient(#ffdc75,#ff9223 45%,#b81700);box-shadow:inset 0 2px 2px #fff9c7,0 5px #641900,0 0 17px rgba(255,195,44,.7);color:#fff;font-size:clamp(.8rem,3.8vw,1.1rem);font-weight:1000;letter-spacing:.06em;text-shadow:0 2px #701b00;cursor:pointer}

/* Children’s shooting game: six numbered footballs land in a proper goalmouth.
   Slot names are retained so the existing game logic and Golden Shirt rule stay intact. */
.goal-game .goal-stage{display:grid;place-items:center;min-height:clamp(275px,39dvh,420px)!important;overflow:visible}
.goal-board{position:relative;width:min(100%,610px);aspect-ratio:1.7/1;z-index:4;filter:drop-shadow(0 13px 12px rgba(0,0,0,.5))}
.goal-grid{position:absolute;z-index:3;left:9%;right:9%;top:18%;bottom:18%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr)}
.goal-grid .ball-slot{position:relative;left:auto;top:auto;width:auto;height:auto;display:grid;place-items:center;border:2px solid rgba(255,255,255,.63);border-radius:0!important;color:#101820;text-shadow:0 1px 1px #fff;background:rgba(6,21,27,.16)!important;overflow:visible}
.goal-grid .ball-slot img{width:min(60%,70px);aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 3px 3px rgba(0,0,0,.55));pointer-events:none}
.goal-grid .ball-slot span{position:absolute;display:grid;place-items:center;width:min(60%,70px);aspect-ratio:1;color:#fff13a;font-size:clamp(1rem,4.7vw,1.7rem);font-weight:1000;text-shadow:0 2px 1px #140b00,0 0 4px #140b00;pointer-events:none}
.goal-grid .slot-top{grid-area:1/1}.goal-grid .slot-left{grid-area:1/2}.goal-grid .slot-right{grid-area:1/3}.goal-grid .slot-lower-left{grid-area:2/1}.goal-grid .slot-centre{grid-area:2/2}.goal-grid .slot-lower-right{grid-area:2/3}
.goal-net-art{position:absolute;z-index:2;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.goal-grid .ball-slot.golden-target{box-shadow:inset 0 0 20px rgba(255,205,52,.92),0 0 18px rgba(255,204,47,.85);animation:goal-target-pulse 1.05s ease-in-out infinite alternate}
.goal-grid .ball-slot.correct{background:rgba(70,255,129,.35)!important;box-shadow:inset 0 0 22px rgba(91,255,141,.92),0 0 17px rgba(91,255,141,.82)!important}
.goal-grid .ball-slot.wrong{background:rgba(213,34,31,.28)!important;filter:saturate(.45) brightness(.65);opacity:.7}
.goal-grid .ball-slot.impact{border-radius:0!important;box-shadow:inset 0 0 22px rgba(255,224,103,.95),0 0 20px 7px rgba(255,208,65,.72)!important}
@keyframes goal-target-pulse{from{filter:brightness(1)}to{filter:brightness(1.36)}}
@media(max-width:480px){.goal-game .goal-stage{min-height:clamp(255px,36dvh,350px)!important}.goal-grid{left:8%;right:8%;top:19%;bottom:19%}.goal-grid .ball-slot{border-width:1.5px}.goal-grid .ball-slot img,.goal-grid .ball-slot span{width:min(66%,62px)}}

/* Club-neutral children’s result: the scored goal is the hero, not a player image. */
.goal-game .result-card{background:#01080d!important}
.goal-game .result-reveal{display:none!important}
.goal-game .winner-plaque{top:3.2%!important;left:5%!important;width:90%!important;height:42%!important;object-fit:fill!important;z-index:2!important}
.goal-game .result-supporter,.goal-game .result-ball-placement,.goal-game .result-scene{display:none!important}
.goal-game .child-result-layout{position:absolute!important;inset:0!important;z-index:6!important}
.goal-game .child-scoreboard{position:absolute;z-index:3;top:9%;left:15%;right:15%;display:grid;justify-items:center;text-align:center}
.goal-game .child-scoreboard span{color:#cfa83d;font-size:clamp(1rem,5.2vw,1.8rem);font-weight:1000;letter-spacing:.09em;text-shadow:0 2px 2px #000}
.goal-game .child-scoreboard strong{margin-top:.25rem;color:#ecff00;font-size:clamp(2.6rem,14vw,5.4rem);font-weight:1000;line-height:.92;text-shadow:0 3px 2px #536000,0 0 18px rgba(220,255,23,.55)}
.goal-game .child-scoreboard .score{position:static!important;margin:.8rem 0 0!important;color:#fff;font-size:clamp(1.45rem,7.3vw,2.8rem)!important;line-height:.95;text-shadow:0 3px 3px #000}
.goal-game .result-goal{position:absolute!important;z-index:5!important;top:39%!important;left:5%!important;width:90%!important;max-width:none!important;margin:0!important;transform:none!important;background:none!important;filter:drop-shadow(0 8px 9px rgba(0,0,0,.62))!important}
.goal-game .result-goal .goal-grid{left:8.5%;right:8.5%;top:18%;bottom:18%}
.goal-game .result-goal .ball-slot img{width:min(57%,88px)}
.goal-game .result-goal .ball-slot span{width:min(57%,88px);color:#ff5a12!important;font-size:clamp(1.15rem,6.3vw,2.5rem);text-shadow:0 2px #fff,0 0 5px #270900}
.goal-game .result-goal .ball-slot.correct{background:rgba(37,255,94,.4)!important;filter:none!important;opacity:1!important;box-shadow:inset 0 0 20px rgba(78,255,116,.94),0 0 15px rgba(45,255,91,.82)!important}
.goal-game .result-goal .ball-slot.correct span{color:#00ec52!important;text-shadow:0 2px #fff,0 0 7px #006f26!important}
.goal-game .result-goal .ball-slot.wrong{background:rgba(10,20,24,.24)!important;filter:saturate(.28) brightness(.57)!important;opacity:.58!important}
.goal-game .win-tag{position:absolute;bottom:2%;right:4%;z-index:3;padding:.1em .25em;border:2px solid #d4ffe0;border-radius:5px;background:#00c945;color:#fff;font-size:clamp(.55rem,3.2vw,1.15rem);font-weight:1000;line-height:1;text-shadow:0 1px #00561e;box-shadow:0 0 10px #00ff5d;transform:rotate(-8deg)}
.goal-game .result-card .score-text{position:absolute!important;z-index:7!important;top:76%!important;left:9%!important;right:9%!important;margin:0!important;padding:0!important;color:#fff!important;font-size:clamp(1rem,5vw,1.75rem)!important;font-weight:1000!important;line-height:1.08!important;text-align:center!important;text-shadow:0 3px 3px #000!important}
.goal-game .golden-win-message{position:absolute;z-index:7;top:84%;left:10%;right:10%;margin:0!important;color:#fff8a7!important;font-size:clamp(.72rem,3.4vw,1.1rem)!important;text-align:center}
.goal-game .result-card .result-actions{position:absolute!important;z-index:8!important;left:7%!important;right:7%!important;bottom:max(18px,env(safe-area-inset-bottom))!important}
.goal-game .result-card .close{z-index:10!important}
@media(max-width:480px){.goal-game .winner-plaque{top:2.2%!important;height:43%!important}.goal-game .child-scoreboard{top:8%;left:13%;right:13%}.goal-game .result-goal{top:39%!important}.goal-game .result-goal .ball-slot img,.goal-game .result-goal .ball-slot span{width:min(58%,72px)}.goal-game .result-card .score-text{top:75%!important}.goal-game .golden-win-message{top:83.5%}}

/* Result-screen polish: use the full supplied plaque canvas, a larger goal, and high-contrast numbers. */
.goal-game .winner-plaque{top:0!important;left:0!important;width:100%!important;height:100%!important;object-fit:fill!important}
.goal-game .result-goal{top:36%!important;left:1%!important;width:98%!important}
.goal-game .result-goal .ball-slot span{color:#fff13a!important;text-shadow:0 2px 1px #140b00,0 0 5px #140b00!important}
.goal-game .result-goal .ball-slot.correct span{color:#00f15c!important;text-shadow:0 2px #fff,0 0 8px #006b22!important}
.goal-game .child-scoreboard strong{animation:total-pulse 1.25s ease-in-out infinite}
.goal-game .result-card #yourResultBall.result-goal{top:36%!important;left:1%!important;width:98%!important;max-width:none!important;margin:0!important;transform:none!important}
.goal-game .result-card .score-text{top:72%!important}
.goal-game .golden-win-message{top:82.5%!important}

/* Revised collectors overlay: the gold name bar carries the trophy-room title,
   while the prominent artwork supplies the token-tap instruction. */
.collector-user{top:calc(5.3% - 7px)!important;left:20%!important;right:20%!important;transform:none!important;color:#111!important;font-size:clamp(.72rem,3.75vw,1.2rem)!important;line-height:1.1!important;text-shadow:0 1px rgba(255,255,255,.45)!important}
.collector-heading{display:none!important}
.club-preparing{position:absolute;z-index:3;left:12%;right:12%;bottom:16%;margin:0;color:#fff6bc;font-size:clamp(.68rem,3.3vw,1rem);font-weight:1000;line-height:1.2;text-align:center;text-shadow:0 2px 3px #000}

/* Each club's admin-selected colours are used for the main in-game launch action. */
.club-theme .action-button{border-color:rgba(255,255,255,.88)!important;background:linear-gradient(to bottom,#fff 0 6%,var(--club-primary) 18%,var(--club-primary) 68%,var(--club-secondary) 100%)!important;box-shadow:inset 0 2px 3px rgba(255,255,255,.75),inset 0 -6px 7px rgba(0,0,0,.42),0 6px 0 var(--club-secondary),0 11px 20px rgba(0,0,0,.5)!important}
.club-theme .action-button:disabled{background:linear-gradient(to bottom,#dcecff 0 6%,var(--club-primary) 20%,var(--club-secondary) 100%)!important}

/* A hidden token must remain invisible between Squad Challenge question types. */
.challenge-token[hidden]{display:none!important}

/* Generic collection board: token order reflects when each player was won,
   not their squad number. This works for every club's real-world squad. */
.album-grid{top:20.8%!important;bottom:8.4%!important;grid-template-rows:repeat(var(--album-rows,6),1fr)!important;gap:.15% .35%!important}
.album-slot{align-items:start!important;min-width:0;min-height:0}
.album-slot:not(.placed){pointer-events:none}
.placed-token{width:88%!important;margin-top:0!important}
.collector-hint{left:6%!important;right:42%!important;bottom:3.35%!important;text-align:left!important;font-size:clamp(.48rem,2.35vw,.72rem)!important}

/* Lightweight three-beat celebration: shoot, ball hits the net, celebrate. */
.goal-reveal{position:fixed;inset:0;z-index:140;display:grid;place-items:center;overflow:hidden;background:#02070b;opacity:1;transition:opacity .25s ease}.goal-reveal.hidden{display:none}.goal-reveal-frame{position:absolute;inset:0;display:grid;place-items:center;opacity:0;transform:scale(1.04);transition:opacity .18s ease,transform .35s ease}.goal-reveal-frame>img:not(.reveal-goal-net):not(.reveal-strike-ball){width:100%;height:100%;object-fit:cover}.goal-reveal.show-kick .reveal-kick,.goal-reveal.show-impact .reveal-impact,.goal-reveal.show-celebrate .reveal-celebrate{opacity:1;transform:scale(1)}.reveal-impact{background:radial-gradient(circle at 50% 56%,#0e763b 0,#061d1a 48%,#010508 100%)}.reveal-goal-net{width:min(108%,820px);height:auto;filter:drop-shadow(0 0 18px rgba(255,255,255,.78));animation:net-shake .5s ease-in-out infinite alternate}.reveal-strike-ball{position:absolute;left:50%;top:53%;width:min(30vw,190px);transform:translate(-50%,-50%);filter:drop-shadow(0 0 16px #fff);animation:goal-strike .68s cubic-bezier(.15,.8,.22,1) infinite}.goal-reveal.show-celebrate .reveal-celebrate{animation:celebrate-pop .95s ease-out both}@keyframes goal-strike{from{transform:translate(-50%,-50%) scale(.25);opacity:.2}to{transform:translate(-50%,-50%) scale(1.15);opacity:1}}@keyframes net-shake{from{transform:translateX(-1.3%) skewX(-1deg)}to{transform:translateX(1.3%) skewX(1deg)}}@keyframes celebrate-pop{0%{transform:scale(1.12);filter:brightness(.65)}100%{transform:scale(1);filter:brightness(1.12)}}
