/* Cuh Overlay for gamepadviewer.com — use ?p=1&smeter=1&dz=0&nocurve=1&soffset=10&css=THIS_URL */
.controller.custom{position:absolute;width:768px;height:612px;background:transparent url('assets/base-xbox-v2.png') no-repeat 0 0;background-size:768px 612px}
.custom *{box-sizing:border-box}
.custom .triggers,.custom .bumpers,.custom .arrows,.custom .abxy,.custom .sticks,.custom .dpad{position:absolute;inset:0;width:768px;height:612px;pointer-events:none}
.custom .trigger{position:absolute;top:15px;width:90px;height:100px;background:linear-gradient(12deg,#a9751e,#e6b952 60%,#fff0b2);opacity:0;mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;-webkit-mask-repeat:no-repeat}
.custom .trigger.left{left:155px;mask-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%2240%2050%20180%20200%22%3E%3Cpath%20d%3D%22M109%2064Q141%2048%20199%2061Q216%2096%20212%20149L207%20217Q202%20243%20173%20248L77%20245Q47%20241%2048%20214L64%20155L84%20104Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E');-webkit-mask-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%2240%2050%20180%20200%22%3E%3Cpath%20d%3D%22M109%2064Q141%2048%20199%2061Q216%2096%20212%20149L207%20217Q202%20243%20173%20248L77%20245Q47%20241%2048%20214L64%20155L84%20104Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E')}
.custom .trigger.right{left:525px;mask-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%221320%2050%20180%20200%22%3E%3Cpath%20d%3D%22M1348%2061Q1408%2047%201432%2065L1460%20127L1488%20211Q1496%20239%201466%20247L1361%20247Q1337%20242%201336%20219L1330%20132Q1326%2087%201348%2061Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E');-webkit-mask-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%221320%2050%20180%20200%22%3E%3Cpath%20d%3D%22M1348%2061Q1408%2047%201432%2065L1460%20127L1488%20211Q1496%20239%201466%20247L1361%20247Q1337%20242%201336%20219L1330%20132Q1326%2087%201348%2061Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E')}
.custom .bumper,.custom .back,.custom .start,.custom .button,.custom .face,.custom .meta{position:absolute;opacity:0;background:rgba(255,206,77,.27);border:2px solid #ffda76}
.custom .pressed{opacity:1}
.custom .bumper{width:768px;height:612px;top:0;left:0;border:0;border-radius:0;background:transparent url(assets/base-xbox-v2.png) no-repeat 0 0;background-size:768px 612px;filter:none}
.custom .bumper.left{left:0;clip-path:path("M263 157 Q253 137 240 124 Q236 118 230 119 Q198 129 168 146 Q156 153 151 171 Q178 157 208 147 Q237 136 249 146 Z")}
.custom .bumper.right{left:0;transform:none;clip-path:path("M505 157 Q515 137 528 124 Q532 118 538 119 Q570 129 600 146 Q612 153 617 171 Q590 157 560 147 Q531 136 519 146 Z")}
.custom .back,.custom .start{top:246.5px;width:36px;height:36px;border-radius:50%}
.custom .back{left:312.5px}.custom .start{left:419px}
.custom .button{width:56px;height:56px;border-radius:50%}
.custom .a{left:530px;top:280px}.custom .b{left:575px;top:236px}
.custom .x{left:483px;top:236px}.custom .y{left:530px;top:188px}
.custom .stick{position:absolute;top:234.5px;left:166px;width:73px;height:73px;background:url('assets/left-cap-xbox-v2.png') no-repeat;background-size:73px 73px;border-radius:50%}
.custom .stick.right{top:338.5px;left:451px;background-image:url('assets/right-cap-xbox-v2.png')}
.custom .stick.pressed{box-shadow:0 0 0 2px #ffda76,inset 0 0 0 3px #ffda7680}
.custom .face{border-radius:3px}
.custom .face.up{left:277px;top:335px;width:27.5px;height:30.5px}
.custom .face.down{left:277px;top:391.5px;width:27.5px;height:30.5px}
.custom .face.left{left:249px;top:364.5px;width:28.5px;height:27.5px}
.custom .face.right{left:304.5px;top:364.5px;width:29px;height:27.5px}
.custom .meta{left:355.5px;top:164.5px;width:56px;height:56px;border-radius:50%}
.custom .quadrant,.custom .touchpad,.custom .wheels,.custom .fstick,.custom .trigger-button,.custom .disconnected-message{display:none}
.custom.disconnected{opacity:.45}
/* Intentionally no decorative animation. Gamepad Viewer supplies all input motion. */



/* Neutral thumbstick caps: remove the gold underside tint. */
.custom .stick{filter:grayscale(1);clip-path:ellipse(39% 36% at 50% 40%)}

/* Active inputs use the actual opaque controller artwork. */
.custom[data-cuh-highlight] .a.pressed,.custom[data-cuh-highlight] .b.pressed,.custom[data-cuh-highlight] .x.pressed,.custom[data-cuh-highlight] .y.pressed,.custom[data-cuh-highlight] .face.up.pressed,.custom[data-cuh-highlight] .face.down.pressed,.custom[data-cuh-highlight] .face.left.pressed,.custom[data-cuh-highlight] .face.right.pressed,.custom[data-cuh-highlight] .back.pressed,.custom[data-cuh-highlight] .start.pressed,.custom[data-cuh-highlight] .meta.pressed{background-color:#111;background-image:url(assets/base-xbox-v2.png);background-size:768px 612px;background-repeat:no-repeat;background-origin:border-box;background-clip:border-box;opacity:1}
.custom[data-cuh-highlight] .a.pressed{background-position:-530px -280px}
.custom[data-cuh-highlight] .b.pressed{background-position:-575px -236px}
.custom[data-cuh-highlight] .x.pressed{background-position:-483px -236px}
.custom[data-cuh-highlight] .y.pressed{background-position:-530px -188px}
.custom[data-cuh-highlight] .face.up.pressed{background-position:-277px -335px}
.custom[data-cuh-highlight] .face.down.pressed{background-position:-277px -391.5px}
.custom[data-cuh-highlight] .face.left.pressed{background-position:-249px -364.5px}
.custom[data-cuh-highlight] .face.right.pressed{background-position:-304.5px -364.5px}
.custom[data-cuh-highlight] .back.pressed{background-position:-312.5px -246.5px}
.custom[data-cuh-highlight] .start.pressed{background-position:-419px -246.5px}
.custom[data-cuh-highlight] .meta.pressed{background-position:-355.5px -164.5px}

/* Lift only active black caps so stick input is clear at stream size. */
.custom[data-cuh-highlight] .stick{filter:grayscale(1) brightness(2.5)}
