:root{--blue:#2052eb;--pink:#f9dce7;--deep:#152751}*{box-sizing:border-box}body{margin:0;background:var(--blue);color:var(--pink);font-family:Inter,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.wrap{width:calc(100% - 96px);max-width:1100px;margin:auto}header{height:88px;display:flex;align-items:center;justify-content:space-between}.brand{font:800 31px Syne,sans-serif;letter-spacing:-1px;display:flex;align-items:center;gap:7px}.brand>span:first-child{font-size:39px;transform:rotate(-25deg)}.brand-caption{font:7px Inter,sans-serif;letter-spacing:1px;align-self:flex-end;margin-bottom:7px}.edition{font-size:8px;letter-spacing:2px;opacity:.7}.adult{font-size:10px;border:1px solid #f9dce760;border-radius:50%;padding:8px}h1{font:500 57px/1.03 Syne,Arial,sans-serif;letter-spacing:-2.7px;margin:12px 0 0}h1 em{font-style:normal}.intro{display:flex;justify-content:space-between;align-items:center;margin:14px 0 31px}.eyebrow{font-size:8px;letter-spacing:1.7px;font-weight:600;margin:0}.intro-side{display:flex;align-items:center;gap:26px;margin-right:5px}.intro-side>span{font-size:64px;animation:spin 35s linear infinite;line-height:1}.intro-side p{font-size:12px;line-height:1.8}.game-shell{border:1px solid #ffffff35;border-radius:18px;overflow:hidden;background:#173eb7;box-shadow:0 18px 60px #0d32a52b}.game-toolbar{height:46px;background:#173eae;display:flex;align-items:center;justify-content:space-between;padding:0 23px;font-size:8px;letter-spacing:1.3px}.mode{display:flex;align-items:center;gap:7px}.mode i{width:5px;height:5px;background:var(--pink);border-radius:50%}.scoreboard{display:flex;align-items:center;gap:10px;font-size:8px;letter-spacing:1px}.scoreboard b{font:600 16px Syne,sans-serif;background:#ffffff0d;border-radius:4px;padding:3px 7px}.scoreboard>span{opacity:.5}.round{font-size:8px;opacity:.6}.arena{position:relative;width:100%;aspect-ratio:2.45;overflow:hidden;background:linear-gradient(#142c7c 0%,#224cab 35%,#275ccb 54%,#3f77e6 100%);isolation:isolate}.arena-grain{position:absolute;inset:0;opacity:.18;background-image:radial-gradient(#ffffff 1px,transparent 1px);background-size:7px 7px;mask-image:linear-gradient(#000,transparent 55%)}.stadium{position:absolute;top:9%;left:0;right:0;height:12%;display:flex;justify-content:space-around;align-items:center;font:700 22px Syne,sans-serif;color:#ffffff10;letter-spacing:5px;transform:perspective(600px) rotateX(-18deg);border-block:1px solid #ffffff10}.floodlight{position:absolute;top:-7%;height:60%;width:35%;background:linear-gradient(#c4d7ff22,transparent);filter:blur(15px);transform:rotate(-35deg);pointer-events:none}.light-left{left:-18%}.light-right{right:-18%;transform:rotate(35deg)}.pitch{position:absolute;inset:0;background:repeating-linear-gradient(0deg,#3368d90a 0 48px,#ffffff05 48px 96px);clip-path:polygon(0 56%,100% 56%,100% 100%,0 100%)}.penalty-box{position:absolute;left:3%;right:3%;top:57%;height:75%;border:2px solid #cbdcff45;transform:perspective(450px) rotateX(40deg)}.penalty-arc{position:absolute;left:25%;right:25%;height:32%;bottom:-22%;border:2px solid #cbdcff4a;border-radius:50%}.penalty-spot{position:absolute;top:86%;left:49.6%;width:.8%;height:1%;background:#e9eeff;border-radius:50%}.goal{position:absolute;left:10%;top:16%;width:80%;height:50%;border:6px solid #f5ecf8;border-bottom-width:4px;border-radius:5px 5px 0 0;box-shadow:0 -2px 2px #fff,3px 5px 0 #abb8d0,0 13px 14px #0a24654d;background:#0c286735}.net{position:absolute;inset:0;background-image:linear-gradient(#dee8ff38 1px,transparent 1px),linear-gradient(90deg,#dee8ff38 1px,transparent 1px);background-size:25px 19px;box-shadow:inset 0 0 35px #061a5540}.goal-depth{position:absolute;inset:4% 3% 0;border:1px solid #ffffff38;border-top:3px solid #ffffff42;background:linear-gradient(0deg,#bed4ff0a,transparent);clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}.keeper-position{position:absolute;left:50%;top:46%;width:13%;height:43%;transform:translate(-50%,-50%);z-index:3;pointer-events:none}.keeper{width:100%;height:100%;transform-origin:50% 70%;animation:ready 1.4s ease-in-out infinite}.keeper svg{width:100%;height:100%;overflow:visible}.target{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:54px;height:54px;background:#f9dce714;color:var(--pink);border:1px solid #f9dce790;border-radius:50%;cursor:crosshair;z-index:5;padding:0;transition:background .2s,box-shadow .2s,opacity .2s;box-shadow:0 0 0 6px #f9dce707}.target-ring{position:absolute;inset:7px;border:1px solid #f9dce75c;border-radius:50%}.target-cross{font-size:28px;font-weight:300;line-height:1;display:block;margin-top:-3px}.key{position:absolute;bottom:-5px;right:-2px;width:16px;height:16px;display:grid;place-items:center;font-size:8px;background:var(--pink);color:#1645b1;border-radius:50%}.target:hover,.target:focus-visible{outline:0;background:#f9dce740;box-shadow:0 0 0 8px #f9dce710,0 0 25px #f9dce725}.target:focus-visible{outline:3px solid white;outline-offset:5px}.target:disabled{cursor:default;opacity:.14}.target.selected:disabled{opacity:.8;background:#f9dce74a}.ball-position{position:absolute;left:50%;top:86%;width:7.4%;aspect-ratio:1;transform:translate(-50%,-50%);z-index:7;pointer-events:none}.ball{width:100%;height:100%;filter:drop-shadow(0 10px 5px #0b24545c)}.ball svg{width:100%;height:100%}.game-bottom{display:flex;justify-content:space-between;align-items:center;padding:15px 23px;background:#173eae;gap:15px}.game-bottom p{font-size:11px;margin:0;line-height:1.5}.controls-hint{font-size:7px;letter-spacing:1.1px;opacity:.65;white-space:nowrap}.controls-hint>span{margin-left:13px;font-size:14px}.under-game{display:flex;justify-content:center;gap:55px;padding:24px 0 0}.instruction{display:flex;gap:10px;align-items:center}.instruction>span{font-size:8px;border:1px solid #f9dce745;border-radius:50%;width:23px;height:23px;display:grid;place-items:center}.instruction p{font-size:10px;margin:0}.redirect-note{font-size:8px;color:#d9d9fb;text-align:center;line-height:1.8;max-width:700px;margin:20px auto 0}.continue-link{display:block;text-align:center;text-decoration:underline;font-size:12px;margin-top:14px}.continue-link[hidden]{display:none}footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:25px 0 30px;margin-top:27px!important;border-top:1px solid #f9dce729}footer>span{font-size:7px;letter-spacing:1.4px}footer p{font-size:7px;opacity:.7;line-height:1.7;margin:0}.wave{height:24px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='28'%3E%3Cpath d='M0 28V25C22 25 29 0 49 0H54V28Z' fill='%23f9dce7'/%3E%3C/svg%3E");background-size:48px 24px}.goal-flash{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;flex-direction:column;font:800 clamp(44px,8vw,100px)/1 Syne,sans-serif;letter-spacing:-4px;color:var(--pink);background:#123bb740;z-index:10;opacity:0;pointer-events:none;transform:scale(.8);text-shadow:0 5px 30px #061d7760}.goal-flash span{font:600 9px Inter,sans-serif;letter-spacing:3px;margin-top:13px}.arena.scored .goal-flash{animation:goal-in .45s cubic-bezier(.2,1,.3,1) forwards}.arena.scored .net{animation:net-hit .4s ease-out}.confetti{position:absolute;inset:0;pointer-events:none;z-index:11;overflow:hidden}.confetti i{position:absolute;left:50%;top:43%;width:8px;height:13px;background:var(--pink);animation:confetti 1.4s ease-out forwards;animation-delay:var(--delay)}@keyframes ready{50%{transform:translateY(3px) rotate(-2deg)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes goal-in{to{opacity:1;transform:scale(1)}}@keyframes net-hit{50%{transform:scale(1.025);opacity:.6}}@keyframes confetti{to{transform:translate(var(--dx),var(--dy)) rotate(var(--rot));opacity:0}}
@media(min-width:1500px){.wrap{max-width:1180px}.intro{margin-top:28px;margin-bottom:40px}h1{font-size:66px}.arena{aspect-ratio:2.35}}
@media(max-width:800px){.wrap{width:calc(100% - 40px)}header{height:75px}.intro{margin:10px 0 25px}h1{font-size:47px}.intro-side{gap:15px}.intro-side>span{font-size:45px}.intro-side p{font-size:10px}.arena{aspect-ratio:1.95}.keeper-position{width:15%}.ball-position{width:9%}.target{width:49px;height:49px}.under-game{gap:24px}.instruction p{font-size:9px}.controls-hint{font-size:6px}}
@media(max-width:550px){.wrap{width:calc(100% - 28px)}header{height:65px}.brand{font-size:26px}.brand>span:first-child{font-size:33px}.brand-caption{font-size:6px}.edition{display:none}.adult{font-size:8px;padding:7px}.intro{margin:14px 0 23px;align-items:flex-end}.eyebrow{font-size:6px;letter-spacing:1.2px}h1{font-size:39px;letter-spacing:-1.9px;margin-top:12px}.intro-side{margin-right:4px;margin-bottom:7px}.intro-side>span{font-size:37px}.intro-side p{display:none}.game-shell{border-radius:13px}.game-toolbar{height:40px;padding:0 12px;font-size:7px;letter-spacing:.6px}.scoreboard{gap:6px;font-size:6px}.scoreboard b{font-size:12px;padding:3px 5px}.round{font-size:6px}.mode{gap:5px}.arena{aspect-ratio:1.08}.goal{border-width:4px;box-shadow:0 -1px 2px #fff,2px 4px 0 #abb8d0,0 9px 12px #0a24654d;left:7%;width:86%;top:16%;height:50%}.net{background-size:17px 20px}.stadium{font-size:12px;letter-spacing:2px}.keeper-position{width:23%;height:39%}.ball-position{width:14%}.target{width:46px;height:46px}.target-cross{font-size:26px}.target-ring{inset:6px}.key{width:14px;height:14px;font-size:7px}.game-bottom{padding:14px 12px;justify-content:center;text-align:center;min-height:47px}.game-bottom p{font-size:10px}.controls-hint{display:none}.under-game{justify-content:space-between;gap:10px;padding-top:21px}.instruction{display:block;flex:1}.instruction p{font-size:9px;line-height:1.7;margin-top:8px;max-width:100px}.instruction>span{width:21px;height:21px;font-size:7px}.redirect-note{font-size:7px;margin-top:18px;max-width:335px}footer{flex-direction:column;align-items:flex-start;gap:12px;margin-top:22px!important;padding:20px 0}footer>span{font-size:6px}footer p{font-size:7px}.goal-flash{font-size:51px;letter-spacing:-3px}.goal-flash span{font-size:7px;letter-spacing:2px}.confetti i{width:5px;height:9px}.wave{height:18px;background-size:36px 18px}}
@media(max-width:360px){h1{font-size:34px}.intro-side>span{font-size:30px}.target{width:44px;height:44px}.game-toolbar{padding-inline:9px}.round{display:none}}
@media(max-height:550px) and (min-width:600px){header{height:52px}.intro{margin:0 0 14px}h1{font-size:30px}.intro h1 br{display:none}.intro-side>span{font-size:26px}.intro-side p{display:none}.arena{aspect-ratio:3.2}.target{width:44px;height:44px}.keeper-position{width:11%}.ball-position{width:5.5%}.game-toolbar{height:31px}.game-bottom{padding-block:9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.arena.scored .goal-flash{opacity:1;transform:none}.confetti{display:none}}

.target[data-zone='center']{background:#173eae;border-color:#f9dce7;box-shadow:0 0 0 5px #f9dce715}.target[data-zone='center']:hover{background:#3264dd}.target[data-zone='center']:disabled{background:#173eae80}


/* Inter contains Cyrillic; retain Syne for the Vibe wordmark. */
html[lang="ru"] h1,html[lang="ru"] .goal-flash{font-family:Inter,Arial,sans-serif}
html[lang="ru"] .stadium{font-family:Inter,Arial,sans-serif}

/* Volumetric football equipment */
.goal{left:5%;top:10.4%;width:90%;height:63.5%;border:0;border-radius:0;box-shadow:none;background:none}
.goal-model{width:100%;height:100%;display:block}
.keeper-position{width:14%;height:45%;top:46%}
.keeper img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(2px 4px 2px #0a1d4540)}
.ball img{width:100%;height:100%;display:block}
.ball{filter:drop-shadow(2px 8px 4px #071e6566)}
.arena.scored .goal-model{animation:net-hit .4s ease-out}
.sound-toggle{display:flex;align-items:center;gap:5px;border:1px solid #f9dce73d;background:#ffffff09;color:#f9dce7;padding:6px 9px;border-radius:6px;font:9px Inter,Arial,sans-serif;min-height:32px;cursor:pointer}
.sound-toggle>span:first-child{font-size:16px;line-height:1}
.sound-toggle[aria-pressed="true"]{background:#f9dce7;color:#173eae}
.sound-toggle:focus-visible{outline:2px solid white;outline-offset:3px}
@media(max-width:550px){.goal{left:2.5%;width:95%;top:10.4%;height:63.5%;border:0;box-shadow:none}.keeper-position{width:25%;height:42%}.sound-toggle{font-size:7px;padding:5px;gap:3px;min-height:30px}.sound-toggle>span:first-child{font-size:13px}.game-toolbar{gap:5px}.scoreboard{gap:4px}}
@media(max-height:550px) and (min-width:600px){.keeper-position{width:12%;height:45%}}
