/* Shared SDK controls: game roots must establish a positioning context. */
.zh-input-overlay{position:absolute;inset:0;z-index:8;pointer-events:none;user-select:none;-webkit-user-select:none}
.zh-input-overlay[hidden]{display:none!important}
.zh-input-movement,.zh-input-actions{position:absolute;bottom:max(18px,env(safe-area-inset-bottom));display:flex;align-items:flex-end;gap:12px}
.zh-input-movement{left:max(18px,env(safe-area-inset-left))}.zh-input-actions{right:max(18px,env(safe-area-inset-right));max-width:55%;flex-wrap:wrap;justify-content:flex-end}
.zh-input-overlay button,.zh-input-stick{pointer-events:auto;touch-action:none;background:linear-gradient(145deg,#215b78df,#092939df);border:2px solid #8adeef99;box-shadow:inset 0 2px 1px #ffffff50,0 5px 0 #041b2eb0,0 8px 20px #00152355;color:#f2fbff}
.zh-input-overlay button{padding:6px;min-width:58px;min-height:58px;border-radius:20px;font:700 12px system-ui;line-height:1.1}
.zh-input-overlay button span{display:block;font-size:25px;line-height:1.1}.zh-input-overlay button small{font-size:10px}
.zh-input-overlay button[data-input-action=jump]{width:76px;height:76px;background:linear-gradient(145deg,#ffe895,#f9b735);border-color:#fff2ac;color:#12364c}
.zh-input-overlay button.is-held{filter:brightness(1.3);box-shadow:inset 0 3px 6px #001b3955;transform:translateY(3px)}
.zh-input-overlay button:focus-visible{outline:3px solid white;outline-offset:4px}
.zh-input-stick{width:116px;height:116px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#113b5688,#0a2e4eb0);box-sizing:border-box}
.zh-input-stick span{width:50px;height:50px;background:linear-gradient(145deg,#e3fcff,#4398bd);border:2px solid #daf6ff;border-radius:50%;box-shadow:0 5px 0 #06294477,0 6px 12px #021b3488}
.zh-input-dpad{display:grid;grid-template-columns:repeat(3,48px);grid-template-rows:repeat(3,44px);gap:3px}
.zh-input-dpad button{min-width:44px;min-height:44px;padding:0;border-radius:12px}.zh-input-dpad small{display:none}
.zh-input-dpad [data-input-action=moveUp]{grid-column:2;grid-row:1}.zh-input-dpad [data-input-action=moveLeft]{grid-column:1;grid-row:2}.zh-input-dpad [data-input-action=moveRight]{grid-column:3;grid-row:2}.zh-input-dpad [data-input-action=moveDown]{grid-column:2;grid-row:3}
@media(max-width:400px){.zh-input-movement{left:10px}.zh-input-actions{right:10px;gap:8px;max-width:46%}.zh-input-stick{width:102px;height:102px}.zh-input-overlay button{min-width:50px;min-height:50px}.zh-input-overlay button[data-input-action=jump]{width:64px;height:64px}}
@media(max-height:480px){.zh-input-movement,.zh-input-actions{bottom:max(10px,env(safe-area-inset-bottom))}.zh-input-stick{width:96px;height:96px}.zh-input-overlay button[data-input-action=jump]{width:64px;height:64px}}
.zh-input-overlay svg{width:28px;height:28px;display:block;margin:auto}
/* Fixed ABCD slots: omitted actions never move the remaining buttons. */
.zh-input-actions:not(.zh-input-utility){--face-size:60px;width:calc(var(--face-size)*3);height:calc(var(--face-size)*3);max-width:none;display:block}
.zh-input-actions:not(.zh-input-utility) button{position:absolute;box-sizing:border-box;width:var(--face-size);height:var(--face-size);min-width:var(--face-size);min-height:var(--face-size);padding:0;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 22%,#527489,#18394b 65%,#092332);border:2px solid #94c6d4;box-shadow:inset 0 3px 2px #e6faff55,inset 0 -5px 6px #00152488,0 4px 0 #051c2bd9,0 7px 16px #001b3455}
.zh-input-actions:not(.zh-input-utility) button span{font:900 27px/1 system-ui;text-shadow:0 1px 1px #ffffff44}
.zh-input-actions:not(.zh-input-utility) button[data-input-action=jump]{left:var(--face-size);top:calc(var(--face-size)*2);background:radial-gradient(circle at 35% 22%,#b4f8f0,#36baa9 58%,#177b83);border-color:#bdf5ed;color:#103f4b}
.zh-input-actions:not(.zh-input-utility) button[data-input-action=secondaryAction]{left:calc(var(--face-size)*2);top:var(--face-size);background:radial-gradient(circle at 35% 22%,#e4d1ff,#aa82da 58%,#74509c);border-color:#ecdcff;color:#382251}
.zh-input-actions:not(.zh-input-utility) button[data-input-action=action]{left:0;top:var(--face-size);background:radial-gradient(circle at 35% 22%,#ffe0b8,#eaaa64 58%,#b97836);border-color:#ffe5c0;color:#573917}
.zh-input-actions:not(.zh-input-utility) button[data-input-action=tertiaryAction]{left:var(--face-size);top:0;background:radial-gradient(circle at 35% 22%,#f9d4ef,#d78bbd 58%,#9a557e);border-color:#ffe1f6;color:#502c49}
.zh-input-utility{top:max(12px,env(safe-area-inset-top));bottom:auto}
@media(max-width:400px){.zh-input-actions:not(.zh-input-utility){--face-size:48px}}
.zh-input-actions:not(.zh-input-utility) button[data-locked=true]{opacity:.28;cursor:default;pointer-events:auto;filter:none;transform:none}.zh-input-actions:not(.zh-input-utility) button[data-locked=true]:active{transform:none}