/* Tempraneros Barista Balance — mobile-first skill game */
.gameOverlay{z-index:96}
.gameOverlay .gamePanel{max-width:560px;background:#111;color:#f5f5f3;border:1px solid #292929;padding:18px;overflow:auto;max-height:min(780px,calc(100dvh - 24px))}
.gamePanel .ph{align-items:flex-start;margin-bottom:8px}.gamePanel .ph h2{margin:2px 0 0;font-size:1.45rem}.gamePanel .ph .ey{color:#f5b400}
.gameIntro,.gameEnd{text-align:center;padding:18px 4px 8px}.gameIntro p,.gameEnd p{color:#a9a9a9;line-height:1.5;margin:8px auto 16px;max-width:410px}
.gameBadge{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid #343434;border-radius:999px;color:#d8d8d8;font-size:.72rem;font-weight:800}
.gameRewardHint{margin:0 auto 15px;max-width:390px;color:#f5b400;font-size:.72rem;font-weight:800;line-height:1.4}
.gameSkillLegend{display:flex;justify-content:center;gap:16px;margin:4px 0 15px;color:#c8c8c8;font-size:.72rem;font-weight:800}.gameSkillLegend span{display:flex;align-items:center;gap:7px}.gameSkillLegend i{width:11px;height:11px;border-radius:50%;display:inline-block}.gameSkillLegend i.good{background:#f5b400}.gameSkillLegend i.bad{background:#5e3427;border:1px solid #a46752}
.gameHud{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.gameHud>div{background:#181818;border:1px solid #2b2b2b;border-radius:14px;padding:10px 8px;text-align:center}.gameHud span{display:block;color:#8e8e8e;font-size:.64rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.gameHud b{display:block;font-size:1.12rem;margin-top:3px}
.gameStart,.gameAgain,.gameValidate{width:100%;min-height:52px}.gameValidate{margin-bottom:8px}.gameExit{width:100%;margin-top:8px}
.gamePlay{margin-top:8px}.skillArena{position:relative;height:360px;overflow:hidden;border:1px solid #2b2b2b;border-radius:22px;background:linear-gradient(180deg,#191919 0%,#121212 70%,#0d0d0d 100%);touch-action:none;user-select:none;outline:none}.skillArena:focus-visible{box-shadow:0 0 0 2px #f5b400 inset}.skillLane{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),rgba(255,255,255,.035) calc(25% - 1px),rgba(255,255,255,.035) 25%);pointer-events:none}
.skillCup{position:absolute;left:50%;bottom:15px;width:78px;height:50px;transform:translateX(-50%);transition:left .06s linear,filter .12s ease;z-index:4}.skillCup::before{content:'';position:absolute;left:8px;right:8px;top:3px;height:14px;border-radius:50%;background:#f5f5f3;border:4px solid #d7d7d2;box-sizing:border-box}.skillCup::after{content:'';position:absolute;left:14px;right:14px;top:10px;bottom:2px;border-radius:0 0 18px 18px;background:#f5f5f3}.skillCup span{position:absolute;right:-4px;top:15px;width:20px;height:22px;border:5px solid #f5f5f3;border-left:0;border-radius:0 14px 14px 0}.is-stunned .skillCup{filter:blur(.4px);animation:cupShake .12s linear 5}
.skillDrop{position:absolute;left:0;top:0;display:grid;place-items:center;border-radius:50%;will-change:transform;z-index:3}.skillDrop.good{width:26px;height:26px;background:#f5b400;color:#111;box-shadow:0 0 0 5px rgba(245,180,0,.08)}.skillDrop.bad{width:30px;height:30px;background:#5e3427;color:#ffd8c7;border:1px solid #9d644e}.skillDrop span{font-size:.68rem;font-weight:950;line-height:1}
.skillStun{position:absolute;top:18px;left:50%;transform:translate(-50%,-8px);opacity:0;padding:7px 11px;border-radius:999px;background:#5e3427;color:#fff2ec;font-size:.7rem;font-weight:900;letter-spacing:.02em;transition:opacity .12s ease,transform .12s ease;z-index:5}.skillStun.show{opacity:1;transform:translate(-50%,0)}
.skillControls{display:grid;grid-template-columns:56px 1fr 56px;gap:10px;align-items:center;margin-top:10px}.skillControls button{min-height:48px;border:1px solid #343434;border-radius:14px;background:#1a1a1a;color:#fff;font:inherit;font-size:1.2rem;font-weight:900;cursor:pointer}.skillControls button:active{background:#f5b400;color:#111}.skillControls>div{text-align:center;color:#f5f5f3}.skillControls b{display:block;font-size:1.05rem}.skillControls small{display:block;margin-top:1px;color:#777;font-size:.61rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.gameMessage{min-height:22px;text-align:center;color:#b6b6b6;font-size:.75rem;font-weight:750;margin-top:6px}.gameEndScore{font-size:3rem;letter-spacing:-.06em;line-height:1;font-weight:950;color:#f5b400;margin:12px 0 2px}.gameEndLabel{font-size:.75rem;color:#8f8f8f;text-transform:uppercase;letter-spacing:.08em;font-weight:850}
.trackActions .waitGameBtn{background:#111;color:#fff;border-color:#111}.trackActions .waitGameBtn::before{content:'◆';color:#f5b400;margin-right:7px;font-size:.72rem}
.confirmPanel .confirmGameBtn{width:100%;margin-top:8px;border-color:#dedbd3;background:#f5f5f3;color:#111;font-weight:850}.confirmPanel .confirmGameBtn::before{content:'◆';color:#f5b400;margin-right:7px}
.gameReward{margin:14px 0 6px;padding:22px 18px;border:1px solid #f5b400;border-radius:22px;background:#f5b400;color:#111;text-align:center}.gameRewardKicker{text-transform:uppercase;letter-spacing:.09em;font-size:.66rem;font-weight:950;margin-bottom:8px}.gameRewardTitle{font-size:1.45rem;line-height:1.05;letter-spacing:-.035em;margin:0}.gameReward p{margin:9px auto 16px;max-width:390px;color:#2d2a23;line-height:1.45;font-size:.83rem}.gameRewardCode{margin:12px 0;padding:14px 10px;border:2px dashed #111;border-radius:14px;background:#fff7d9;font-size:clamp(1.3rem,6vw,2rem);line-height:1;font-weight:950;letter-spacing:.06em;word-break:break-word}.gameRewardCopy{width:100%;min-height:52px;background:#111!important;color:#fff!important;border-color:#111!important}.gameReward .gameExit{background:transparent;color:#111;border-color:#111}.gameRewardNote{margin-top:11px;font-size:.68rem;line-height:1.4;font-weight:750;color:#4f451f}
.gameOrderNote{margin:11px 2px 0;text-align:center;color:#777;font-size:.67rem;line-height:1.4}
@keyframes cupShake{0%,100%{transform:translateX(-50%)}25%{transform:translateX(calc(-50% - 5px))}75%{transform:translateX(calc(-50% + 5px))}}
@media(max-width:560px){.gameOverlay .gamePanel{max-height:100dvh;height:100dvh;border-radius:0;padding:16px 14px 18px}.gameHud{position:sticky;top:-16px;z-index:7;background:#111;padding:8px 0;margin:4px 0 8px}.gameIntro{padding-top:6vh}.skillArena{height:min(52dvh,420px);min-height:330px}.gameReward{margin-top:10px;padding:22px 15px}}
@media(max-width:380px){.skillArena{min-height:300px}.gameIntro{padding-top:3vh}.skillControls{grid-template-columns:52px 1fr 52px}}
@media(prefers-reduced-motion:reduce){.skillCup,.skillStun{transition:none}.is-stunned .skillCup{animation:none}}
