/* Equal shot geometry within the existing control height. Joystick untouched. */
#frame .controls .shot-zone{position:absolute;inset:0;pointer-events:none;--shot594:72px;--gap594:6px;--right594:10px}
#frame .controls .shot{width:var(--shot594);height:var(--shot594);bottom:24px;right:var(--right594);pointer-events:auto;border-radius:12px;isolation:isolate;background:transparent!important;border:0;box-shadow:none!important;overflow:visible}
#frame .controls .shot:before{content:'';position:absolute;inset:1px;border-radius:50%;z-index:-1;border:3px solid #ffffff40;box-shadow:0 3px 0 #06142888,inset 0 -4px 0 #0002,inset 0 3px 0 #ffffff55,0 0 0 2px #18395488}
#frame .controls .shot.spin,#frame .controls .shot.soft{right:calc(var(--right594) + var(--shot594) + var(--gap594))}
#frame .controls .shot.spin,#frame .controls .shot.lob{bottom:calc(24px + var(--shot594) + var(--gap594))}
#frame .controls .shot.spin:before{background:radial-gradient(circle at 35% 25%,#e0c5ff,#b99bf5 72%,#8d69cd)}
#frame .controls .shot.lob:before{background:radial-gradient(circle at 35% 25%,#a5e6ff,#69c4ef 72%,#46a6d9)}
#frame .controls .shot.soft:before{background:radial-gradient(circle at 35% 25%,#99f6c6,#65e1a5 72%,#37bd8b)}
#frame .controls .shot.drive:before{background:radial-gradient(circle at 35% 25%,#fff184,#ffdd3d 72%,#edbc27)}
#frame .controls .shot.drive.smash:before{background:radial-gradient(circle at 35% 25%,#ffa266,#ff753d 72%,#ed4930)}
#frame .controls .shot b,#frame .controls .shot.drive b{font-size:15px;line-height:1.1}
#frame .controls .shot small{font-size:10px;line-height:1.2;white-space:nowrap}
#frame .controls .supply-dock594{position:absolute;left:calc(40% + 7px);bottom:24px;display:flex;flex-direction:column;gap:8px;z-index:6;pointer-events:auto}
#frame .controls .supply-dock594 button{width:44px;height:44px;min-height:44px;min-width:44px;padding:6px;display:grid;place-items:center;border:1px solid #799d9e;border-radius:10px;background:linear-gradient(#234957,#102b3e);color:#b5f2ce;touch-action:none;box-shadow:0 2px 0 #0005}
#frame .controls .supply-dock594 button[data-supply594=bar]{color:#ffda98}
#frame .controls .supply-dock594 svg{width:27px;height:27px;pointer-events:none}
#frame .controls .supply-dock594 button:disabled{opacity:.48;filter:grayscale(.7);cursor:default}
#frame .controls .supply-dock594 button.used594{opacity:.25;filter:grayscale(1);box-shadow:none}
.supply-dock594[hidden],.supply-help594[hidden]{display:none!important}
.supply-help594{padding:12px 0;color:#d8edf5;text-align:left;font-size:13px;line-height:1.65}
.supply-help594 summary{cursor:pointer;color:#a8e7eb;min-height:32px}
.supply-help594 p,.supply-intro594 p{font-size:13px!important;line-height:1.65;color:#c6deea}
.supply-help-grid594>div{display:flex;align-items:flex-start;gap:10px;margin:12px 0}
.supply-help-grid594 svg{width:30px;height:34px;flex:none;color:#aee8d1}
.supply-help-grid594 p{margin:0}.supply-help-grid594 b{display:block;color:#f0f8fc;margin-bottom:4px}
.supply-intro594{position:absolute;inset:0;z-index:150;background:#051526ed;display:flex;align-items:center;justify-content:center;padding:18px;touch-action:pan-y}
.supply-intro594>div{max-height:100%;overflow:auto;overscroll-behavior:contain;background:#102b40;border:1px solid #61869b;border-radius:16px;padding:18px;width:100%;max-width:440px;color:#f0f8ff}
.supply-intro594 h2{font-size:23px;margin:0 0 14px}.supply-intro594 button{width:100%;min-height:44px;padding:10px;border-radius:10px;border:1px solid #ffe44f;background:#ffe44f;color:#0b273b;font:inherit;font-weight:700}
@media(max-width:375px){#frame .controls .shot-zone{--shot594:67px;--right594:8px}#frame .controls .supply-dock594{left:calc(40% + 3px)}#frame .controls .supply-dock594 button{width:44px;height:44px;min-width:44px}}
@media(prefers-reduced-motion:reduce){#frame .controls .shot{transition:none}}

.supply-intro594.outside594{position:fixed}

/* v5.9.5: narrow phones keep the two item targets clear of the joystick. */
@media(max-width:340px){#frame .controls .shot-zone{--right594:4px;--gap594:4px}}
