.game-page{max-width:900px;margin:auto;padding:75px 28px 100px}
.game-page .game-head>span{font:700 10px "IBM Plex Mono",monospace;letter-spacing:1.3px;color:var(--accent)}
.game-page .game-head h1{font-size:clamp(46px,7vw,76px);letter-spacing:-.03em;line-height:1;margin:18px 0}
.game-page .game-head p{max-width:640px;color:var(--text-lo);font-size:18px;line-height:1.6}
.game-page .responsible-strip{max-width:none;margin-top:24px}

.penalty-hud{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:30px 0}
.penalty-hud>div{background:var(--ink-2);padding:18px 20px}
.penalty-hud span{display:block;font:700 10px "IBM Plex Mono",monospace;color:var(--text-lo);letter-spacing:.08em}
.penalty-hud strong{display:block;margin-top:8px;font:500 26px "IBM Plex Mono",monospace;color:var(--accent)}

.cup-ladder{margin-bottom:1px;padding:20px 22px;border:1px solid var(--line);background:linear-gradient(135deg,#151b18,#0e1611)}
.cup-ladder>span{display:block;margin-bottom:12px;color:var(--text-lo);font:700 10px "IBM Plex Mono",monospace;letter-spacing:.12em}
.cup-ladder ol{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:0;padding:0;list-style:none}
.cup-ladder li{padding:10px 6px;border:1px solid #2c3832;background:#0b100d;text-align:center;color:#65706a;font:700 12px "IBM Plex Mono",monospace;transition:.2s ease}
.cup-ladder li.is-cleared{border-color:#557024;color:#a6ca3f;background:#17200f}
.cup-ladder li.is-current{border-color:var(--accent);color:#0a0d0b;background:var(--accent);box-shadow:0 0 22px #d4ff4f33}
.cup-ladder p{margin:12px 0 0;color:var(--text-lo);font-size:12px;line-height:1.5}

.penalty-field{position:relative;border:1px solid var(--line);background:linear-gradient(180deg,#02080733 0%,#04110d66 42%,#06150de6 100%),url("/assets/theme/games/penalty/stadium-night.webp") center 44%/cover no-repeat;padding:54px 20px 24px;overflow:hidden;box-shadow:inset 0 -90px 90px #020805cc}
.penalty-field:before,.penalty-field:after{content:"";position:absolute;left:-5%;right:-5%;height:2px;background:linear-gradient(90deg,transparent,#dfffd866,transparent);box-shadow:0 0 18px #dfffd866;opacity:.5}.penalty-field:before{top:25px;transform:rotate(-1deg)}.penalty-field:after{top:37px;transform:rotate(1deg)}
.stadium-lights{position:absolute;inset:0;background:linear-gradient(90deg,#02090799 0%,transparent 22%,transparent 78%,#02090799 100%);pointer-events:none}
.penalty-goal{position:relative;height:220px;margin:0 auto;max-width:560px;border:4px solid #d8e6dc;border-bottom:none;background:repeating-linear-gradient(90deg,#0d1a10,#0d1a10 39px,#112013 39px,#112013 40px)}
.penalty-zone{position:absolute;top:0;bottom:0;width:33.333%;transition:background-color .2s ease}
.penalty-zone[data-zone="left"]{left:0}
.penalty-zone[data-zone="center"]{left:33.333%}
.penalty-zone[data-zone="right"]{left:66.666%}
.penalty-zone.is-target{background:#d4ff4f22}
.penalty-zone.is-keeper{outline:2px dashed #d4ff4f88;outline-offset:-6px}

.aim-reticle{position:absolute;left:50%;top:68%;width:48px;height:48px;margin:-24px;z-index:5;border:2px solid var(--accent);border-radius:50%;box-shadow:0 0 0 5px #d4ff4f22,0 0 20px #d4ff4f55;pointer-events:none;transition:left .2s ease,top .2s ease}
.aim-reticle:before,.aim-reticle:after{content:"";position:absolute;background:var(--accent)}.aim-reticle:before{left:50%;top:-10px;width:1px;height:66px}.aim-reticle:after{top:50%;left:-10px;width:66px;height:1px}.aim-reticle i{position:absolute;inset:15px;border:1px solid var(--accent);border-radius:50%}
.aim-reticle[data-target^="left"]{left:20%}.aim-reticle[data-target^="center"]{left:50%}.aim-reticle[data-target^="right"]{left:80%}.aim-reticle[data-target$="high"]{top:25%}.aim-reticle[data-target$="low"]{top:73%}

.penalty-keeper{position:absolute;bottom:6px;left:50%;width:46px;height:78px;margin-left:-23px;background:linear-gradient(135deg,#d4ff4f,#4d7628);border:2px solid #edffd3;border-radius:12px 12px 4px 4px;transition:transform .35s cubic-bezier(.2,.8,.3,1.2);z-index:2;box-shadow:0 8px 20px #0008}
.penalty-keeper:before{content:"";position:absolute;top:-16px;left:50%;width:20px;height:20px;margin-left:-10px;border-radius:50%;background:#1a2420;border:2px solid var(--accent)}
.penalty-keeper i:before,.penalty-keeper i:after{content:"";position:absolute;top:13px;width:42px;height:9px;background:#83b33a;border:2px solid #edffd3;border-radius:8px}.penalty-keeper i:before{right:35px;transform:rotate(-18deg)}.penalty-keeper i:after{left:35px;transform:rotate(18deg)}
.penalty-keeper[data-dive="left"]{transform:translateX(-155px) rotate(-18deg)}
.penalty-keeper[data-dive="right"]{transform:translateX(155px) rotate(18deg)}
.penalty-keeper[data-dive="center"]{transform:translateX(0)}

.penalty-ball{position:absolute;bottom:-40px;left:50%;width:22px;height:22px;margin-left:-11px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#cfd6cf 60%,#9aa69c 100%);box-shadow:0 0 0 1px #0006;transition:transform .5s cubic-bezier(.25,.6,.3,1),opacity .3s ease;z-index:3}
.penalty-ball[data-target="left-low"]{transform:translate(-165px,-38px)}
.penalty-ball[data-target="left-high"]{transform:translate(-165px,-172px)}
.penalty-ball[data-target="center-low"]{transform:translate(0,-30px)}
.penalty-ball[data-target="center-high"]{transform:translate(0,-172px)}
.penalty-ball[data-target="right-low"]{transform:translate(165px,-38px)}
.penalty-ball[data-target="right-high"]{transform:translate(165px,-172px)}
.penalty-ball.is-blocked{opacity:0}
.penalty-ball.is-post{transform:translate(178px,-190px) rotate(220deg)}

.penalty-outcome{min-height:28px;margin:18px 0 0;text-align:center;font:700 13px "IBM Plex Mono",monospace;letter-spacing:.06em;color:var(--accent)}
.penalty-outcome[data-state="save"]{color:var(--red)}
.penalty-outcome[data-state="miss"]{color:var(--red)}

.penalty-controls{border:1px solid var(--line);border-top:none;background:var(--ink-2);padding:26px 24px;display:grid;gap:20px}
.penalty-controls[hidden]{display:none}
.penalty-controls fieldset{border:0;margin:0;padding:0;display:grid;gap:8px}
.penalty-controls legend{font:700 10px "IBM Plex Mono",monospace;color:var(--text-lo);letter-spacing:.1em;padding:0;margin-bottom:6px}
.penalty-controls .option-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.penalty-controls .option-row label{display:flex;align-items:center;justify-content:center;padding:12px 8px;background:var(--ink-3);color:var(--text-lo);font-size:13px;text-align:center;cursor:pointer}
.penalty-controls .option-row input{position:absolute;opacity:0;width:1px;height:1px}
.penalty-controls .option-row input:checked+span{color:var(--accent)}
.penalty-controls .option-row label:has(input:checked){background:var(--accent-dim);color:var(--accent)}
.penalty-controls .option-row label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:-2px}

.penalty-probability{margin:0;color:var(--text-lo);font-size:13px}
.penalty-probability strong{color:var(--accent);font:600 13px "IBM Plex Mono",monospace}

.penalty-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.penalty-actions .button{cursor:pointer;border:0}
.penalty-actions .collect{background:#122018;border:1px solid var(--accent);color:var(--accent)}
.penalty-actions .collect[hidden]{display:none!important}
.penalty-actions .collect:hover{background:var(--accent);color:#0a0d0b}
.penalty-toggle{background:transparent;padding:12px 14px;font-size:12px;cursor:pointer}
.penalty-toggle[aria-pressed="true"]{border-color:var(--accent);color:var(--accent)}

.penalty-result{margin-top:24px;padding:30px;border:1px solid var(--line);background:var(--accent-dim);text-align:center}
.penalty-result h2{margin:0 0 10px;font-size:28px}
.penalty-result p{margin:0 0 18px;color:#c2cac6}
.penalty-result .button{cursor:pointer;border:0}

.penalty-explainer{margin-top:40px}
.penalty-explainer h2{margin-top:0}
.penalty-links{margin:45px 0 0;display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.penalty-links a{background:var(--ink-2);padding:22px;color:var(--accent);font:600 12px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.06em}

@media(max-width:760px){
  .game-page{padding:55px 20px 70px}
  .penalty-links{grid-template-columns:1fr}
  .cup-ladder{padding:16px 12px}.cup-ladder ol{gap:3px}.cup-ladder li{font-size:10px;padding:9px 2px}
  .penalty-hud{grid-template-columns:repeat(2,1fr)}
  .penalty-goal{height:170px}
  .penalty-keeper{width:38px;height:62px;margin-left:-19px}
  .penalty-keeper[data-dive="left"]{transform:translateX(-118px) rotate(-18deg)}
  .penalty-keeper[data-dive="right"]{transform:translateX(118px) rotate(18deg)}
  .penalty-ball[data-target="left-low"]{transform:translate(-126px,-30px)}
  .penalty-ball[data-target="left-high"]{transform:translate(-126px,-132px)}
  .penalty-ball[data-target="center-high"]{transform:translate(0,-132px)}
  .penalty-ball[data-target="right-low"]{transform:translate(126px,-30px)}
  .penalty-ball[data-target="right-high"]{transform:translate(126px,-132px)}
  .penalty-ball.is-post{transform:translate(136px,-146px) rotate(220deg)}
  .penalty-controls .option-row{grid-template-columns:1fr}
  .aim-reticle{width:38px;height:38px;margin:-19px}.aim-reticle:before{height:54px}.aim-reticle:after{width:54px}.aim-reticle i{inset:12px}
}

@media(prefers-reduced-motion:reduce){
  .penalty-keeper,.penalty-ball{transition:none!important}
}
.penalty-widget.no-motion .penalty-keeper,.penalty-widget.no-motion .penalty-ball{transition:none!important}
