/* Dedicated pedal hardware. Source proportions are preserved independently of panel artwork. */
:is(.rig-effects,.effects-workshop) .pedal[data-effect] .pedal-led{
 display:block;
 height:auto;
 aspect-ratio:1;
 filter:none;
 border:0;
 border-radius:0;
 background:transparent url('assets/pedals/shared/pedal-hardware/led-red-on-v1.png') center/contain no-repeat;
 box-shadow:none;
 transition:none;
}
:is(.rig-effects,.effects-workshop) .pedal[data-effect][data-on="false"] .pedal-led{
 background:transparent url('assets/pedals/shared/pedal-hardware/led-red-off-v1.png') center/contain no-repeat;
}
/* Square frames with centres raised to give the lower MXR names more room. */
:is(.rig-effects,.effects-workshop) .pedal[data-effect="comp"] .pedal-led{top:calc(66% - 7cqw)}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="phaser"] .pedal-led{top:calc(64.5% - 6cqw)}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="auto-wah"] .pedal-direction,
:is(.rig-effects,.effects-workshop) .pedal[data-effect="u-vibe"] .pedal-toggle{
 display:block;
 width:10.8cqw;
 height:10.8cqw;
 padding:0;
 border:0;
 border-radius:0;
 background:transparent url('assets/pedals/shared/pedal-hardware/direction-up.svg') center/contain no-repeat;
 box-shadow:none;
 transition:none;
 transform:none;
}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="auto-wah"] .pedal-direction[data-direction="down"],
:is(.rig-effects,.effects-workshop) .pedal[data-effect="u-vibe"][data-on="false"] .pedal-toggle{
 background-image:url('assets/pedals/shared/pedal-hardware/direction-down.svg');
 background-position:center;
}

/* Uni-Vibe shares the amps' photographed toggle; keep its mounting position. */
:is(.rig-effects,.effects-workshop) .pedal[data-effect="u-vibe"] .pedal-toggle{
 left:83.1%;top:calc(66.4% - 5.4cqw);
 background-image:url('assets/theme/ac15/switches/toggle-down-v1.png'),url('assets/theme/ac15/switches/toggle-mount-v1.png');
 background-position:53.5% 50%,center;
 background-size:contain;
 background-repeat:no-repeat;
 filter:drop-shadow(0 .15cqw .15cqw #000a);
}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="u-vibe"][data-on="false"] .pedal-toggle{
 background-image:url('assets/theme/ac15/switches/toggle-up-v1.png'),url('assets/theme/ac15/switches/toggle-mount-v1.png');
 background-position:53% 48.5%,center;
}

/* Reuse the amp photo layers: fixed skirt and lighting, turning handle. */
:is(.rig-effects,.effects-workshop) :is(.pedal:is([data-effect="auto-wah"],[data-effect="u-vibe"],[data-effect="spring"]),.pedal[data-effect="treble-boost"] .pedal-control:first-child) .pedal-dial{container-type:inline-size}
:is(.rig-effects,.effects-workshop) :is(.pedal:is([data-effect="auto-wah"],[data-effect="u-vibe"],[data-effect="spring"]),.pedal[data-effect="treble-boost"] .pedal-control:first-child) .pedal-knob{background:none;border:0;box-shadow:none;filter:none;isolation:isolate}
:is(.rig-effects,.effects-workshop) :is(.pedal:is([data-effect="auto-wah"],[data-effect="u-vibe"],[data-effect="spring"]),.pedal[data-effect="treble-boost"] .pedal-control:first-child) .pedal-knob:before{content:'';position:absolute;inset:0;z-index:1;background:var(--pedal-knob-base) center/contain no-repeat;transform:var(--pedal-knob-align);transform-origin:var(--pedal-knob-center);pointer-events:none}
:is(.rig-effects,.effects-workshop) :is(.pedal:is([data-effect="auto-wah"],[data-effect="u-vibe"],[data-effect="spring"]),.pedal[data-effect="treble-boost"] .pedal-control:first-child) .pedal-knob:after{content:'';position:absolute;left:var(--pedal-shadow-left);top:var(--pedal-shadow-top);width:var(--pedal-shadow-size);height:var(--pedal-shadow-size);z-index:0;border-radius:50%;background:#000;opacity:.53;transform:translateY(6.25cqw);filter:blur(3cqw);pointer-events:none}
:is(.rig-effects,.effects-workshop) :is(.pedal:is([data-effect="auto-wah"],[data-effect="u-vibe"],[data-effect="spring"]),.pedal[data-effect="treble-boost"] .pedal-control:first-child) .pedal-pointer{inset:0;z-index:2;border:0;border-radius:0;background:var(--pedal-knob-handle) center/contain no-repeat;box-shadow:none;filter:none;transform:var(--pedal-knob-align) rotate(var(--angle));transform-origin:var(--pedal-knob-center)}
:is(.rig-effects,.effects-workshop) :is(.pedal:is([data-effect="auto-wah"],[data-effect="u-vibe"],[data-effect="spring"]),.pedal[data-effect="treble-boost"] .pedal-control:first-child) .pedal-pointer:after{display:none}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="auto-wah"] .pedal-knob{--pedal-knob-base:url('assets/theme/ac15/knob-base-v1.png');--pedal-knob-handle:url('assets/theme/ac15/knob.png');--pedal-knob-align:translate(.076735%,-1.395192%) scaleX(.996138);--pedal-knob-center:49.923265% 51.395192%;--pedal-shadow-left:9%;--pedal-shadow-top:10.4%;--pedal-shadow-size:82%}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="auto-wah"] .pedal-pointer{clip-path:polygon(50% 3%,47% 4%,45.5% 7%,44.6% 12%,43.5% 22%,42.3% 32%,41% 40%,38% 46%,35.5% 52%,34% 58%,33.5% 65%,34% 74%,35% 84%,36.3% 91%,38% 94%,43% 96%,50% 96.5%,57% 96%,61% 94%,63% 90%,65% 79%,66% 69%,65.5% 61%,64% 55%,61% 48%,58.5% 41%,57% 32%,56% 22%,54.5% 11%,53% 6%,51% 3.5%)}
:is(.rig-effects,.effects-workshop) :is(.pedal:is([data-effect="u-vibe"],[data-effect="spring"]),.pedal[data-effect="treble-boost"] .pedal-control:first-child) .pedal-knob{--pedal-knob-base:url('assets/theme/shared/knobs/black-pointer-base.png');--pedal-knob-handle:url('assets/theme/shared/knobs/black-pointer-handle.png');--pedal-knob-align:translate(.079962%,-1.68388%) scaleX(1.009366);--pedal-knob-center:49.920038% 51.68388%;--pedal-shadow-left:15.2%;--pedal-shadow-top:15.2%;--pedal-shadow-size:69.6%}
:is(.rig-effects,.effects-workshop) :is(.pedal:is([data-effect="u-vibe"],[data-effect="spring"]),.pedal[data-effect="treble-boost"] .pedal-control:first-child) .pedal-pointer{clip-path:none}

:is(.rig-effects,.effects-workshop) .pedal[data-effect="treble-boost"] .pedal-control:first-child .pedal-dial{filter:none}

/* Flanger, G4 Rotary and Fuzz Face: fixed textured bodies, independent ivory indices. */
:is(.rig-effects,.effects-workshop) .pedal:is([data-effect="flanger"],[data-effect="rotary"],[data-effect="fuzz"]) .pedal-knob{background:transparent url('assets/pedals/shared/flat-black-knob.png') center/contain no-repeat;filter:drop-shadow(1px 3px 2px #0008)}
:is(.rig-effects,.effects-workshop) .pedal:is([data-effect="flanger"],[data-effect="rotary"],[data-effect="fuzz"]) .pedal-pointer{background:none;filter:none;transform:rotate(var(--angle));transform-origin:50% 50%}
:is(.rig-effects,.effects-workshop) .pedal:is([data-effect="flanger"],[data-effect="rotary"],[data-effect="fuzz"]) .pedal-pointer:before{display:none}
:is(.rig-effects,.effects-workshop) .pedal:is([data-effect="flanger"],[data-effect="rotary"],[data-effect="fuzz"]) .pedal-pointer:after{content:'';display:block;position:absolute;top:13%;left:calc(50% - .4cqw);width:.8cqw;height:23%;border:0;border-radius:.15cqw;background:#e0d9b7;box-shadow:none}

/* Twin Tremolo: stationary photographed knob bodies, independent dark index arms. */
:is(.rig-effects,.effects-workshop) .pedal[data-effect="tremolo"] .pedal-knob{background:transparent url('assets/pedals/tremolo/knob.png') center/contain no-repeat;filter:drop-shadow(1px 3px 2px #0008)}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="tremolo"] .pedal-pointer{background:none;filter:none;transform:rotate(var(--angle));transform-origin:50% 50%}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="tremolo"] .pedal-pointer:before{display:none}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="tremolo"] .pedal-pointer:after{content:'';display:block;position:absolute;top:22%;left:calc(50% - .5cqw);height:25%;width:1cqw;border:0;border-radius:.2cqw;background:#171916;box-shadow:0 0 .2cqw #fff8}

/* Pull the Rotary main controls inward to the printed Depth/Speed scale centers. */
:is(.rig-effects,.effects-workshop) .pedal[data-effect="rotary"] .pedal-control:nth-child(3){left:14%}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="rotary"] .pedal-control:nth-child(1){left:54%}

/* Keep the Fuzz Face tone control clear of its printed label. */
:is(.rig-effects,.effects-workshop) .pedal[data-effect="fuzz"] .pedal-control:nth-child(2){top:22.6%;left:37%;width:26%}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="fuzz"] .pedal-control:nth-child(2) .pedal-dial{width:14cqw;height:14cqw}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="fuzz"] .pedal-control:nth-child(2) .pedal-readout{top:21.5cqw}

/* Memory Man: fixed worn plastic and a separately rotating photographed index. */
:is(.rig-effects,.effects-workshop) .pedal[data-effect="delay"] .pedal-knob{background:none}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="delay"] .pedal-pointer{background:transparent url('assets/pedals/delay/knob-index-v2.png') center/contain no-repeat;transform:translate(.12099432%,.27821668%) rotate(var(--angle)) scaleX(1.00486112);transform-origin:49.87900568% 49.72178332%}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="delay"] .pedal-knob:before{content:'';position:absolute;inset:0;background:transparent url('assets/pedals/delay/knob-body-v2.png') center/contain no-repeat;transform:translate(.12099432%,.27821668%) scaleX(1.00486112);pointer-events:none}

/* Multihead Delay: stationary caps and Bassman trim skirt with independent pointers. */
:is(.rig-effects,.effects-workshop) .pedal[data-effect="multihead"] .pedal-knob{background:transparent url('assets/pedals/tremolo/knob.png') center/contain no-repeat}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="multihead"] .pedal-pointer{background:none;transform:rotate(var(--angle));transform-origin:50% 50%}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="multihead"] .pedal-control:nth-child(5) .pedal-knob{background:none}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="multihead"] .pedal-control:nth-child(5) .pedal-knob:before{content:'';position:absolute;inset:0;background:transparent url('assets/theme/shared/knobs/black-pointer-base.png') center/contain no-repeat;transform:translate(.079962%,-1.68388%) scaleX(1.009366);pointer-events:none}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="multihead"] .pedal-control:nth-child(5) .pedal-pointer{background:transparent url('assets/theme/shared/knobs/black-pointer-handle.png') center/contain no-repeat;transform:translate(.079962%,-1.68388%) rotate(var(--angle)) scaleX(1.009366);transform-origin:49.920038% 51.68388%}

/* Echoplex: preserve the champagne reflection while its black index turns. */
:is(.rig-effects,.effects-workshop) .pedal[data-effect="tape-echo"] .pedal-knob:before{content:'';position:absolute;inset:0;background:transparent url('assets/theme/shared/knobs/champagne-cap-static-v1.png') center/contain no-repeat;transform:translate(.035546%,.151911%) scaleX(.983176);pointer-events:none}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="tape-echo"] .pedal-pointer{clip-path:inset(12.9% 48.4% 55.4% 48.4% round 1.4%)}

/* Acoustic Sim: distressed ink is baked into the panel, independent of UI text colors. */
:is(.rig-effects,.effects-workshop) .pedal[data-effect="acoustic"]{background-image:url('assets/pedals/acoustic/background-printed-v1.png')}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="acoustic"] :is(.pedal-control label,.pedal-title){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* Fuzz Face: supplied fixed backplate and rotating scalloped cap. */
:is(.rig-effects,.effects-workshop) .pedal[data-effect="fuzz"] .pedal-knob{background:transparent url('assets/pedals/fuzz/knob-backplate-v1.png') center/contain no-repeat;filter:drop-shadow(1px 3px 2px #0008)}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="fuzz"] .pedal-pointer{inset:12%;background:transparent url('assets/pedals/fuzz/knob-top-v1.png') center/contain no-repeat;transform:rotate(var(--angle));transform-origin:50% 50%;filter:none}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="fuzz"] .pedal-pointer:before{display:none}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="fuzz"] .pedal-pointer:after{display:block;top:16%;left:47%;width:6%;height:34%;background:#c3c0b6;border:0;border-radius:1px;box-shadow:none}

/* Corrected supplied labels and the reference knob centres. */
:is(.rig-effects,.effects-workshop) .pedal[data-effect="fuzz"]{background-image:url('assets/pedals/fuzz/background-printed-v5.png')}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="fuzz"] .pedal-control{top:37.25%;width:24%}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="fuzz"] .pedal-control:nth-child(3){left:11.7%}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="fuzz"] .pedal-control:nth-child(1){left:63.08%}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="fuzz"] .pedal-control:nth-child(2){top:26.83%;left:37.77%;width:24%}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="fuzz"] .pedal-control:nth-child(n) .pedal-dial{width:20cqw;height:20cqw}
/* Supplied LED states, on the footswitch centreline with a clear vertical gap. */
:is(.rig-effects,.effects-workshop) .pedal[data-effect="fuzz"] .pedal-led{top:calc(70% - .25cqw);left:50%;width:5.5cqw;height:5.5cqw;transform:translateX(-50%)}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="fuzz"] .fuzz-footswitch{top:78%}

/* RAT: reuse the supplied LED states beside the footswitch, sharing its centre Y. */
:is(.rig-effects,.effects-workshop) .pedal[data-effect="fat-od"] .pedal-led{top:calc(78% + 5.75cqw);left:65%;width:5.5cqw;height:5.5cqw}

/* LED spacing corrections against each printed enclosure. */
:is(.rig-effects,.effects-workshop) .pedal[data-effect="rotary"] .pedal-led{top:34%}
/* Last Uni-Vibe knob ring ends at 82%; the inner white rail is at 95%.
   Both power elements share their midpoint, 88.5% of enclosure width. */
:is(.rig-effects,.effects-workshop) .pedal[data-effect="u-vibe"] .pedal-led{left:84.5%}
/* Memory Man: halfway from black-field top (62%) to footswitch top (73.3%). */
:is(.rig-effects,.effects-workshop) .pedal[data-effect="delay"] .pedal-led{left:19.5%;top:calc(67.65% - 2.5cqw)}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="tape-echo"] .pedal-led{top:63.5%}

/* Accepted pedal light spill: additive blend, 63%, 3.9x LED, 3s pulse, 31% noise. */
:is(.rig-effects,#effect-zoom-dialog) .pedal[data-led-glow="true"]{isolation:isolate}
:is(.rig-effects,#effect-zoom-dialog) .pedal[data-led-glow="true"] .pedal-led{z-index:2}
.pedal-led-glow{position:absolute;inset:0;overflow:clip;z-index:1;pointer-events:none;mix-blend-mode:plus-lighter;opacity:.63;mask-image:var(--pedal-glow-mask);mask-size:var(--pedal-glow-mask-size,100% 100%);mask-position:var(--pedal-glow-mask-position,center);mask-repeat:no-repeat;transition:opacity .25s ease}
.pedal-led-glow-halo{position:absolute;left:var(--pedal-glow-x);top:var(--pedal-glow-y);width:var(--pedal-glow-width,21.45cqw);aspect-ratio:1;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,108,59,.9) 0%,rgba(255,45,18,.65) 8%,rgba(240,14,6,.35) 24%,rgba(210,6,0,.13) 46%,rgba(180,0,0,.035) 65%,rgba(180,0,0,0) 78%);filter:url(#pedal-led-glow-noise);animation:pedal-led-breathe 3s ease-in-out infinite}
@keyframes pedal-led-breathe{0%,100%{opacity:.72}50%{opacity:1}}
.pedal[data-on="false"] .pedal-led-glow{opacity:0}.pedal[data-on="false"] .pedal-led-glow-halo{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.pedal-led-glow{transition:none}.pedal-led-glow-halo{animation:none;filter:none;opacity:.86}}

/* Geometry and artwork mask sizing follow each live LED through ResizeObserver. */

/* Auto Wah polarity shares the photographed amp toggle hardware.
   Full-size background layers need length offsets: percentages alone have no
   effect when the image and positioning area have the same dimensions.
   Match the source lever alignment: up +3%/-1.5%, down +3.5%/0. */
.pedal[data-effect="auto-wah"] .pedal-direction{
 background-image:url('assets/theme/ac15/switches/toggle-up-v1.png'),url('assets/theme/ac15/switches/toggle-mount-v1.png');
 background-position:calc(50% + .324cqw) calc(50% - .162cqw),center;
 background-size:contain;
 background-repeat:no-repeat;
 filter:drop-shadow(0 .15cqw .15cqw #000a);
}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="auto-wah"] .pedal-direction{
 background-image:url('assets/theme/ac15/switches/toggle-up-v1.png'),url('assets/theme/ac15/switches/toggle-mount-v1.png');
 background-position:calc(50% + .324cqw) calc(50% - .162cqw),center;
}
.pedal[data-effect="auto-wah"] .pedal-direction[data-direction="down"],
:is(.rig-effects,.effects-workshop) .pedal[data-effect="auto-wah"] .pedal-direction[data-direction="down"]{
 background-image:url('assets/theme/ac15/switches/toggle-down-v1.png'),url('assets/theme/ac15/switches/toggle-mount-v1.png');
 background-position:calc(50% + .378cqw) 50%,center;
}

/* The 18cqw bypass toggle uses the same alignment at its larger size.
   Include the workshop/rig selector to outrank the component's @scope rules. */
:is(.rig-effects,.effects-workshop) .pedal[data-effect="auto-wah"] .auto-wah-footswitch{background-position:calc(50% + .63cqw) 50%,center}
:is(.rig-effects,.effects-workshop) .pedal[data-effect="auto-wah"][data-on="false"] .auto-wah-footswitch{background-position:calc(50% + .54cqw) calc(50% - .27cqw),center}
