/* Physical thumb layout shared by the two action games. */
.goblin-game .controls{padding:12px clamp(18px,5.5vw,40px) 22px;background:radial-gradient(ellipse at 25% 10%,#274f52,#102832 70%);gap:16px}
.goblin-game .actions{display:block;position:relative;width:184px;height:124px;flex:none}
.goblin-game .actions button{position:absolute;display:flex;gap:3px;margin:0;isolation:isolate;border:1px solid #b6d4c957;box-shadow:0 5px 0 #071b25,0 8px 14px #051c324d,inset 0 2px 1px #e5f7dc3b;transition:transform 60ms,filter 60ms}
.goblin-game .actions [data-key=attack]{right:0;bottom:0;width:80px;height:80px;background:linear-gradient(145deg,#fff0b6,#d2a662 70%,#b67e42);color:#243c3d;border-color:#ffdf99}
.goblin-game .actions [data-key=jump]{left:0;bottom:0;width:68px;height:68px;background:linear-gradient(145deg,#4c8076,#234c4e);color:#e4f9df}
.goblin-game .actions [data-key=roll]{left:43px;top:0;width:52px;height:52px;background:linear-gradient(145deg,#426d88,#203e55)}
.goblin-game .actions [data-key=blast]{right:5px;top:-8px;width:48px;height:48px;background:linear-gradient(145deg,#647fa6,#374367);color:#e5e3ff}
.goblin-game .actions .glyph{display:grid;place-items:center;height:28px}
.goblin-game .actions svg{width:27px;height:27px;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;fill:none}
.goblin-game .actions [data-key=attack] svg{width:34px;height:34px;fill:#29424012}
.goblin-game .actions b{font-size:10px;font-weight:750;line-height:1}
.goblin-game .actions [data-key=attack] b{font-size:12px}
.goblin-game .actions button.held{transform:translateY(3px) scale(.96);filter:brightness(1.15);box-shadow:0 2px 0 #071b25,inset 0 2px 7px #081c314d}
.goblin-game .actions button.unavailable{opacity:.72;filter:saturate(.55)}
.goblin-game [data-key=roll]::after,#controls [data-action=dodge]::after,#controls [data-action=attack]::after{content:'';position:absolute;inset:2px;border-radius:50%;background:conic-gradient(#071b32bb var(--cool,0deg),transparent 0);pointer-events:none;z-index:-1}
.goblin-game #stick{width:112px;height:112px;background:radial-gradient(circle at 50% 45%,#3d6c66,#163d43 63%,#102a33 65%);border:1px solid #afcbbd38;box-shadow:inset 0 2px 12px #061e2880,0 1px #d2e9ca1c}
.goblin-game #stick-knob{width:54px;height:54px;margin:-27px 0 0 -27px;background:radial-gradient(circle at 35% 25%,#a7c69d,#557e73 67%,#365f59);border-color:#d2e7b855}
.goblin-game #stick:after{font-size:24px;color:#abcbb15c}.goblin-game #stick span{display:none}
.goblin-game .combat-cue{top:12px;font-size:11px;letter-spacing:.2px;border:1px solid #cde5bf30}
@media(max-width:350px){.goblin-game .controls{padding:10px 14px 18px;gap:10px}.goblin-game #stick{width:90px;height:90px}.goblin-game .actions{width:176px;height:117px}.goblin-game .actions [data-key=attack]{width:74px;height:74px}.goblin-game .actions [data-key=jump]{width:64px;height:64px}}
@media(orientation:landscape) and (max-height:600px){.goblin-game .controls{background:none;padding:0;bottom:max(16px,env(safe-area-inset-bottom));height:124px}.goblin-game #stick{width:94px;height:94px}.goblin-game .actions{opacity:.94}.goblin-game .actions button{box-shadow:0 3px 0 #071b2599,inset 0 2px #e5f7dc30}}
#controls .action-pad button{isolation:isolate;overflow:visible}#controls .action-pad button i{display:none}#controls .action-pad button.held{transform:translateY(3px) scale(.96);filter:brightness(1.16)}
#controls .attack{box-shadow:0 5px 0 #795c3c,0 8px 16px #061a2555,inset 0 2px #fff7d8!important}
#controls .cape{box-shadow:0 5px 0 #0e3238,inset 0 2px #badbb52e!important}
body[data-mode=rhythm] #controls button{border-radius:16px 16px 22px 22px;box-shadow:inset 0 2px #ffffff29,0 4px 0 #06121e;gap:4px;background:linear-gradient(160deg,color-mix(in srgb,var(--drum) 35%,#213747),#102332)}
body[data-mode=rhythm] #controls button b{font-size:22px}body[data-mode=rhythm] #controls button.held{transform:translateY(3px);box-shadow:inset 0 3px 14px #06121e55,0 1px 0 #06121e}
@media(prefers-reduced-motion:reduce){.goblin-game .actions button,#controls button{transition:none}}
