/* Interactive controller — CSS-built, accessible and gamepad-aware. */
.controller-launcher{position:fixed;z-index:92;right:22px;bottom:22px;display:flex;align-items:center;gap:11px;min-height:58px;padding:8px 14px 8px 10px;border:1px solid var(--acid);background:rgba(7,11,9,.94);color:#fff;box-shadow:-7px 7px 0 var(--violet);direction:ltr;cursor:pointer;backdrop-filter:blur(14px);transition:transform .25s ease,box-shadow .25s ease,background .25s ease}
.controller-launcher:hover{transform:translateY(-4px);box-shadow:-10px 11px 0 var(--violet);background:#0c130e}
.controller-launcher.gamepad-ready{border-color:#fff;background:var(--violet);box-shadow:-7px 7px 0 var(--acid)}.controller-launcher.gamepad-ready strong,.controller-launcher.gamepad-ready small{color:#fff}.controller-launcher.gamepad-ready .controller-signal{background:#fff;box-shadow:0 0 14px #fff}
.controller-launcher>span:nth-child(2){display:grid;gap:1px;text-align:left}.controller-launcher small{color:#7f8a80;font:700 7px/1 var(--mono);letter-spacing:1.4px}.controller-launcher strong{color:var(--acid);font:900 11px/1.2 Arial,sans-serif;letter-spacing:.8px}
.controller-signal{width:7px;height:7px;margin-left:2px;background:var(--acid);box-shadow:0 0 15px var(--acid);animation:controller-signal 1.5s steps(2,end) infinite}
@keyframes controller-signal{50%{opacity:.25}}
.controller-mini{position:relative;width:50px;height:30px;border:1px solid #778379;border-radius:15px 15px 11px 11px;background:#151d17;transform:rotate(-5deg)}
.controller-mini::before,.controller-mini::after{content:"";position:absolute;bottom:-7px;width:13px;height:16px;border:1px solid #778379;background:#151d17}.controller-mini::before{left:4px;transform:rotate(22deg)}.controller-mini::after{right:4px;transform:rotate(-22deg)}
.controller-mini i{position:absolute;z-index:2;top:12px;width:4px;height:4px;border-radius:50%;background:var(--acid)}.controller-mini i:first-child{right:10px}.controller-mini i:nth-child(2){right:17px;background:var(--violet)}
.controller-mini b{position:absolute;z-index:2;left:10px;top:8px;width:3px;height:13px;background:#a7b2a8}.controller-mini b:last-child{transform:rotate(90deg)}

.controller-panel{--pad-rx:0deg;--pad-ry:0deg;position:fixed;z-index:110;right:22px;bottom:98px;width:min(470px,calc(100vw - 44px));max-height:calc(100dvh - 124px);padding:22px;overflow:auto;overscroll-behavior:contain;border:1px solid var(--acid);background:rgba(6,10,7,.97);color:#fff;box-shadow:-14px 15px 0 var(--violet),0 26px 90px rgba(0,0,0,.55);opacity:0;transform:translateY(24px) scale(.96);transform-origin:bottom right;transition:opacity .22s ease,transform .28s cubic-bezier(.2,.8,.2,1);backdrop-filter:blur(22px)}
.controller-panel.is-open{opacity:1;transform:none}
.controller-panel::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(rgba(199,255,61,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(199,255,61,.035) 1px,transparent 1px);background-size:30px 30px;mask-image:linear-gradient(#000,transparent 80%)}
.controller-header{position:relative;z-index:2;display:flex;align-items:start;justify-content:space-between;gap:20px;padding-bottom:14px;border-bottom:1px solid rgba(199,255,61,.18)}
.controller-header span{display:block;color:var(--acid);font:700 8px/1 var(--mono);letter-spacing:1.7px}.controller-header h2{margin:7px 0 0;font-size:1.25rem;line-height:1.25}
.controller-close{display:grid;place-items:center;width:42px;height:42px;flex:0 0 auto;border:1px solid #647066;background:transparent;color:#fff;font:300 25px/1 Arial,sans-serif;cursor:pointer}.controller-close:hover{border-color:var(--acid);color:var(--acid)}
.controller-connection{position:relative;z-index:2;display:flex;align-items:center;gap:8px;margin-top:12px;color:#879389;font-size:.7rem}.controller-connection i{width:7px;height:7px;background:var(--acid);box-shadow:0 0 10px var(--acid)}.controller-panel.gamepad-connected .controller-connection{color:var(--acid)}

.nitro-gamepad{position:relative;z-index:2;width:min(100%,400px);aspect-ratio:400/245;margin:23px auto 27px;border:1px solid #657166;border-radius:28% 28% 24% 24% / 34% 34% 22% 22%;background:linear-gradient(145deg,#202a22 0 18%,#0d130f 50%,#050806 100%);box-shadow:inset 0 2px 0 rgba(255,255,255,.12),inset 0 -14px 26px rgba(0,0,0,.7),0 28px 42px rgba(0,0,0,.48);direction:ltr;transform:perspective(850px) rotateX(var(--pad-rx)) rotateY(var(--pad-ry));transform-style:preserve-3d;transition:transform .16s ease-out}
.nitro-gamepad::before,.nitro-gamepad::after{content:"";position:absolute;z-index:-1;bottom:-15%;width:26%;height:58%;border:1px solid #556057;background:linear-gradient(180deg,#131b15,#070a08);box-shadow:inset 0 -12px 20px #030504}.nitro-gamepad::before{left:4%;border-radius:32% 22% 55% 55%;transform:rotate(15deg)}.nitro-gamepad::after{right:4%;border-radius:22% 32% 55% 55%;transform:rotate(-15deg)}
.nitro-gamepad button{font-family:Arial,sans-serif;cursor:pointer;-webkit-tap-highlight-color:transparent}
.gamepad-brand{position:absolute;top:11%;left:50%;color:#7c887e;font:900 clamp(7px,1.8vw,10px)/1 Arial,sans-serif;letter-spacing:1.4px;transform:translateX(-50%)}.gamepad-brand span{color:var(--acid)}
.gamepad-glow{position:absolute;z-index:-1;inset:34% 28% 18%;background:var(--violet);filter:blur(38px);opacity:.2;pointer-events:none}

.gamepad-dpad{position:absolute;top:28%;left:9%;width:25%;aspect-ratio:1}
.gamepad-dpad::before,.gamepad-dpad::after{content:"";position:absolute;left:50%;top:50%;border:1px solid #49524b;background:linear-gradient(#1b241d,#0a0f0b);box-shadow:inset 0 1px 0 rgba(255,255,255,.08);transform:translate(-50%,-50%)}.gamepad-dpad::before{width:36%;height:100%;border-radius:7px}.gamepad-dpad::after{width:100%;height:36%;border-radius:7px}
.gamepad-dpad i{position:absolute;z-index:2;inset:37%;border:1px solid #536056;border-radius:50%;background:#090d0a;pointer-events:none}
.gamepad-dpad button{position:absolute;z-index:3;display:grid;place-items:center;width:34%;height:34%;padding:0;border:0;background:transparent;color:#89968b;font-size:11px}.dpad-up{left:33%;top:0}.dpad-right{right:0;top:33%}.dpad-down{left:33%;bottom:0}.dpad-left{left:0;top:33%}
.gamepad-dpad button:hover,.gamepad-dpad button.is-pressed{color:var(--acid);text-shadow:0 0 12px var(--acid);transform:translateY(1px)}

.gamepad-core{position:absolute;top:29%;left:50%;display:grid;place-items:center;width:15%;aspect-ratio:1;border:1px solid #718074;border-radius:50%;background:radial-gradient(circle at 35% 25%,#d7ff73,var(--acid) 35%,#4d6916 75%);color:var(--ink);box-shadow:0 0 0 6px #0b100c,0 0 25px rgba(199,255,61,.2);transform:translateX(-50%) translateZ(15px)}.gamepad-core span{font:900 clamp(14px,4vw,25px)/1 Arial,sans-serif}.gamepad-core small{position:absolute;top:112%;color:#748077;font:700 6px/1 var(--mono);letter-spacing:1px}

.gamepad-actions{position:absolute;top:26%;right:7%;width:28%;aspect-ratio:1}
.gamepad-actions button{position:absolute;display:grid;place-items:center;width:38%;aspect-ratio:1;padding:0;border:1px solid #5f6b61;border-radius:50%;background:linear-gradient(145deg,#283129,#080b09 72%);color:#fff;box-shadow:inset 0 2px 2px rgba(255,255,255,.12),0 5px 0 #030504;transition:transform .12s ease,box-shadow .12s ease}
.gamepad-actions b{font-size:clamp(9px,2.4vw,14px)}.gamepad-actions small{position:absolute;top:108%;color:#748077;font:700 5px/1 var(--mono);white-space:nowrap}.pad-y{top:0;left:31%}.pad-b{top:31%;right:0}.pad-a{bottom:0;left:31%}.pad-x{top:31%;left:0}
.gamepad-actions .pad-y b{color:#ffe45d}.gamepad-actions .pad-b b{color:#ff6a4e}.gamepad-actions .pad-a b{color:var(--acid)}.gamepad-actions .pad-x b{color:#8e7cff}
.gamepad-actions button:hover,.gamepad-actions button.is-pressed{border-color:currentColor;box-shadow:inset 0 1px 1px rgba(255,255,255,.1),0 2px 0 #030504,0 0 15px currentColor;transform:translateY(3px)}

.gamepad-stick{position:absolute;bottom:15%;width:15%;aspect-ratio:1;padding:0;border:1px solid #49544b;border-radius:50%;background:repeating-radial-gradient(circle,#111812 0 5px,#273128 6px 7px);box-shadow:inset 0 0 0 7px #090d0a,0 5px 0 #020302}.gamepad-stick i{position:absolute;inset:31%;border-radius:50%;background:#576259}.stick-left{left:32%}.stick-right{right:26%}.gamepad-stick:hover,.gamepad-stick.is-pressed{border-color:var(--acid);transform:translateY(2px)}
.gamepad-start{position:absolute;left:50%;bottom:8%;padding:4px 8px;border:1px solid #465148;border-radius:12px;background:#090d0a;color:#758077;font:700 6px/1 var(--mono)!important;letter-spacing:1px;transform:translateX(-50%)}.gamepad-start:hover{border-color:var(--acid);color:var(--acid)}

.controller-readout{position:relative;z-index:2;display:grid;gap:5px;padding:15px;border-inline-start:3px solid var(--acid);background:rgba(199,255,61,.06)}.controller-readout>span{color:#79857b;font:700 7px/1 var(--mono);letter-spacing:1.6px}.controller-readout strong{color:var(--acid);font-size:.9rem}.controller-readout small{color:#9aa59b;font-size:.68rem;line-height:1.8}
.controller-open .controller-launcher{background:var(--acid);color:var(--ink);box-shadow:-7px 7px 0 var(--violet)}.controller-open .controller-launcher strong{color:var(--ink)}
.controller-open .buy-dock{visibility:hidden;opacity:0;pointer-events:none;transform:translateY(160%)}
.menu-open .controller-launcher{visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-8px)}

@media(max-width:620px){
  .controller-launcher{right:12px;bottom:83px;min-height:48px;padding:7px 10px}.controller-launcher>span:nth-child(2){display:grid}.controller-launcher>span:nth-child(2) small{display:none}.controller-launcher>span:nth-child(2) strong{font-size:8px}.controller-mini{width:42px;height:26px}.controller-signal{position:absolute;right:5px;top:5px}
  .controller-panel{right:10px;bottom:78px;width:calc(100vw - 20px);max-height:calc(100dvh - 92px);padding:16px;box-shadow:-7px 8px 0 var(--violet);transform-origin:bottom center}
  .controller-header h2{font-size:1.08rem}.controller-connection{font-size:.64rem}.nitro-gamepad{margin-block:18px 22px}.controller-readout{padding:12px}.controller-readout small{font-size:.62rem}
}
@media(max-width:370px){.controller-panel{padding:12px}.controller-header span{font-size:7px}.controller-close{width:38px;height:38px}.controller-connection{margin-top:9px}.nitro-gamepad{margin-block:14px 20px}.controller-readout small{display:none}}
@media(prefers-reduced-motion:reduce){.controller-signal{animation:none}.controller-panel,.controller-launcher,.nitro-gamepad{transition:none}}
