.game-dialog{--g-ink:#183d35;--g-green:#174f3f;--g-yellow:#f5c94f;--g-cream:#fff9ec;width:min(860px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:0;border:0;border-radius:26px;background:var(--g-cream);color:var(--g-ink);box-shadow:0 24px 100px #072a3966;overscroll-behavior:contain;font-family:inherit}.game-dialog::backdrop{background:#103e35bd;backdrop-filter:blur(7px)}.game-shell{padding:26px 32px 16px}.game-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.game-header h2{font-family:inherit;font-size:clamp(25px,4vw,36px);line-height:1.1;margin:6px 0 0;letter-spacing:-1px}.game-eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:800}.game-dialog button{font:inherit;cursor:pointer;color:inherit;touch-action:manipulation}.game-dialog button:focus-visible,.game-dialog input:focus-visible{outline:4px solid #e9825d;outline-offset:4px}.game-dialog button:disabled{cursor:default}.game-close{border:1px solid #183d3525;background:#fffdf5;border-radius:50%;font-size:30px!important;flex:0 0 44px;height:44px;line-height:1}.game-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:17px 0 18px;border-bottom:1px solid #183d351b;padding-bottom:14px}.game-toolbar button{min-height:36px;padding:5px 12px;font-size:12px;font-weight:700;border:1px solid #183d3527;border-radius:20px;background:transparent}.game-toolbar .game-restart{margin-left:auto}.game-instructions{text-align:center;margin-bottom:16px}.game-instructions p{font-size:18px;font-weight:800;margin:0 0 4px;line-height:1.35}.game-instructions>span{font-size:13px;line-height:1.5;display:block}.game-primary,.game-secondary{border:0;border-radius:12px;min-height:48px;padding:12px 22px;font-weight:800!important;transition:transform .15s,background .15s}.game-primary{background:var(--g-green);color:white!important;box-shadow:0 4px 0 #0e372b}.game-primary:hover{background:#246951;transform:translateY(-1px)}.game-secondary{background:#ede9d9;box-shadow:0 3px 0 #d7d3c4}.game-secondary:hover{background:#e3deca}.game-primary:disabled,.game-secondary:disabled{opacity:.6;transform:none}.game-coach{display:flex;gap:15px;align-items:center;margin:15px 0 0;background:#f0ecd9;border:1px solid #183d3510;border-radius:16px;padding:9px 16px;min-height:77px}.game-coach-mates{display:block;width:86px;height:68px;background:url(./assets/mates.webp) center bottom/130% auto no-repeat;mix-blend-mode:multiply;flex-shrink:0;border-radius:8px}.game-message{font-size:14px;font-weight:600;line-height:1.5;margin:0}.game-footer-note{text-align:center;font-size:11px;margin:14px 0 0;color:#526a58}.goal-score{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;font-weight:800;margin-bottom:10px}.goal-stars{display:flex;gap:6px;font-size:27px;line-height:1}.goal-stars span{color:#bdbdaa}.goal-stars .scored{color:#cb9117;animation:game-pop .35s}.goal-mode{display:flex;align-items:center;gap:5px;font-size:11px;cursor:pointer}.goal-mode input{accent-color:#174f3f;width:18px;height:18px}.garden-pitch{height:276px;position:relative;overflow:hidden;border-radius:16px;background:linear-gradient(#c6e1dd 0 35%,#a7c693 35% 43%,#6b9c65 43% 55%,#79a96b 55% 70%,#72a364 70% 85%,#79a96b 85%);isolation:isolate;border:2px solid #fff}.garden-fence{position:absolute;top:30%;width:100%;height:22%;background:repeating-linear-gradient(90deg,#dbb987 0 18px,#b99463 18px 20px);border-top:3px solid #bc9d70;opacity:.7}.garden-cloud{position:absolute;background:#fffcdf99;width:90px;height:21px;top:27px;border-radius:50px}.garden-cloud:before{content:'';position:absolute;width:47px;height:32px;background:#fffcdf99;border-radius:50%;bottom:4px;left:20px}.cloud-one{left:12%;transform:scale(.8)}.cloud-two{right:8%;top:18px;transform:scale(.6)}.garden-goal{position:absolute;top:21%;left:16%;width:68%;height:46%;border:7px solid #fffdf0;border-bottom:3px solid #f8f7df;box-shadow:4px 3px 0 #24452b27;border-radius:8px 8px 0 0;background:#3f654524}.goal-net{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 18px,#ffffe35c 18px 20px),repeating-linear-gradient(0deg,transparent 0 17px,#ffffe35c 17px 19px)}.goal-targets{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);z-index:3}.goal-target{background:transparent;border:0;border-radius:8px;display:flex;justify-content:center;align-items:flex-start;padding-top:13px}.goal-target span{border:2px dashed #fff9ecb3;border-radius:50%;display:grid;place-items:center;font-weight:900;width:42px;height:42px;background:#274e4b50;color:white;transition:background .2s,transform .2s}.goal-target:hover span{background:#f5c94fa1;transform:scale(1.1)}.goal-target.selected span{background:var(--g-yellow);color:var(--g-ink);border:3px solid white;box-shadow:0 0 0 4px #f5c94f55;transform:scale(1.12)}.goal-keeper{position:absolute;bottom:2px;left:50%;width:65px;height:89px;transform:translateX(-50%);transition:left .45s,transform .4s;z-index:2}.keeper-head{position:absolute;left:21px;top:0;width:27px;height:30px;background:#d99c75;border-radius:42% 42% 45% 45%;border-top:7px solid #6a4d35}.keeper-head:after{content:'• •';font-size:10px;position:absolute;left:4px;top:2px;color:#432f24}.keeper-shirt{position:absolute;width:38px;height:35px;left:15px;top:27px;border-radius:9px 9px 5px 5px;background:#ee825a;border-bottom:10px solid #314e48}.keeper-arm{position:absolute;width:13px;height:36px;top:29px;background:#ee825a;border-bottom:10px solid #f8eed4;border-radius:8px}.arm-left{left:4px;transform:rotate(35deg)}.arm-right{right:0;transform:rotate(-35deg)}.keeper-leg{position:absolute;width:13px;height:30px;top:57px;background:#d99c75;border-bottom:10px solid #314e48;border-radius:4px}.leg-left{left:16px;transform:rotate(12deg)}.leg-right{right:11px;transform:rotate(-12deg)}.keeper-save{transform:translateX(-50%) translateY(-8px) rotate(-10deg)}.pitch-lines{position:absolute;bottom:-45%;left:10%;width:80%;height:77%;border:3px solid #dceabe66;border-radius:50%}.goal-ball{position:absolute;left:calc(50% - 23px);bottom:15px;width:46px;height:46px;filter:drop-shadow(2px 6px 1px #21492950);z-index:5;transition:left .35s}.goal-ball svg{width:100%;height:100%}.goal-ball.passed{left:calc(60% - 23px)}.goal-ball.shooting{animation:game-kick .6s forwards}.goal-keeper-label{position:absolute;bottom:12px;left:12px;font-size:10px;font-weight:800;color:#fff9ec;background:#234e3899;padding:5px 8px;border-radius:8px}.pitch-flowers{position:absolute;bottom:23px;right:14px;color:#ffe5a2;font-size:22px;transform:rotate(-12deg)}.goal-actions{display:flex;justify-content:center;gap:12px;margin-top:16px}.game-key-hint{text-align:center;margin:12px 0 0;font-size:11px;color:#526a58}.goal-celebrate:after{content:'GOOOAL!';position:absolute;inset:15% 0 auto;text-align:center;font-size:45px;color:#fff9ec;font-weight:1000;letter-spacing:3px;text-shadow:3px 4px #174f3f;z-index:7;animation:game-pop .3s}.pairs-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:18px 0}.game-segments{display:flex;padding:3px;background:#e8e7d9;border-radius:11px}.game-segments button{border:0;background:transparent;border-radius:8px;min-height:40px;padding:8px 12px;font-size:12px;font-weight:800}.game-segments button[aria-pressed=true]{background:white;box-shadow:0 2px 4px #173e3415}.pairs-score{font-size:13px}.pairs-peek{min-height:42px;font-size:12px!important;padding:8px 12px}.pairs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;max-width:600px;margin:auto}.pair-card{height:135px;position:relative;border:0;background:transparent;padding:0;border-radius:13px;perspective:900px}.pair-front,.pair-back{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:13px;backface-visibility:hidden;transition:transform .35s;overflow:hidden;border:3px solid #fff}.pair-back{background:#2d6755;background-image:radial-gradient(#ffffff15 2px,transparent 2px);background-size:12px 12px;box-shadow:0 4px 0 #184334}.pair-back>svg{width:47px;height:47px;transform:rotate(-12deg);opacity:.85}.pair-back>span{font-size:8px;letter-spacing:1.5px;color:#fff9ec;font-weight:900;margin-top:8px}.pair-front{transform:rotateY(-180deg);background:#fffdf5;box-shadow:0 4px 0 #dcd8c6}.pair-front>svg{width:70px;height:70px}.pair-front>span:last-child{font-size:12px;font-weight:800;margin-top:3px}.pair-card.flipped .pair-back{transform:rotateY(180deg)}.pair-card.flipped .pair-front{transform:rotateY(0deg)}.pair-card.matched .pair-front{border-color:#a4ba74;background:#f0f2d9;box-shadow:0 4px 0 #a4ba74}.pair-card.matched:after{content:'✓';position:absolute;right:8px;top:7px;background:#174f3f;color:white;border-radius:50%;width:20px;height:20px;display:grid;place-items:center;font-size:11px;font-weight:800}.pair-character{display:block;width:69px;height:86px;background-image:url('./assets/mates.webp');background-size:340% auto;background-repeat:no-repeat;mix-blend-mode:multiply}.pair-jamie{background-position:33% 58%}.pair-callum{background-position:69% 58%}.six-pairs .pair-card{height:115px}.six-pairs .pair-character{height:73px}.six-pairs .pair-front>svg{height:60px;width:60px}.kit-progress{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;margin:20px 0 13px;font-weight:800;letter-spacing:.6px}.kit-items{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;background:#e9e4d1;padding:12px;border-radius:16px;border-bottom:5px solid #d8d0b5}.kit-item{border:2px solid transparent;background:#fffdf5;border-radius:11px;padding:9px 5px 7px;display:flex;flex-direction:column;align-items:center;min-width:0;transition:transform .2s,opacity .2s,box-shadow .2s}.kit-item>svg{width:55px;height:55px}.kit-item>span{font-size:10px;line-height:1.3;font-weight:700;min-height:26px;display:flex;align-items:center}.kit-item.selected{border-color:#174f3f;box-shadow:0 0 0 3px #f5c94f;transform:translateY(-5px)}.kit-item.packed{opacity:.24;transform:scale(.86);pointer-events:none}.kit-bags{display:grid;grid-template-columns:1fr 1fr 1.18fr;gap:20px;margin:38px 8px 8px}.kit-bag{position:relative;border:0;background:transparent;padding:0}.bag-face{position:relative;display:flex;flex-direction:column;align-items:center;border-radius:22px 22px 16px 16px;padding:8px 9px 10px;background:#bed8e9;border:3px solid #8fb5ce;min-height:162px;box-shadow:0 5px 0 #6997b9}.bag-callum .bag-face{background:#c9dfb6;border-color:#9dbf82;box-shadow:0 5px 0 #759b5f}.bag-shared .bag-face{background:#f7d972;border-color:#e4be4a;box-shadow:0 5px 0 #c89e2d}.bag-handle{position:absolute;top:-19px;left:calc(50% - 30px);width:60px;height:30px;border:9px solid #8fb5ce;border-radius:20px 20px 0 0}.bag-callum .bag-handle{border-color:#9dbf82}.bag-shared .bag-handle{border-color:#e4be4a}.bag-face>strong{font-size:15px}.bag-face>span:not(.bag-person):not(.bag-packed){font-size:10px;margin-top:3px}.bag-person{height:65px;width:56px}.bag-face>svg{width:58px;height:65px}.bag-packed{height:25px;display:flex;justify-content:center;margin-top:5px}.bag-packed svg{height:25px;width:25px;margin-left:-3px}.kit-bag.ready .bag-face{outline:2px dashed #174f3f77;outline-offset:5px}.kit-bag:hover .bag-face{transform:translateY(-3px)}.bag-wiggle{animation:game-wiggle .4s}.bag-pop{animation:game-pop .35s}.game-win{text-align:center;position:relative;overflow:hidden;padding:12px 10px 18px}.game-win-badge{width:86px;height:86px;padding:9px;margin:0 auto 16px;background:#f7e5a3;border-radius:50%;transform:rotate(-8deg)}.game-win-badge svg{width:100%;height:100%}.game-win h3{font-size:clamp(26px,5vw,40px);line-height:1.12;letter-spacing:-1px;margin:10px 0 12px}.game-win>p{max-width:450px;margin:auto;font-size:16px;line-height:1.6}.game-win-mates{display:block;width:260px;height:180px;object-fit:cover;object-position:center bottom;mix-blend-mode:multiply;margin:12px auto}.game-win-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.game-confetti{position:absolute;inset:0;pointer-events:none}.game-confetti i{position:absolute;left:calc(var(--i)*5.5%);top:-10px;width:7px;height:12px;background:#ed795e;transform:rotate(calc(var(--i)*27deg));animation:game-confetti 2s calc(var(--i)*.055s) both}.game-confetti i:nth-child(2n){background:#f5c94f}.game-confetti i:nth-child(3n){background:#2d8559}@keyframes game-kick{0%{transform:translate(0,0) scale(1)}100%{transform:translate(var(--shot-x),var(--shot-y)) scale(.5) rotate(300deg)}}@keyframes game-pop{0%{transform:scale(.9)}60%{transform:scale(1.07)}100%{transform:scale(1)}}@keyframes game-wiggle{25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}@keyframes game-confetti{0%{transform:translateY(-20px) rotate(0);opacity:1}100%{transform:translateY(400px) rotate(500deg);opacity:0}}@media(max-width:600px){.game-dialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:20px}.game-shell{padding:20px 15px 14px}.game-header h2{font-size:27px}.game-eyebrow{font-size:8px;letter-spacing:1.3px}.game-toolbar{gap:5px;margin:14px 0}.game-toolbar button{font-size:10px;padding:5px 9px}.game-instructions p{font-size:16px}.game-instructions>span{font-size:12px}.garden-pitch{height:245px}.garden-goal{left:7%;width:86%}.goal-score{flex-wrap:wrap;justify-content:center;gap:7px 15px}.goal-score>span{font-size:9px}.goal-stars{font-size:24px}.goal-mode{font-size:10px}.goal-target span{width:36px;height:36px}.goal-actions{gap:9px}.goal-actions button{padding:12px 17px;font-size:14px}.game-coach{padding:9px 11px;gap:9px}.game-coach-mates{width:65px;height:56px;background-size:145% auto}.game-message{font-size:12px}.game-key-hint{font-size:9px}.goal-keeper-label{font-size:9px;left:7px;bottom:8px}.goal-ball.shooting{animation-name:game-kick-mobile}.pairs-grid{gap:8px}.pair-card{height:115px}.pair-character{width:53px;height:70px}.pair-front>svg{width:55px;height:55px}.pair-front>span:last-child{font-size:10px}.pair-back>span{font-size:6px;letter-spacing:.6px}.pairs-toolbar{gap:6px;flex-wrap:wrap}.pairs-score{font-size:11px}.game-segments button{font-size:11px;padding:7px 10px}.pairs-peek{font-size:10px!important;padding:8px;min-height:40px}.six-pairs .pair-card{height:105px}.six-pairs .pair-character{height:66px}.kit-items{grid-template-columns:repeat(3,1fr);gap:8px;padding:10px}.kit-item{flex-direction:row;gap:3px;padding:6px 3px}.kit-item>svg{width:36px;height:42px;flex-shrink:0}.kit-item>span{font-size:9px;text-align:left}.kit-progress{font-size:9px;gap:8px;letter-spacing:0}.kit-bags{gap:11px;margin:35px 0 8px}.bag-face{padding:8px 3px;min-height:145px;border-radius:18px 18px 13px 13px}.bag-face>strong{font-size:12px}.bag-face>span:not(.bag-person):not(.bag-packed){font-size:8px}.bag-person{height:60px;width:48px}.bag-face>svg{height:60px;width:45px}.bag-packed svg{width:18px;height:21px}.game-win>p{font-size:14px}.game-win-mates{height:155px;width:230px}.game-win-actions button{font-size:13px;padding:12px 17px}@keyframes game-kick-mobile{0%{transform:translate(0,0) scale(1)}100%{transform:translate(var(--shot-x),var(--shot-y)) scale(.5) rotate(300deg)}}}@media(prefers-reduced-motion:reduce){.game-dialog *,.game-dialog *:before,.game-dialog *:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}.game-confetti{display:none}}

@media(max-width:350px){.kit-item{flex-direction:column;gap:2px;padding:6px 4px}.kit-item>span{text-align:center;justify-content:center;min-height:26px}.kit-item>svg{height:35px;width:35px}.pairs-toolbar{justify-content:center}.game-segments{margin-right:auto}.pairs-peek{margin-left:auto}}
/* The Garden Cup: a playable, illustrated football pitch. */
.game-dialog{--g-ink:#092755;--g-green:#1260cf;--g-yellow:#ffe044;--g-cream:#fffcef;color:#092755;border:3px solid #fff;background:#fffcef}.game-header h2{color:#092755}.game-primary{background:#1260cf;box-shadow:0 4px 0 #092755}.game-primary:hover{background:#0752be}.game-secondary{background:#ffe044;box-shadow:0 3px 0 #d4aa18}.game-coach{background:#fff3ab;border-color:#ecd869}.game-dialog .game-ball-art{display:block;object-fit:contain;width:60px;height:60px}.pair-back>.game-ball-art{width:51px;height:51px;transform:rotate(-12deg)}.pair-front>.game-ball-art{width:70px;height:70px}.kit-item>.game-ball-art{width:55px;height:55px}.bag-face>.game-ball-art{width:58px;height:65px}.bag-packed .game-ball-art{width:25px;height:25px}.pair-back{background-color:#1260cf;box-shadow:0 4px 0 #092755}.game-dialog:has(.penalty-world){width:min(950px,calc(100% - 24px))}.game-dialog:has(.penalty-world) .game-shell{padding:20px 25px 14px}.game-dialog:has(.penalty-world) .game-toolbar{margin:13px 0 10px;padding-bottom:10px}.penalty-instructions{margin-bottom:12px}.penalty-instructions p{font-size:23px;color:#092755}.penalty-instructions>span{font-size:12px}.penalty-scoreboard{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:10px 17px;background:#092755;color:white;border-radius:14px 14px 0 0;border-bottom:4px solid #ffe044}.penalty-team{display:flex;flex-direction:column;gap:2px}.penalty-team>span{font-size:8px;letter-spacing:1.8px;color:#ffe044;font-weight:800}.penalty-team strong{font-size:13px;letter-spacing:1px}.penalty-score{display:flex;gap:10px;font-size:28px;line-height:1}.penalty-score span{color:#809ac0}.penalty-score span.scored{color:#ffe044;animation:game-pop .4s}.penalty-bonus{font-size:20px;display:flex;gap:8px;align-items:center}.penalty-bonus>span{color:#ffe044}.penalty-world{position:relative;height:370px;overflow:hidden;isolation:isolate;background:#7ad1e8;touch-action:none;border:3px solid #092755;border-top:0;border-radius:0 0 17px 17px;user-select:none;-webkit-user-select:none}.penalty-sky{position:absolute;inset:0 0 52%;background:linear-gradient(#68c9ed,#bae9f2)}.penalty-cloud{position:absolute;width:100px;height:25px;background:#ffffffd9;border-radius:50%;top:22px;left:10%}.penalty-cloud:before,.penalty-cloud:after{content:'';position:absolute;border-radius:50%;background:#ffffffd9;width:44px;height:34px;bottom:1px;left:10px}.penalty-cloud:after{width:55px;height:45px;left:35px;bottom:4px}.penalty-cloud-two{left:70%;top:45px;transform:scale(.65)}.penalty-sun{position:absolute;width:47px;height:47px;background:#ffe044;border-radius:50%;right:12%;top:15px;box-shadow:0 0 0 9px #ffe04433}.penalty-garden{position:absolute;inset:0}.penalty-house{position:absolute;left:-15px;top:25px;width:150px;height:130px;background:#efd6ae;border-top:24px solid #c57554;transform:skewY(-4deg);box-shadow:inset -8px 0 #d8bb8d}.penalty-house i{position:absolute;left:21px;top:26px;width:35px;height:42px;background:#92c7d6;border:4px solid #fff9dc}.penalty-house i:after{content:'';position:absolute;left:50%;top:0;height:100%;border-left:3px solid #fff9dc}.penalty-house i+i{left:77px}.penalty-shed{position:absolute;right:-15px;top:55px;width:113px;height:89px;background:repeating-linear-gradient(90deg,#dc9e54 0 16px,#b8854f 16px 19px);border-top:16px solid #536658;transform:rotate(3deg)}.penalty-shed:before{content:'';position:absolute;left:14px;top:21px;width:41px;height:63px;background:#b27744;border:3px solid #86572e}.penalty-tree{position:absolute;right:18%;top:41px;width:74px;height:73px;border-radius:50% 55% 25% 40%;background:#409250;box-shadow:27px 17px #4f9c52,-17px 19px #357e42}.penalty-fence{position:absolute;top:27%;width:100%;height:25%;background:repeating-linear-gradient(90deg,#cf9e62 0 25px,#a97945 25px 28px);border-top:5px solid #d8ac73}.penalty-fence:after{content:'';position:absolute;inset:28% 0 auto;height:9px;background:#b88c56;box-shadow:0 28px #b88c56}.penalty-grass{position:absolute;inset:44% 0 0;background:repeating-linear-gradient(0deg,#58a94f 0 47px,#63b855 47px 94px);border-top:8px solid #428b41}.penalty-box{position:absolute;left:7%;bottom:8%;height:43%;width:86%;border:3px solid #edffceba;border-top:0;transform:perspective(300px) rotateX(25deg)}.penalty-centre{position:absolute;bottom:-23%;left:19%;width:62%;height:53%;border:3px solid #edffceaa;border-radius:50%}.penalty-goal{position:absolute;left:10%;top:19%;width:80%;height:39%;border:8px solid #fffdf0;border-bottom:5px solid #fffdf0;border-radius:9px 9px 0 0;box-shadow:5px 5px 0 #264b4144;z-index:3;background:#315b4b30}.penalty-net{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 23px,#ffffeda6 23px 25px),repeating-linear-gradient(0deg,transparent 0 18px,#ffffeda6 18px 20px);box-shadow:inset 0 0 25px #12392322;transform-origin:center;pointer-events:none}.penalty-goal-depth{position:absolute;inset:0;box-shadow:inset 8px 0 #fff8, inset -8px 0 #fff8;border-top:2px solid #fffc;transform:scale(.95,.88);transform-origin:bottom}.penalty-dad{position:absolute;left:50%;bottom:-5px;width:94px;height:138px;transform:translateX(-50%);pointer-events:none;z-index:4;will-change:left}.penalty-dad-art{position:absolute;inset:0;background:url('./assets/slippers.webp') right center/218% 100% no-repeat;mix-blend-mode:multiply;clip-path:polygon(19% 0,100% 0,100% 100%,31% 100%,25% 80%,0 64%,0 32%);transform-origin:center 80%;transition:transform .23s}.penalty-dad-shadow{position:absolute;width:69%;height:10px;border-radius:50%;background:#20472833;bottom:-4px;left:18%;z-index:-1}.penalty-dad.is-diving .penalty-dad-art{transform:rotate(calc(var(--dive)*25deg)) translateY(-8px)}.penalty-aim-surface{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;z-index:7;cursor:crosshair!important;border-radius:0!important;touch-action:none}.penalty-aim-surface:focus-visible{outline:3px solid #ffe044!important;outline-offset:11px!important}.penalty-first-hint{position:absolute;left:14%;top:18%;background:#092755d9;color:#fff;border:2px solid #fff;padding:6px 10px;transform:rotate(-6deg);border-radius:9px;font-size:11px;font-weight:900;box-shadow:0 3px 0 #09275533}.penalty-first-hint>span{color:#ffe044;font-size:19px;margin-left:4px}.is-aiming .penalty-first-hint,.is-shooting .penalty-first-hint,.is-goal .penalty-first-hint{display:none}.penalty-prize{position:absolute;width:40px;height:40px;font-size:33px;line-height:40px;text-align:center;color:#ffe044;text-shadow:2px 2px #aa6a17,-1px -1px #fffbd5;transform:translate(-50%,-50%);z-index:5;filter:drop-shadow(0 0 8px #fff86c)}.penalty-crosshair{position:absolute;display:none;left:25%;top:33%;width:44px;height:44px;border:3px solid #ffe044;border-radius:50%;transform:translate(-50%,-50%);z-index:8;box-shadow:0 0 0 3px #09275566,0 0 0 6px #ffffff77;pointer-events:none;background:#ffffff15}.penalty-crosshair:before,.penalty-crosshair:after{content:'';position:absolute;background:#ffe044;left:50%;top:50%;transform:translate(-50%,-50%)}.penalty-crosshair:before{height:2px;width:16px}.penalty-crosshair:after{height:16px;width:2px}.is-aiming .penalty-crosshair{display:block}.penalty-trajectory{position:absolute;inset:0;width:100%;height:100%;z-index:5;pointer-events:none;opacity:0;overflow:visible}.penalty-trajectory path{fill:none;stroke:#fff9d4;stroke-width:3;stroke-dasharray:4 9;stroke-linecap:round}.is-aiming .penalty-trajectory{opacity:.8}.penalty-ball{position:absolute;left:calc(50% - 40px);top:calc(84% - 40px);width:80px;height:80px;padding:0!important;border:0!important;border-radius:50%;background:transparent;z-index:10;cursor:grab!important;touch-action:none;transform-origin:center;will-change:transform;filter:drop-shadow(2px 5px 1px #09275533)}.penalty-ball img{width:100%;height:100%;object-fit:contain;pointer-events:none}.penalty-ball.ball-held{filter:drop-shadow(0 0 9px #ffe044);cursor:grabbing!important}.penalty-ball-shadow{position:absolute;left:calc(50% - 31px);top:calc(84% + 28px);width:62px;height:13px;border-radius:50%;background:#1f4f3166;z-index:4}.is-shooting .penalty-ball-shadow{opacity:.3;transform:scale(.6)}.penalty-player{position:absolute;left:17px;bottom:13px;display:flex;align-items:center;gap:8px;z-index:6}.penalty-player-face{display:block;width:57px;height:66px;background:#fff8d4 url('./assets/mates.webp') 33% 57%/340% auto no-repeat;border:3px solid #fff4ac;border-radius:45% 45% 40% 40%;box-shadow:0 3px #1a563842;transform:rotate(-5deg)}.penalty-player-face.player-callum{background-position:69% 58%;transform:rotate(5deg)}.penalty-player strong{max-width:78px;font-size:12px;font-weight:900;color:#092755;background:#ffe044;padding:6px 9px;border-radius:9px;line-height:1.3}.penalty-dad-says{position:absolute;right:12px;bottom:21px;max-width:168px;transform:rotate(3deg);background:#fff9e4;border:2px solid #092755;border-radius:12px;padding:8px 12px;font-size:12px;font-weight:800;line-height:1.3;z-index:5;box-shadow:2px 3px #09275533}.penalty-dad-says:before{content:'';position:absolute;left:15px;top:-9px;width:15px;height:15px;background:#fff9e4;border-top:2px solid #092755;border-left:2px solid #092755;transform:rotate(45deg)}.penalty-controls{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:14px}.penalty-assist{display:flex;align-items:center;gap:9px;cursor:pointer;font-size:13px;font-weight:800}.penalty-assist input{width:24px;height:24px;accent-color:#1260cf;flex-shrink:0}.penalty-assist small{display:block;font-size:10px;font-weight:500;margin-top:3px;color:#47566d}.penalty-kick{background:#ffe044!important;color:#092755!important;box-shadow:0 5px #c49a06!important;font-size:20px!important;min-width:170px;border:2px solid #092755!important;border-radius:14px;letter-spacing:.5px}.penalty-kick>span{font-size:24px;margin-left:8px}.penalty-kick:disabled{font-size:13px!important;opacity:.65}.penalty-controls-hint{display:flex;justify-content:space-between;gap:10px;font-size:9px;color:#5a6a78;margin:13px 0 0}.penalty-keeper-status{color:#092755;font-weight:800}.penalty-outcome{position:absolute;left:5%;right:5%;top:32%;text-align:center;font-size:clamp(32px,5vw,55px);font-weight:1000;color:#ffe044;letter-spacing:2px;text-shadow:3px 4px #092755,-2px -2px #092755,2px -2px #092755,-2px 2px #092755;z-index:12;pointer-events:none;opacity:0;transform:scale(.6) rotate(-6deg)}.penalty-outcome.visible{opacity:1;transform:scale(1) rotate(-6deg);transition:transform .28s cubic-bezier(.25,1.8,.5,1),opacity .15s}.penalty-outcome.is-save{color:white}.penalty-party{position:absolute;inset:0;pointer-events:none;z-index:11;overflow:hidden}.penalty-party i{position:absolute;left:calc(var(--i)*5.8%);top:-20px;width:9px;height:15px;background:#ffe044;opacity:0}.penalty-party i:nth-child(2n){background:#1260cf}.penalty-party i:nth-child(3n){background:white}.is-goal .penalty-party i{animation:penalty-confetti 1.5s calc(var(--i)*.025s) forwards}.penalty-hit{position:absolute;width:50px;height:50px;border:4px solid #fff7ad;border-radius:50%;pointer-events:none;opacity:0;z-index:6}.penalty-hit.pop{animation:penalty-hit .65s both}.net-ripple .penalty-net{animation:penalty-net .65s ease-out}.game-dialog:has(.penalty-world) .game-coach{margin-top:12px;min-height:65px}.game-dialog:has(.penalty-world) .game-coach-mates{height:53px;width:75px}.game-dialog:has(.penalty-world) .game-message{font-size:12px}.game-dialog:has(.penalty-world) .game-footer-note{margin-top:10px}@keyframes penalty-net{25%{transform:scale(1.015,.94)}50%{transform:scale(.99,1.025)}75%{transform:scale(1.005,.98)}}@keyframes penalty-hit{0%{opacity:1;transform:translate(-50%,-50%) scale(.3)}100%{opacity:0;transform:translate(-50%,-50%) scale(2.5)}}@keyframes penalty-confetti{0%{transform:translateY(-10px) rotate(0);opacity:1}100%{transform:translateY(410px) rotate(450deg);opacity:0}}@media(max-width:600px){.game-dialog:has(.penalty-world){width:calc(100% - 12px);max-height:calc(100dvh - 12px);border-radius:19px}.game-dialog:has(.penalty-world) .game-shell{padding:15px 11px 12px}.game-dialog:has(.penalty-world) .game-header h2{font-size:27px}.penalty-instructions p{font-size:19px}.penalty-instructions>span{font-size:11px;max-width:300px;margin:auto}.penalty-scoreboard{padding:9px 10px;gap:10px}.penalty-team>span{font-size:7px;letter-spacing:1px}.penalty-team strong{font-size:10px;letter-spacing:.5px}.penalty-score{gap:5px;font-size:23px}.penalty-bonus{font-size:17px;gap:3px}.penalty-world{height:319px}.penalty-goal{left:5%;width:90%;top:21%;height:38%;border-width:6px}.penalty-dad{width:73px;height:119px}.penalty-ball{width:70px;height:70px;left:calc(50% - 35px);top:calc(84% - 35px)}.penalty-player{left:8px;bottom:12px;gap:4px;flex-direction:column;align-items:flex-start}.penalty-player-face{width:42px;height:48px;border-width:2px}.penalty-player strong{font-size:9px;padding:4px 6px;max-width:80px}.penalty-dad-says{right:8px;bottom:24px;max-width:101px;font-size:10px;padding:7px}.penalty-first-hint{font-size:8px;padding:4px 7px;left:10%;top:18%}.penalty-first-hint>span{font-size:13px}.penalty-prize{font-size:28px;width:35px;height:35px;line-height:35px}.penalty-crosshair{width:34px;height:34px}.penalty-controls{gap:8px;margin-top:12px}.penalty-assist{font-size:10px;gap:6px}.penalty-assist small{font-size:8px;max-width:118px}.penalty-assist input{width:22px;height:22px}.penalty-kick{min-width:127px;padding:10px 13px!important;font-size:19px!important}.penalty-kick:disabled{font-size:10px!important}.penalty-kick>span{font-size:19px;margin-left:4px}.penalty-controls-hint{font-size:8px;gap:7px;margin-top:11px}.penalty-controls-hint>span:last-child{max-width:110px;text-align:right}.penalty-house{left:-42px;width:120px;height:115px}.penalty-shed{right:-40px;width:100px}.penalty-tree{right:22%;top:60px;width:55px;height:50px}.penalty-sun{right:20%;width:36px;height:36px}.penalty-cloud{left:20%;transform:scale(.6)}.penalty-cloud-two{display:none}.game-dialog:has(.penalty-world) .game-coach{padding:8px;gap:7px;min-height:61px}.game-dialog:has(.penalty-world) .game-coach-mates{width:56px;height:46px;background-size:140% auto}.game-dialog:has(.penalty-world) .game-message{font-size:10px}.game-dialog:has(.penalty-world) .game-footer-note{font-size:9px}.pair-front>.game-ball-art{width:55px;height:55px}.kit-item>.game-ball-art{width:36px;height:42px;flex-shrink:0}.bag-face>.game-ball-art{height:60px;width:45px}.bag-packed .game-ball-art{width:18px;height:21px}}@media(max-width:350px){.penalty-world{height:294px}.penalty-score{gap:3px;font-size:19px}.penalty-team strong{font-size:9px}.penalty-kick{min-width:112px}.penalty-assist{font-size:9px}.penalty-dad-says{max-width:84px;font-size:9px}.kit-item>.game-ball-art{width:35px;height:35px}}@media(prefers-reduced-motion:reduce){.penalty-trajectory{transition:none}.penalty-party{display:none}.penalty-outcome{transition:none!important}.penalty-dad-art{transition:none}}
.game-dialog .game-header h2{font-weight:900}.penalty-dad{mix-blend-mode:multiply}.penalty-dad-art{mix-blend-mode:normal}.penalty-first-hint{left:38%;top:65%;font-size:10px;pointer-events:none}@media(max-width:600px){.penalty-first-hint{left:34%;top:66%;font-size:8px;padding:3px 6px}}

.penalty-goal{z-index:auto}

.game-dialog .game-header h2{font-family:Bangers,Lilita,sans-serif;font-weight:400;letter-spacing:1px;font-size:40px}.penalty-outcome{font-family:Bangers,sans-serif;font-weight:400}.penalty-dad{width:108px;height:154px;mix-blend-mode:normal}.penalty-dad-art{background:url('./assets/keeper-v2.webp') center bottom/contain no-repeat;clip-path:none;mix-blend-mode:normal}.penalty-dad-shadow{bottom:0}.game-win h3{font-family:Bangers,Lilita,sans-serif;font-weight:400;letter-spacing:1px}@media(max-width:600px){.game-dialog .game-header h2,.game-dialog:has(.penalty-world) .game-header h2{font-family:Bangers,Lilita,sans-serif;font-weight:400;font-size:34px;letter-spacing:1px}.penalty-dad{width:84px;height:126px}}
