/* PIXL alpha83: zero-lag dual movement shell */
.player .controls,.player .controls *{-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important;touch-action:none!important}
.player .control{transition:transform 45ms linear,filter 45ms linear,box-shadow 45ms linear!important;will-change:transform}
.player .control.is-pressed,.player .control:active{transform:scale(.91)!important;filter:brightness(1.09)!important}
.player .dpad .control.is-pressed{transform:scale(.90)!important}
.player .pixl-face.is-pressed{box-shadow:inset 0 2px 7px rgba(0,0,0,.18),0 0 0 2px color-mix(in srgb,var(--pixl-theme,#5de1ad) 28%,transparent)!important}
.player .pixl-joystick{position:absolute!important;left:10px!important;top:8px!important;width:150px;height:150px;display:grid;place-items:center;touch-action:none!important;transform:none!important;transform-origin:left top!important}
.player.pixl-nav-dpad .pixl-joystick{display:none!important}.player.pixl-nav-joystick .dpad{display:none!important}.player.pixl-nav-joystick .pixl-joystick{display:grid!important}
.pixl-joystick-base{position:relative;width:132px;height:132px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 42% 36%,color-mix(in srgb,var(--pixl-theme,#765cff) 10%,rgba(255,255,255,.08)),rgba(7,10,18,.12) 52%,rgba(0,0,0,.16));border:1px solid color-mix(in srgb,var(--pixl-theme,#765cff) 34%,rgba(120,145,168,.45));box-shadow:inset 0 0 0 8px rgba(255,255,255,.018),inset 0 -14px 24px rgba(0,0,0,.10),0 12px 28px rgba(0,0,0,.10)}
.pixl-joystick-orbit{position:absolute;inset:23px;border-radius:50%;border:1px dashed color-mix(in srgb,var(--pixl-theme,#765cff) 26%,transparent);opacity:.72}
.pixl-joystick-base:before,.pixl-joystick-base:after{content:"";position:absolute;background:color-mix(in srgb,var(--pixl-theme,#765cff) 22%,transparent);pointer-events:none}.pixl-joystick-base:before{width:1px;height:76%;left:50%;top:12%}.pixl-joystick-base:after{height:1px;width:76%;top:50%;left:12%}
.pixl-joystick-cap{position:relative;z-index:3;width:70px;height:70px;border:0;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--pixl-joystick-cap-image,linear-gradient(145deg,color-mix(in srgb,var(--pixl-theme,#765cff) 86%,#fff 4%),color-mix(in srgb,var(--pixl-theme,#765cff) 64%,#111827 36%)));background-size:cover;background-position:center;box-shadow:inset 0 1px 2px rgba(255,255,255,.3),inset 0 -7px 12px rgba(0,0,0,.18),0 8px 18px rgba(0,0,0,.24),0 0 0 1px color-mix(in srgb,var(--pixl-theme,#765cff) 58%,#101522);transform:translate3d(0,0,0);will-change:transform;touch-action:none!important}
.pixl-joystick-cap.has-custom-cap .pixl-joystick-mark{opacity:0}.pixl-joystick-mark{font:950 22px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:-.08em;text-shadow:0 1px 6px rgba(0,0,0,.3);pointer-events:none}
html[data-pixl-theme="sinnoh"] .pixl-joystick-base{background:radial-gradient(circle at 40% 35%,rgba(255,255,255,.8),rgba(227,242,247,.72) 58%,rgba(199,224,232,.5));border-color:#a6cbd5;box-shadow:inset 0 -10px 18px rgba(49,94,106,.08),0 8px 20px rgba(28,71,85,.08)}
html[data-pixl-theme="sinnoh"] .pixl-joystick-cap{color:#15364a;background:var(--pixl-joystick-cap-image,linear-gradient(145deg,#ffffff,#dbeef3));box-shadow:inset 0 -5px 9px rgba(48,101,118,.10),0 7px 15px rgba(43,90,103,.12),0 0 0 1px #9ec4cf}
.pixl-control-mode-row{align-items:flex-start!important}.pixl-control-mode-copy{min-width:0;flex:1}.pixl-control-mode-copy>small{display:block;margin-top:8px;line-height:1.35;opacity:.68}.pixl-stick-setting-icon{position:relative}.pixl-stick-setting-icon i{display:block;width:22px;height:22px;border:2px solid currentColor;border-radius:50%;position:relative}.pixl-stick-setting-icon i:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:currentColor;left:5px;top:5px}
.pixl-control-mode-segment{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:12px;padding:5px;border-radius:15px;background:rgba(120,130,155,.10);border:1px solid rgba(120,135,160,.14)}.pixl-control-mode-segment button{min-width:0;height:42px;border:0;border-radius:11px;background:transparent;color:inherit;display:flex;align-items:center;justify-content:center;gap:8px;font:800 13px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.pixl-control-mode-segment button b{font:900 18px/1 ui-monospace,monospace}.pixl-control-mode-segment button.is-selected{background:color-mix(in srgb,var(--pixl-theme,#765cff) 18%,rgba(255,255,255,.72));box-shadow:0 1px 8px rgba(0,0,0,.08),inset 0 0 0 1px color-mix(in srgb,var(--pixl-theme,#765cff) 38%,transparent);color:color-mix(in srgb,var(--pixl-theme,#765cff) 82%,currentColor)}
@media(max-height:780px){.player .pixl-joystick{transform:scale(.91)!important;transform-origin:left top!important}}
@media(max-width:420px){.player .pixl-joystick{width:146px;height:146px}.pixl-joystick-base{width:126px;height:126px}.pixl-joystick-cap{width:68px;height:68px}}


/* PIXL alpha89 — physical thumb-cap overlay. The touch target remains the
   stock 68–70px joystick button while artwork is independently sized. */
.pixl-joystick-cap.has-custom-cap{
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
  isolation:isolate;
}
.pixl-joystick-cap.has-custom-cap::before{
  content:"";
  position:absolute;
  z-index:2;
  left:50%;top:50%;
  width:var(--pixl-thumbcap-render,104%);
  height:var(--pixl-thumbcap-render,104%);
  transform:translate(-50%,-50%);
  background-image:var(--pixl-joystick-cap-image);
  background-repeat:no-repeat;
  background-position:var(--pixl-thumbcap-position,50% 50%);
  background-size:contain;
  pointer-events:none;
  filter:drop-shadow(0 4px 4px rgba(0,0,0,.23));
}
.pixl-joystick-cap.has-custom-cap::after{
  content:"";
  position:absolute;
  z-index:0;
  left:12%;top:12%;width:76%;height:76%;
  border-radius:50%;
  background:rgba(0,0,0,.065);
  box-shadow:0 5px 11px rgba(0,0,0,.17);
  pointer-events:none;
}
.pixl-joystick-cap.has-custom-cap .pixl-joystick-mark{opacity:0!important}
html[data-pixl-theme="sinnoh"] .pixl-joystick-cap.has-custom-cap{background:transparent!important;box-shadow:none!important}
